【转】Android开发中内置apk程序
2012-08-11 15:43
197 查看
原文地址:http://blog.csdn.net/yinwei520/article/details/6598476
MID内置APK教程
By YWW
首先申明,这里的方法介绍是针对我司自己项目中的具体开发板而做的。
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命令)
MID内置APK教程
By YWW
首先申明,这里的方法介绍是针对我司自己项目中的具体开发板而做的。
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命令)
相关文章推荐
- Android开发中内置apk程序
- Android.mk——开发中内置apk程序配置
- Android开发中内置apk程序
- Android开发中内置apk程序
- Android开发中内置apk程序
- Android程序开发记录:发布APK,权限等
- android 开发 程序中下载安装APK文件 问题汇总 解析程序包时出现问题
- Android apk签名、第三方内置、图标添加与删除、开关机动画及铃声、启动第三方程序
- Android非APK程序开发流程
- android 开发之 使用Android系统隐藏api 读取*.apk 程序安装包信息
- Android apk签名、第三方内置、图标添加与删除、开关机动画及铃声、启动第三方程序
- Android开发 之 逆向apk程序
- android 如何内置/预置/预编译文件(执行程序,应用程序,apk, jar, lib 等任意文件)到系统中
- android 怎样内置/预置/预编译文件(运行程序,应用程序,apk, jar, lib 等随意文件)到系统中
- Android APK文件在电脑上面运行方法(Android开发,程序部署)
- 用eclipse开发的android程序如何打包成apk文件
- Android应用之个人应用软件开发【全套程序展示及APK下载】
- Android 开发中,如何将多个程序打包成一个apk文件,但是安装完成后显示多个程序?