在Eclipse+ADT中开发Android系统的内置应用
转自: 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系统的内置应用的更多相关文章
- Android基础新手教程——1.2.1 使用Eclipse + ADT + SDK开发Android APP
Android基础新手教程--1.2.1 使用Eclipse + ADT + SDK开发Android APP 标签(空格分隔): Android基础新手教程 1.前言 这里我们有两条路能够选,直接使 ...
- 吴裕雄--天生自然Android开发学习:1.2.1 使用Eclipse + ADT + SDK开发Android APP
1.前言 这里我们有两条路可以选,直接使用封装好的用于开发Android的ADT Bundle,或者自己进行配置 因为谷歌已经放弃了ADT的更新,官网上也取消的下载链接,这里提供谷歌放弃更新前最新版本 ...
- 使用Xamarin在Visual Studio中开发Android应用
原文:使用Xamarin在Visual Studio中开发Android应用 本文使用的环境是Windows 8 Visual Studio 2012.2 1.下载Xamarin http://xam ...
- ADT中创建Android的Activity
去创建Activity New->Other->Android->Android Activity->BlankActivity: 输入对应的信息: 创建完毕后,可以看到新建了 ...
- freemarker 中可以直接使用的内置对象
freemarker 中可以直接使用的内置对象 需要配置一下:springboot中配置 ## Freemarker \u914D\u7F6E ## \u6587\u4EF6\u914D\u7F6E\ ...
- Python中字符串String的基本内置函数与过滤字符模块函数的基本用法
Python中字符串String的基本内置函数与用法 首先我们要明白在python中当字符编码为:UTF-8时,中文在字符串中的占位为3个字节,其余字符为一个字节 下面就直接介绍几种python中字符 ...
- Eclipse ADT中的logcat不显示解决方法
今天维护android的程序,也不知道几百年前写的,elipse,一个日志文件都不显示,做的想哭,我使用的方法二,这里给自己留一个备份,怕再忘记了 1.在Eclipse界面中找到DDMS,然后找到 ...
- Android 操作手机内置存储卡中的文件
场景:需要读取指定文件的内容,此文件是手动存储到手机内置存储卡中的,且手机上不存在SD卡. 对于android通过activity提供的openFileOutput和openFileInput可以直接 ...
- 【微网站开发】之微信内置浏览器API使用
最近在写微网站,发现了微信内置浏览器的很多不称心的地方: 1.安卓版的微信内浏览器底部总是出现一个刷新.前进.后退的底部栏,宽度很大,导致屏幕显示尺寸被压缩 2.分享当前网站至朋友圈时,分享的图片一般 ...
随机推荐
- react 项目中 引入 bootstrap
react-bootstrap是一个非常受欢迎的针对react封装过的bootstrap,它本身不包含css,所以也是需要使用bootstrap原生库. 在create-react-app建的项目目录 ...
- Jenkins系列之-—03 修改Jenkins用户的密码
一.Jenkins修改用户密码 Jenkins用户的数据存放在JENKINS_HOME/users目录. 1. 打开忘记密码的用户文件夹,里面就一个文件config.xml.打开并找到<pass ...
- leetcode——Implement strStr() 实现字符串匹配函数(AC)
Implement strStr(). Returns a pointer to the first occurrence of needle in haystack, or null if need ...
- poj1664 dp记忆化搜索
http://poj.org/problem?id=1664 Description 把M个相同的苹果放在N个相同的盘子里,同意有的盘子空着不放,问共同拥有多少种不同的分法?(用K表示)5.1.1和1 ...
- 大话设计模式C++实现-第14章-观察者模式
一.UML图 关键词:Subject维护一个Observer列表.Subject运行Notify()时就运行列表中的每一个Observer的Update(). 二.概念 观察者模式:定义了一种一对多的 ...
- egrep grep -E
egrep执行效果与"grep-E" Linux egrep命令用于在文件内查找指定的字符串. egrep执行效果与"grep-E"相似,使用的语法及参数可参照 ...
- js需要注意的地方
1.function xx(){}定义函数,而对象和函数合写才是方法. 2.typeof返回一个用于识别其运算数类型的字符串.但是需要注意的是,比如typeof null返回的对象是object而不是 ...
- 设计模式-(18)命令模式 (swift版)
一,概念: 在软件系统中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”.但在某些场合,比如要对行为进行“记录.撤销/重做.事务”等处理,这种无法抵御变化的紧耦合是不合适的.在这种情况下,如何将 ...
- java中abstract和interface的區別(轉)
(一)概述 在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制.正是由于这两种机制的存 在,才赋予了Java强大的 面向对象能力.abstract ...
- 7-39 Math对象
7-39 Math对象 学习要点 掌握常用的数学计算方法 温馨提示:关于学习方法的建议 不要强求自己讲参考手册上所以的属性和方法都搞清楚,原因如下: 有些属性和方法非常生僻,很少用,甚至经过一段时间后 ...