版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yuezhuo_752/article/details/53696005
原java类文件放到framework下面,通过源码编译生成系统jar包:
项目中,客户要求将jar添加到framework.jar里,以便所有的apk都可以调用这个jar。这个jar包里面调用了AIDL里的方法,源码里有项目是AIDL的服务端,冰拳引用了framework.jar,则会因为包名类名相同导致出现混淆错误。下面是我自己总结各方资料来解决问题,仅供参考:
1.简单的弄一个架包加入到framework.jar里面去
在frameworks\base下新建xxx目录,下面的目录结构如下,不需要加Android.mk文件,但必须要有一个java的目录:
└─xxx
└─java
└─com
└─android
└─frameworkunit
└─ FrameworkTest.java
└─java
└─com
└─android
└─frameworkunit
└─ FrameworkTest.java
然后在build/core/pathmap.mk文件中添加你自己创建的目录
FRAMEWORKS_BASE_SUBDIRS := \
$(addsuffix /java, \
core \
graphics \
location \
media \
media/mca/effect \
media/mca/filterfw \
media/mca/filterpacks \
.
.
xxx \
)
然后通过mmm命令编译这个新添加的模块了:
mmm framework/base编译,生成文件为out/target/product/generic/system/framework/framework.jar
编译通过后就可以做接下来的事情了
这样便实现APK从framework.jar中调用自定义的方法了
借鉴:
http://www.360doc.com/content/14/0308/22/3700464_358895265.shtml