转自:  http://www.iteye.com/topic/1050439

在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 中作为源码的一部分。

在Eclipse+ADT中开发Android系统的内置应用的更多相关文章

  1. Android基础新手教程——1.2.1 使用Eclipse + ADT + SDK开发Android APP

    Android基础新手教程--1.2.1 使用Eclipse + ADT + SDK开发Android APP 标签(空格分隔): Android基础新手教程 1.前言 这里我们有两条路能够选,直接使 ...

  2. 吴裕雄--天生自然Android开发学习:1.2.1 使用Eclipse + ADT + SDK开发Android APP

    1.前言 这里我们有两条路可以选,直接使用封装好的用于开发Android的ADT Bundle,或者自己进行配置 因为谷歌已经放弃了ADT的更新,官网上也取消的下载链接,这里提供谷歌放弃更新前最新版本 ...

  3. 使用Xamarin在Visual Studio中开发Android应用

    原文:使用Xamarin在Visual Studio中开发Android应用 本文使用的环境是Windows 8 Visual Studio 2012.2 1.下载Xamarin http://xam ...

  4. ADT中创建Android的Activity

    去创建Activity New->Other->Android->Android Activity->BlankActivity: 输入对应的信息: 创建完毕后,可以看到新建了 ...

  5. freemarker 中可以直接使用的内置对象

    freemarker 中可以直接使用的内置对象 需要配置一下:springboot中配置 ## Freemarker \u914D\u7F6E ## \u6587\u4EF6\u914D\u7F6E\ ...

  6. Python中字符串String的基本内置函数与过滤字符模块函数的基本用法

    Python中字符串String的基本内置函数与用法 首先我们要明白在python中当字符编码为:UTF-8时,中文在字符串中的占位为3个字节,其余字符为一个字节 下面就直接介绍几种python中字符 ...

  7. Eclipse ADT中的logcat不显示解决方法

    今天维护android的程序,也不知道几百年前写的,elipse,一个日志文件都不显示,做的想哭,我使用的方法二,这里给自己留一个备份,怕再忘记了   1.在Eclipse界面中找到DDMS,然后找到 ...

  8. Android 操作手机内置存储卡中的文件

    场景:需要读取指定文件的内容,此文件是手动存储到手机内置存储卡中的,且手机上不存在SD卡. 对于android通过activity提供的openFileOutput和openFileInput可以直接 ...

  9. 【微网站开发】之微信内置浏览器API使用

    最近在写微网站,发现了微信内置浏览器的很多不称心的地方: 1.安卓版的微信内浏览器底部总是出现一个刷新.前进.后退的底部栏,宽度很大,导致屏幕显示尺寸被压缩 2.分享当前网站至朋友圈时,分享的图片一般 ...

随机推荐

  1. elasticsarch5.4集群安装

    越来越多的企业已经采用ELK解决方案来对其公司产生的日志进行分析,笔者最近着手在生产环境部署自己的ELK stack,本文介绍ELK中elasticsearch5.2集群的实现. 一.环境准备 1.系 ...

  2. curl -L 跟随跳转

    curl -L 跟随跳转 加上-v 就可以看见详细信息: 学习了:https://www.cnblogs.com/davicelee/archive/2011/11/19/cURL.html http ...

  3. OFbiz实体引擎

    安全可靠的数据存储是数据管理战略的关键业务,OFbiz认真对待数据管理.不把全部繁琐和easy出错的数据管理任务留给应用开发人员.OFbiz在设计和实现阶段非常好的贯彻了这个理念. 实体引擎是数据库无 ...

  4. Android之——AIDL深入

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/47071927 在上一篇博文<Android之--AIDL小结>中,我们 ...

  5. Servlet访问Javabean并传结果给jsp

    1.先建立包名: 2.建立实体类 参考二维表,考虑各个字段名字.类型 在entity包里面建立一个类,代码如下: public class House { private String id; pri ...

  6. 设置清除html5页面缓存

    设置清除html5页面缓存 html5端设置 meta 标签: <meta http-equiv="Pragma" content="no-cache" ...

  7. java语法基础(二)

    流程控制语句 表达式语句 在表达式后面添加:就构成了表达式语句,简称“语句” 我们编写java代码,更多时候都是在书写表达式语句. int i;声明语句 i = 10;赋值语句 流程控制语句 流程控制 ...

  8. 搭建基于Maven的SSM框架

    先展示文件结构图对工程结构有大致了解: 主要为  ssm-parent (用来管理jar包版本)是每个工程的父工程,ssm-common(用来处理底层数据),ssm-manager(对数据库信息进行操 ...

  9. android stdio 异常

    1.android studio gradle project sync failed File -> Settings 搜索Gradle 2.eqmu-system-i386未响应   分辨率 ...

  10. POJ3186 Treats for the Cows —— DP

    题目链接:http://poj.org/problem?id=3186 Treats for the Cows Time Limit: 1000MS   Memory Limit: 65536K To ...