zoukankan      html  css  js  c++  java
  • Android开发中内置apk程序

    首先申明,这里的方法介绍是针对我司自己项目中的具体开发板而做的。

    Mg701内置APK有三种方式

    一、         这种方法必须要自己编写Android.mk文件(关于Android.mk可以参考),在研发中,自己有源码时,可以将APK的源码包置于Android源码中(比如:alps/package/apps中),然后需要编写Android.mk文件。然后执行命令:

    ./makeMtk <project_name> remake android <module_name>

     

    二、         使用这种方法,会将此APK加入到编译系统。当使用new时,此APK仍然会编译到系统中。具体步骤为:

    1. 在alps/packages/apps/下新建一个目录,假定为Test。

    2. 将###.apk(需要内置的apk)改名为Test.apk并放置在第一步新建的Test目录下。

    3. 请将以下内容复制并保存为Android.mk ,同样放在Test目录下

    LOCAL_PATH:= $(call my-dir)

    include $(CLEAR_VARS)

    LOCAL_MODULE_TAGS := user

    LOCAL_PREBUILT_PACKAGE := $(LOCAL_PATH)/Test.apk

    LOCAL_PACKAGE_NAME := Test

    LOCAL_CERTIFICATE := platform

    include $(PREBUILT_PACKAGE)

    注意:

    要想用户能卸载内置的apk,请在Android.mk文件中把变量值

    LOCAL_MODULE_TAGS由user改为tests

    4. 在alps/build/target/product/<project_name>.mk文件中的PRODUCT_PACKAGES这一项添加一行Test

    5. 将从###.apk解压出来的库###.so拷到

    alps/vendor/mediatek/<project_name>/artifacts/out/target/product/<project_name>/system/lib/目录下(无so库的apk内置时,去掉此步骤)。

    6. 在alps目录下执行

    ./mk <project_name> remake android。

    特别注意:依照上述步骤制作,在编译时会出现错误而停止编译,这主要是LOCAL_MODULE_TAGS := user而引起的。

    LOCAL_MODULE_TAGS :=user eng tests optional

    user: 指该模块只在user版本下才编译

    eng: 指该模块只在eng版本下才编译

    tests: 指该模块只在tests版本下才编译

    optional:指该模块在所有版本下都编译

    所以将以上Android.mk中的user改为test或者potional都可以,至于user版本的编译是指在发布版中。我们这里的发布版的编译命令是:./makeMtk -opt=TARGET_BUILD_VARIANT=user yecon73v1 new

     

     三、使用这种方法,仅仅操作out目录下的文件,来将APK和so文件打包到Image中,所以不会影响工程的源码或编译系统。但是当重新new时,新系统中不会有此APK。

    1.(假定处于alps根目录下)执行命令:source ./build/envstup.sh                                  

    2. 执行命令:

    export TARGET_PRODUCT=<project_name>

    3. 手动将so文件拷贝到(无so库的apk内置时,去掉此步骤)

    cp ###.so alps/out/product/<project_name>/system/lib/           

    4. 将APK文件拷贝到

    cp ###.apk alps/out/product/<project_name>/system/app/

    5. (假定处于alps根目录下)执行命令:

    make snod(或者m snod命令)

  • 相关阅读:
    Vue 环境配置
    导入解决方案错误及其解决办法
    Dynamics 365创建用户提示:您正在尝试使用已由其他用户使用的域登录来创建用户。的解决办法
    iOS核心动画详解(CABasicAnimation)
    iOS核心动画详解(一)
    iOS 微信支付流程详解
    初探runtime
    iOS之block,一点小心得
    iOS scrollview循环播放加缩放
    用程序删除工程中多余的图片
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/4500669.html
Copyright © 2011-2022 走看看