http://zhuyonghui116.blog.hexun.com/53467491_d.html
首先是这个问题如何修改。
在/frameworks/base/Android.mk中,找到如下行:
packages_to_document :=
在该变量的赋值语句最后添加
xxxxx (这里是你的包的名称,比如com/sina/ui,其实这里就是你的源代码在/frameworks/base/<你的模块>/java/下面的一部分路径,只要能够唯一的匹配到你的代码即可)
即可。
该添加的含义是使MAKE系统在制作OFF-LINE DOCUMENT时包含我们的package.
以此类推,添加其他新的package也可以这样做。
下面简单把android make sdk的过程写一下来说明为什么做这样的修改。调查时是反过来调查的。说明还是按照MAKEFILE的生成的顺序来说明吧。
首先在/frameworks/base/Android.mk中定义了进行sdk building的基本目标对象。
包括对哪些.java文件需要生成API文档,以及这些文档的路径。
然后在/build/core/droiddoc.mk中定义了最终进行build的规则和语句。
Android使用javadoc这个工具来生成所有API文档。
Javadoc这个工具可以带一个参数指定一个文件,该文件包含了所有要生成文档的源文件的名字(全路径)。
该文件的内容就是通过在/framework/base/android.mk里的变量生成的。当然在droiddoc.mk中还添加了build过程中生成的intermediates目录下的文件。
另 外javadoc还可以指定定制的doclet(doclet是基于javadoc特定的API开发的小程序,该程序负责实际的文档输 出).android的编译系统就包含了这样一个doclet叫DroidDoc。可以在/build/tools/DroidDoc目录下找到该工具的 全部源代码。
正 是该工具在生成HTML的同时在/out/target/common/obj/JAVA_LIBRARIES /android_stubs_current_intermediates下面copy(或者说重新生成了)所有将生成到android.jar中的所 有源代码(.java文件).
该工具把所有生成document的源文件重新按Package组织生成在以上目录下。
然后进行编译和打包成android.jar。
根 据以上分析,其实android.jar文件是各个公布出来的 API 的源文件经过javadoc重新组织以后再次编译产生的。 故,android.jar的内容实际上受到javadoc的notation控制和makefile的控制。 对于android中已存在的代码比如wifi native,可以通过修改源代码中javadoc的notation的方法重新build得到新的包含wifi native接口的android.jar(将源文件中的@hide这个notation换成别的,然后make update-api;make
sdk)。而对于新加入的代码,则需要如上方法来修改makefile了。
下面总结一下调查过程中涉及到的知识:
1) javadoc和doclet,简单的看了一下工具的使用和参数,另外看了一下DriodDoc这个doclet的源代码,找出哪里生成的.java源文件。
2.makefile 分析,android的make showcommands命令可以和任何其他目标一起使用来察看make过程中实际做了一些什么事情。(这点还需要调查这个showcommands如何 实现的,因为make -d这个命令给出的信息对于找到问题帮助不大)
3.在跟踪makefile build过程时,使用$(warning xxxxx)和$(error xxxx)可以在除规则以外的地方打印出变量的值通过这个方法找出了实际建立要编译的文件列表的地方。
分享到:
相关推荐
taobao-sdk-java-auto.jar工具类,taobao-sdk-java-auto.jar工具类
新版libammsdk.jar wechat-sdk-android-without-mta-5.5.8.jar
gexin-rp-sdk-http-4.0.1.7.jar gexin-rp-sdk-http-4.0.1.7.jar gexin-rp-sdk-http-4.0.1.7.jar
taobao-sdk-java-auto-1.0.jar,
赠送源代码:aws-java-sdk-core-1.11.939-sources.jar 包含翻译后的API文档:aws-java-sdk-core-1.11.939-javadoc-API文档-中文(简体)版.zip 对应Maven信息:groupId:com.amazonaws,artifactId:aws-java-sdk-...
赠送源代码:aws-java-sdk-core-1.12.160-sources.jar; 赠送Maven依赖信息文件:aws-java-sdk-core-1.12.160.pom; 包含翻译后的API文档:aws-java-sdk-core-1.12.160-javadoc-API文档-中文(简体)-英语-对照版.zip...
Android SDK (SDK Platforms)-android-33-ext4.zip
alipay sdk trade-sdk 支付宝接口sdk,包含alipay-sdk-java-1.0.0.jar,alipay-trade-sdk-1.0.0.jar
官方版本,亲测可用
android-support-v7-appcompat.jar和android-support-v4.jar包
Android SDK (SDK Platforms)-android-31.zip
单元测试用到的两个库android-all-9-robolectric-4913185-2.jar和android-all-8.1.0-robolectric-4611349.jar,记住org.robolectric:robolectric:4.0.2这个测试库的版本要求在4.2.1以下,测试类中要修SDK版本最高28,...
Android SDK (SDK Platforms)-android-30.zip
android-sdk-build-tools27.0.1.rar
aliyun-sdk-oss-3.10.2.jar,免费下载
taobao-sdk-java-auto_1325096207411-20120111-source.jar
android-support-v4.jar android sdk Target-23以后可用的完整jar包,Android6.0以后会有一个动态权限申请的功能,需要在使用某权限如写权限时,必须使用此完整的jar包,否则缺少相应的函数类 android-support-v7-...
Google android-sdk-windows-2.1.part03.rar
androidsdk-platforms-android-23.rar