需求由来:由于移植的AOSP Android系统还无法直接在网上安装app,于是下载了一些已经编译好的app,问题是这些app该放在何处?如何让Android系统安装它们?

下面以AngryBird.apk为例介绍如何实现。

创建packages/apps/AngryBird目录:

alan@FSLChengdu:/data/alan/Android$ ls packages/apps/AngryBird/

Android.mk  AngryBird.apk

将AngryBird.apk放到这个目录里面,并在其中建立文件Android.mk,文件内容为:

alan@FSLChengdu:/data/alan/Android$ vi packages/apps/AngryBird/Android.mk

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := optional

LOCAL_MODULE := AngryBird

LOCAL_SRC_FILES := $(LOCAL_MODULE).apk

LOCAL_MODULE_CLASS := APPS

LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)

LOCAL_CERTIFICATE := platform

include $(BUILD_PREBUILT)

接下来,在PRODUCT_PACKAGES中加入该app模块的名称,如此,编译Android系统时,AngryBird就会被编译进去,并且在Android系统起来时会自动安装该app。我的Android是在device/nxp/layerscape/packages.mk加入:

alan@FSLChengdu:/data/alan/Android$ vi device/nxp/layerscape/packages.mk

PRODUCT_PACKAGES += \

  AngryBird \

  BaoxuePlayer \

  QihooBrowser \

  QihooAppStore \

app模块的名称必须与上面LOCAL_MODULE的一致。

题外话:如此安装的apk是安装在system分区,不是在data分区,因此普通情况下不能卸载。

更多相关文章

  1. 在Linux(Ubuntu)下安装Android设备的ADB/USB驱动
  2. android开机自启动失败的原因
  3. Android(安卓)EditText设置InputType属性时,隐藏系统软键盘失败
  4. Application.mk文件详解
  5. Android(HTC G7) 安装 Hadoop 伪分布
  6. Android(安卓)下载APP完成后,打开APP完成安装。
  7. android sdk 让SDK Manager来自动安装上面下载的文件
  8. android SDK安装问题
  9. Android四种模式里隐含的哲学

随机推荐

  1. Android中attrs.xml文件的使用详解
  2. Android(安卓)小说阅读护眼模式
  3. Android读写文件
  4. 【转】 Android上调用google map api v2
  5. Android(安卓)最火的快速开发框架Android
  6. Android(安卓)SDK Emulator: Compile Cya
  7. Android小问题解决办法记录
  8. Android(安卓)学习笔记 Contacts (一)Conte
  9. SoLoader,android动态加载so库
  10. android 超简单的下载功能,进度条 异步下