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

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

解决方案

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )