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

此文不一样于官方文档给出的方案,之因此如此,基于如下考虑几点考虑:咱们之因此拿源码进行增量开发,通常而言,不是为了整个工程,而是为了其中某个特定的模块,好比说ContactsLuancher 等;其次,官方方案有一个巨大的缺陷——优化后的模块打包成apk颇有可能没法在其余系统上安装,由于它有系统权限,而且一直签rom的签名,而这个签名在其余系统上是拿不到的。换句话说,除非你想作嵌入式,不然别这么干。html

具体步骤:linux

编译源码:因为这些模块依赖的包中有一部分是不开放的,因此,只能把整个源码编译一遍,而后拿出相关的jar包。android

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

/usr/bin/ld: cannot find -lzshell

collect2: ld returned 1 exit status函数

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

ui

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

缺乏lib32z1-dev,安装便可:apt-get install lib32z1-dev spa

源文档 <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来解决(参照下面的解决方案)。

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

解决方案

相关文章
相关标签/搜索