将自定义的jar包添加到framework层(解决)

原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

然后在build/core/pathmap.mk文件中添加你自己创建的目录

FRAMEWORKS_BASE_SUBDIRS := \

 $(addsuffix /java, \

core \

            graphics \

            location \

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将自定义jar包添加Android系统的/system/framework目录下并允许APK调用,需要进行以下步骤: 1. 将自定义jar包复制到Android源代码的/frameworks/base/libs/目录下。 2. 修改Android源代码的/frameworks/base/core/java/Android.mk文件,在LOCAL_JAVA_LIBRARIES变量中添加自定义库的名称。 例如,如果自定义库的名称是mylibrary.jar,修改后的LOCAL_JAVA_LIBRARIES变量应该是: ``` LOCAL_JAVA_LIBRARIES := core-libart bouncycastle apache-xml conscrypt mylibrary ``` 3. 修改Android源代码的/build/target/product/core.mk文件,在PRODUCT_BOOT_JARS变量中添加自定义库的名称。 例如,如果自定义库的名称是mylibrary.jar,修改后的PRODUCT_BOOT_JARS变量应该是: ``` PRODUCT_BOOT_JARS := $(call add-to-boot-jars,core-libart bouncycastle apache-xml conscrypt mylibrary) ``` 4. 编译Android源代码,并将编译后的系统镜像烧录到设备上。 5. 在APK中使用自定义库,需要在AndroidManifest.xml文件中添加以下权限: ``` <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> ``` 6. 在APK中使用自定义库,需要在build.gradle文件中添加以下依赖: ``` dependencies { implementation files('/system/framework/mylibrary.jar') } ``` 注意:由于/system/framework目录是系统级别的目录,因此需要具有root权限才能将自定义jar包复制到该目录中。同时,修改Android源代码需要一定的编译和构建知识和经验,建议在熟悉Android源代码的情况下进行操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值