如何将无源码的APK编译到系统

        在CSDN潜水多年,一直以来忙忙碌碌,走过了不少的路,却总是以忙为理由没有留下自己的一星半点足迹,从今天开始,也要在CSDN大家庭里记录自己的点点滴滴,即方便自己查阅,若能给后来者有一点点提示启发,也算是功莫大焉,第一篇记录,就献给大andriod世界了。

        如何将无源码的 APK 预置进系统?假设手头有一份UserTest.apk为例:

        1:在 packages/ 下创建一个与apk同名文件夹UserTest。

        2:在 packages/UserTest/ 下创建文件 Android.mk, 文件内容如下:

              

       LOCAL_PATH := $(call my-dir)

       include $(CLEAR_VARS)
       
       LOCAL_MODULE := UserTest
       
       LOCAL_MODULE_CLASS := APPS
       
       LOCAL_MODULE_TAGS := optional
       
       LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
       
       LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
       
       LOCAL_CERTIFICATE := PRESIGNED
       
include $(BUILD_PREBUILT)

      2:在 packages/UserTest/ 下再次创建文件 build.mk, 文件内容如下:
      PRODUCT_PACKAGES += UserTest

      3: 将UserTest.apk COPY在 packages/UserTest/ 下。
      4:  打开文件 /device/${Project}.mk (其中${Project}表示工程名)
       添加如下语句:
        $(call inherit-product-if-exists,packages/UserTest/build.mk)

      5: 如果apk里面有.so库文件,需要解压.so库文件

          方法一:直接添加lib库(在Android.mk里面需要增加如下语句)

          my_src_arch := arm

          my_src_abi := armeabi

          LOCAL_PREBUILT_JNI_LIBS := \

                 @lib/$(my_src_abi)/libtest1.so

                  @lib/$(my_src_abi)/libtest2.so

        LOCAL_MODULE_TARGET_ARCH := $(my_src_arch)

          


      6: 重新build整个工程。

 

 

        

    

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值