Chinaunix首页 | 论坛 | 博客
  • 博客访问: 680291
  • 博文数量: 64
  • 博客积分: 1470
  • 博客等级: 上尉
  • 技术积分: 2133
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-18 12:08
个人简介

文章分类

全部博文(64)

文章存档

2013年(16)

2011年(4)

2010年(14)

2009年(30)

我的朋友

分类: Android平台

2013-08-27 16:49:26

将一些apk文件预编译到系统中,从而不用每次跟新系统后在安装应用。

mydroid$ gedit device/ti/nexttab/device.mk

增加文件:
# ***Tommy: Prebuild all APK to /system/app for use GooglePlay ***
#增加google play应用,需要如下apk文件才能使用google play。
PRODUCT_COPY_FILES +=
    device/ti/nexttab/google_paly/Gmail.apk:system/app/Gmail.apk
    device/ti/nexttab/google_paly/GoogleLoginService.apk:system/app/GoogleLoginService.apk
    device/ti/nexttab/google_paly/GoogleBackupTransport.apk:system/app/GoogleBackupTransport.apk
    device/ti/nexttab/google_paly/GoogleMarket.apk:system/app/GoogleMarket.apk
    device/ti/nexttab/google_paly/GoogleContactsSyncAdapter.apk:system/app/GoogleContactsSyncAdapter.apk
    device/ti/nexttab/google_paly/GoogleServicesFramework.apk:system/app/GoogleServicesFramework.apk    
        device/ti/nexttab/google_paly/GoogleFeedback.apk:system/app/GoogleFeedback.apk

编译错误:
build/core/Makefile:25: *** Prebuilt apk found in PRODUCT_COPY_FILES: device/ti/nexttab/google_paly/Gmail.apk:system/app/Gmail.apk, use BUILD_PREBUILT instead!.  Stop.

解决:
 gedit build/core/Makefile
#Tommy Delete  删除如下代码
#define check-product-copy-files
#$(if $(filter %.apk, $(1)),$(error
#    Prebuilt apk found in PRODUCT_COPY_FILES: $(1), use BUILD_PREBUILT #instead!))
#endef

编译OK

烧写系统后,便可使用系统中应用了。但是有些应用不能用这种方法安装,如果用这种方式,生成的应用打不开。

http://blog.chinaunix.net/uid-20780196-id-3202490.html

 

 

编译的时候内置APK,也可以称为导入APK,分两种:
1、单独的APK文件,已经编译好的
这种一般存在于自己的产品的vendor目录下的某个专门用于植入的app目录内,一般通过编译脚本.mk内插入变量 PRODUCT_COPY_FILES来搞定,规则一般用+=(在变量基础上附加的意思)。一般遇到LZ这种问题,是由于用的谷歌官方的AOSP脚本导致 的,因为官方的build/core/makefile规则文件包含了校验,其中就有一段是校验拷贝的程序是否为apk,如果是,就被禁止。那么只需要修 改这个脚本,屏蔽掉这条命令即可,不影响系统和其他编译。具体代码在makefile第28行。

2、源代码的apk,没有编译的需要自己编译的
这种一般放在源代码packagesapp下,目录的形式,(编译好的APK文件是不存在也不需要Android.mk文件的,所以LZ说弄 Android.mk文件搞定的根本就是文不对题。。。)。一般源代码APK的目录都有这个文件,实在没有,就自己写一个,大致格式为:
LOCAL_PATH := $(call my-dir)
 

      include $(CLEAR_VARS)
        
        LOCAL_MODULE := Superuser.apk
        LOCAL_MODULE_TAGS := eng debug
        LOCAL_MODULE_CLASS := EXECUTABLE
        LOCAL_MODULE_PATH := $(TARGET_OUT_APPS)
        LOCAL_SRC_FILES := $(LOCAL_MODULE)
        
        include $(BUILD_PREBUILT)

阅读(7763) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~