android gingerbread 编译命令 make update-api
2014-05-30 10:57
661 查看
gingerbread 编译命令 make update-api
编译命令:make update-api;
make PRODUCT-sdk-sdk;
命令说明:
1、 make update-api #如果你在Android源码中添加了自定义的包、类、方法或者你修改了Android源码中标识为@hide的方法、类,你需要这些内容对 Application可见并且需要编译进SDK的Document中的话,这个命令是必须的(其实还有另外一种手工修改的方式替代这个命令的,呵呵);
2、make PRODUCT-sdk-sdk #编译源码并且声称SDK,这个方法解决了之前使用make sdk命令编译SDK的一个bug,就是R文件不能自动生成,需要手动更新一个jar文件才可以,这个文章本博客中也有涉及。
异常现象:
如果在源码中添加了一些style、theme、drawable、package、class、method,编译时会出现有out/目录中的一些异常现象,一般不是特别严重的,主要是针对有些文件找不到,此时你可以在执行以下命令:
make clean
再执行:
make update-api
make PRODUCT-sdk-sdk
///////////////////////////////
当我们修改了google 开放出来的类。所谓开放的类与开放的API,这个只是javadoc的范畴,并不是java中public和private,也就是说,对于源码的编译无所谓,只是对javadoc的生成有影响关于类的开放和隐藏,是通过doc的注释{@hide}来控制的。比如 Environment 这个类,我们新增了几个成员方法,编译的时候就会出现如下的错误:
******************************
You have tried to change the API from what has been previously approved.
To make these errors go away, you have two choices:
1) You can add "@hide" javadoc comments to the methods, etc. listed in the
errors above.
2) You can update current.xml by executing the following command:
make update-api
To submit the revised current.xml to the main Android repository,
you will need approval.
******************************
但是如果修改的是google没有开放出来的类,比如RIL,PhoneFactory,就不会出现这个问题。
google 给了两个选择:
1. 在你添加的API或者变量前面,增加javadoc 注释@hide。但是要注意的是,并不是简单写个@hide 或者就可以了,这些都是错误的javadoc注释格式,标准的javadoc都是这样的 而且对于 format 变量 应该加上 { },所以我们应该这样写
2. 你就是想要生成的javadoc里面出现这个方法或者变量,你必须输入: make update-api,即编译时,输入make update-api PRODUCT-***-eng,但是输入 make PRODUCT-***-eng update-api 这样是有问题的,因为后面的update-api会被忽略掉,这样系统就会自动的把我们新增的API 写入 frameworks/base/api/current.xml 文件中。
以上两个方案可以很好的解决新增API的问题,而这个问题是我们以后常常遇到的。
相关文章推荐
- Android系统源码编译 unsupported reloc 43 和 make update-api
- 编译android源码的make命令解析
- android平台的三个编译命令----make,mm,mmm
- 编译android源码的make命令解析
- Android 编译命令:make -j8 SHOWCOMMAND=TRUE 2>&1 | tee build.log解释
- 编译android源码的make命令解析
- Android 编译命令 make j8 2>&1 | tee build.log 解释
- android平台的三个编译命令----make,mm,mmm
- 编译android源码的make命令解析
- 关于源码编译每次提示有错误 要make update-api
- android平台的三个编译命令——make,mm,mmm
- 编译完android源码并且已经make sdk之后,重启不能调用emulator命令解决方案
- android平台的几个编译命令----make,mmm,mm,mma
- android平台的三个编译命令----make,mm,mmm
- 关于源码编译每次提示有错误 要make update-api
- 关于源码编译每次提示有错误 要make update-api
- 编译android源码的make命令解析
- android平台的三个编译命令----make,mm,mmm
- Android快速编译命令及相关make指令
- 在Ubuntu上编译 Android Gingerbread 2.3.1