`
quanminchaoren
  • 浏览: 911474 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Android Contacts源码Eclipse开发编译环境搭建

阅读更多

此文不同于官方文档给出的方案,之所以如此,基于以下考虑几点考虑:我们之所以拿源码进行增量开发,一般而言,不是为了整个工程,而是为了其中某个特定的模块,比如说 Contacts Luancher 等;其次,官方方案有一个巨大的缺陷——优化后的模块打包成 apk 很有可能无法在其他系统上安装,因为它有系统权限,并且一直签 rom 的签名,而这个签名在其他系统上是拿不到的。换句话说,除非你想做嵌入式,否则别这么干。

具体步骤:

编译源码:由于这些模块依赖的包中有一部分是不开放的,所以,只能把整个源码编译一遍,然后拿出相关的 jar 包。

关于如何编译源码网上有很多说明,都是用 git 把源码下载下来( 4G 左右),然后配下相应的编译环境。请参照: Justin Build Android Platform 。通常会遇到一些错误,编译停止,这些错误通常都是一些库函数找不到,这时候你只需要将相应的库函数下载下来,也就是完善一下你的编译环境,比如说这个错误:“

/usr/bin/ld: cannot find -lz

collect2: ld returned 1 exit status

make: *** [out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/aapt] Error 1

这个错误我曾经试了很多种方法,最后才发现就是

缺少 lib32z1-dev, 安装即可 :apt-get install lib32z1-dev

源文档 < http://0123.blog.163.com/blog/static/47883120101024104416786/ >

所以,如果有相应的错误,就把 cannot find 后面那个东西,去掉“ -l ”,也就是相应的库函数了,如上面就是缺少了 z 函数。然后上网搜。

另外,据说我比较好运用的是 64 位系统 Ubuntu ,且内存比较大, CPU 也比较 OK ,所以编译时错误比较少,编译时间也比较短,大概 1 个钟,而一般来说都要 2 个钟,所以大家做好心理准备。

有相关编译问题请咨询: ernest.he2009@gmail.com

开始 Eclipse 之旅:

找到相关 jar 包,这个你如果熟悉 Java 肯定很容易就知道, Android 中不开放的包一般在 frameworks 底下很容易找到,具体路径就是: out/target/common/obj/JAVA_INTERMEDIATE/frameworks_intermediate ,拿到 class.jar 就可以了。但是在 Contacts 中比较特殊,需要另一个 phone 包,这个一样可以拿到。

关键是拿到之后怎么办的问题。处理不当就会造成 Eclipse 挂掉。这里就需要通过 User Libraries 来解决(参照下面的解决方案)。

这样开发环境建立起来以后就是编译了。为了能够成功编译运行。请参照以下解决方案:

解决方案

分享到:
评论
4 楼 xl040301 2011-08-16  
请问下phone包是放在哪的?谢谢!
3 楼 trh3037 2011-03-28  
照着那方式做,为什么还是报少包呢?。
2 楼 quanminchaoren 2010-12-14  
最简单的方法,new android project ,只把源码代码复制过去替换掉自动生成的文件。
假如你是开发SDK源码的话就不能这样做了,看一下其他的源码开发帖子!
1 楼 庞庞123 2010-12-14  
楼主我想把android源码中的Mms作为一个独立的工程导入Eclipse中如何去做呢,请楼主不吝赐教。谢谢

相关推荐

Global site tag (gtag.js) - Google Analytics