精华帖 (1) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-05-19
在Eclipse+ADT中开发Android系统的内置应用
Android系统内置有:Browser(浏览器)、Mms(彩信/短信)、Phone(电话)、Contacts(联系人)等众多的核心应用。 然而,在SDK开发环境(即Eclipse + ADT) 下, 这些应用却无法被正确编译,究其原因 至少有以下几种情况: 1、它们使用到了未包括在SDK中(公开发布)的API,有两种情况: A、被 @hide 标注了的类:这 些类是被隐藏起来的,这些类大多都在com.android.internal包下面; B 、一些未包括在SDK中的、Google私有的Api,它们大多都在com.google.android包下面;例如:
2、它们使用了一些由framework层声明的aidl接口访问系统服务,然而这些aidl在编译时才会转换成.java源码,因此在SDK环境下编译这些应用时无法访问到它们。
解决方法是: (请注意:out目录 是在完整源码编译环境下(Linux下),执行一次完整编译后的输出目录) 1、找到那些被隐藏起来的类、它们在以下两个位置: A、out\target\common\obj\JAVA_LIBRARIES\framework_intermediates/ classes.jar ; B、out\target\common\obj\JAVA_LIBRARIES\android-common_intermediates\ classes.jar ; 将找到的.jar文件,在Eclipse中作为User Library 添加到 Project 的Librarys依赖中,并将该库的顺序置于Android SDK Library之上。 在 out\target\common\obj\JAVA_LIBRARIES\ 目录下,还有很多其它具体应用相关的jar包,.... ;
2、找到那些缺失的、编译时才生成的,.java源文件,它们通常在以下位置: A、 out\target\common\obj\JAVA_LIBRARIES\XXX _intermediates\src 目录下,XXX是相关模块的名称; B、out\target\common\obj\APPS\ XXX _intermediates\src 目录下; 将找到的src目录,在Eclipse下,以Link Source的方式,连接到Project 中作为源码的一部分。
通过以上方法,我成功编译了Browser 和 Mms两个应用,其它应用还未验证,若你在开发中有相关经验或者发现,欢迎和我交流。
。。。。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-05-23
一般开发的Android应用都是在download里面,在应用管理都可以删除.而内置应用却不可见(不能删除) , 这方面的资料还真的少 . 支持楼主!!
|
|
返回顶楼 | |
发表时间:2011-05-30
如果你有root权限,
那么日遏制应用也可以删除: adb shell rm /system/app/AP_NAME.apk |
|
返回顶楼 | |
发表时间:2011-08-05
非常感谢楼主的分享,最近一直在想如何编译系统的联系人应用源码,在您帖子的帮助下,完成了。
谢谢!! 如果有人需要联系人应用编译过程,可以参考我记录的结果: http://daijun74.iteye.com/blog/1141245 |
|
返回顶楼 | |
发表时间:2011-09-13
daijun74 写道 非常感谢楼主的分享,最近一直在想如何编译系统的联系人应用源码,在您帖子的帮助下,完成了。
我现在没有办法下载到源码了。能不能帮帮我啊,qq-:516124730
谢谢!! 如果有人需要联系人应用编译过程,可以参考我记录的结果: http://daijun74.iteye.com/blog/1141245 |
|
返回顶楼 | |
发表时间:2011-09-15
android 2.2 phone源码编译不过,能否给我 一份 能在 eclipse里编译运行的
android2.2 PHONE源码,小弟感激不尽,我的邮箱 gaoxiaoweiandy@163.com QQ254904252 |
|
返回顶楼 | |
发表时间:2012-05-14
楼主,我安你的方法把联系人编译后,安装到模拟器上,但安装不了啊,,请问有什么要注意的吗?
|
|
返回顶楼 | |
发表时间:2012-05-17
之前这样做读已安装很快
|
|
返回顶楼 | |
浏览 12841 次