在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两个应用,其它应用还未验证,若你在开发中有相关经验或者发现,欢迎和我交流。
。。。。
分享到:
相关推荐
Android开发, 很多的都不能安装ADT, 如果不能安装, 建议考虑使用这里的方法, 经过在虚拟机测试, Win7和XP经过这个安装方法都能正常使用, 内置了Android2.1, 2.3.3, 4.0.3的开发平台!
(2)布局文件 创建布局文件 加载布局文件 (3)在清单文件中注册活动 (4)以上方法完成多个活动的创建 Android移动应用开发实验指导书全文共13页,当前为第3页。(5)使用Intent完成多个活动之间的交互和数据传递...
17.2.1 Android内置的发送短信/彩信功能 450 17.2.2 自己编写发送文本内容的短信 452 17.2.3 自己编写接收文本内容的短信 458 17.2.4 自己编写发送二进制内容的短信 459 17.2.5 自己编写接收二进制内容的短信 ...
的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 • 应用程序框架 支持组件的重用与替换 • Dalvik Dalvik Dalvik Dalvik 虚拟机 专为移动设备优化 • ...
(2)布局文件 创建布局文件 加载布局文件 (3)在清单文件中注册活动 (4)以上方法完成多个活动的创建 Android移动应用开发实验指导书全文共13页,当前为第3页。(5)使用Intent完成多个活动之间的交互和数据传递...
分别来自手机制造业、电视媒体业、网络、电信产业、软件开发等领域,擅长嵌入式系统软件设计、J2ME游戏开发、Android开发,以及12EE、JSP、Servlet、Java Bean、PHP、C#等程序语言,熟悉面向对象技术与Eclipse、...
分别来自手机制造业、电视媒体业、网络、电信产业、软件开发等领域,擅长嵌入式系统软件设计、J2ME游戏开发、Android开发,以及12EE、JSP、Servlet、Java Bean、PHP、C#等程序语言,熟悉面向对象技术与Eclipse、...
分别来自手机制造业、电视媒体业、网络、电信产业、软件开发等领域,擅长嵌入式系统软件设计、J2ME游戏开发、Android开发,以及12EE、JSP、Servlet、Java Bean、PHP、C#等程序语言,熟悉面向对象技术与Eclipse、...
分别来自手机制造业、电视媒体业、网络、电信产业、软件开发等领域,擅长嵌入式系统软件设计、J2ME游戏开发、Android开发,以及12EE、JSP、Servlet、Java Bean、PHP、C#等程序语言,熟悉面向对象技术与Eclipse、...
4.1 探索Android内置的ContentProvider 4.2 ContentProvider的架构 4.3 实现ContentProvider 4.4 练习图书提供程序 4.4.1 添加图书 4.4.2 删除图书 4.4.3 获取图书数量 4.4.4 显示图书列表 ...
4.1 探索Android内置的ContentProvider 4.2 ContentProvider的架构 4.3 实现ContentProvider 4.4 练习图书提供程序 4.4.1 添加图书 4.4.2 删除图书 4.4.3 获取图书数量 4.4.4 显示图书列表 ...
为了设置 Android 开发环境,开发人员需要下载 ADT Bundle,其中包括基本的 Android SDK 组件和带有内置 ADT(Android 开发人员工具)的 Eclipse IDE 版本。 下载 URL 和更多信息可以在这里看到: : 导入 FLAX And...
CU是清除未使用的缩写,本项目主要用于清理Android工程中无用的代码文件和资源文件。 CURes.java清理资源文件,内置ADT SDK自带的Lint工具,相对路径为\ sdk \ tools \ lint.bat。 CUSrc.java用于清理.java文件,...