内容简介:在代码对应的Makefile里设定Module名,并且声明编译成java library在系统的Makefile下,比如在/build/target/product/core_minimal.mk添加如下然后就可以整编。
在代码对应的Makefile里设定Module名,并且声明编译成java library
include $(CLEAR_VARS) .... LOCAL_MODULE := my-module ... include $(BUILD_JAVA_LIBRARY)
添加到系统Makefile
在系统的Makefile下,比如在/build/target/product/core_minimal.mk添加如下
PRODUCT_PACKAGES += \ ... my-module PRODUCT_BOOT_JARS := \ ... my-module
然后就可以整编。
这里要注意,有些jar包编译会报错,比如:
Error: out/target/common/obj/JAVA_LIBRARIES/com.system.info_intermediates/classes.jar: unknown package name of class file com/system/info/SystemInfo.class
这是说jar包里出现了com/system/info/SystemInfo.class这个路径。错误的原因是系统里有一个jar包的检查机制,为了安全性,系统会有一个白名单,约束jar包内文件的包名。
文件在build/core/tasks/package_whitelist.txt
里面是正则匹配了一些基本的jar包文件规则,在里面添加即可。
使用jar包
编译到系统后就可以在Makefile定义的路径下找到jar包。然后如果想在系统调用,在对应的Makefile里添加编译依赖即可。比如我要在SystemServer通过调用jar包方法读取单片机信息,那么编译的是service.jar,所以就对/framework/base/services/Android.mk进行修改,添加:
LOCAL_STATIC_JAVA_LIBRARIES := $(addprefix services.,$(services)) \ my-module
然后在SystemServer内添加包名:
import com.mymodlue.name;
这样就完成了系统jar包的制作以及使用。
Reference
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- [Framework] 添加系统服务
- Linux内核编译及添加系统调用
- CentOS 7 将 Nginx 添加系统服务
- 码良更新,添加更直观的样式编辑系统
- 微软对 Chromium 新贡献:为字幕添加 Windows 系统样式支持
- 为基于spring-boot的应用添加根据运行时操作系统环境来提示用户选择active profile的功能
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Cracking the Coding Interview
Gayle Laakmann McDowell / CareerCup / 2015-7-1 / USD 39.95
Cracking the Coding Interview, 6th Edition is here to help you through this process, teaching you what you need to know and enabling you to perform at your very best. I've coached and interviewed hund......一起来看看 《Cracking the Coding Interview》 这本书的介绍吧!