首页 > 移动平台 > 详细

开发Android系统内置应用小记

时间:2016-02-24 12:10:40      阅读:300      评论:0      收藏:0      [点我收藏+]

 

Android系统内置应用可以使用更多的API、更高的权限,与开发普通应用最大的差别在于编译,内置应用编译需要用到Android.mk文件。下面是我在开发过程中的一些小记。

 

1、在AndroidMainfest.xml中添加 android:sharedUserId="android.uid.system" 。通过sharedUserId属性,相同User id的apk配置运行在同一进程中,把程序的User id配置成android.uid.system,也就是让程序运行在系统进程中,这样程序就有权限来读写系统配置。

技术分享

 

2、编写Android.mk

 

ROOT_DIR := $(call my-dir)

include $(CLEAR_VARS)

ifeq ($(BOARD_HAS_MOTO_2D_SCANNER), true)

# include the libarary
LIBPATH := $(ROOT_DIR)/libs/armeabi
LOCAL_PATH := $(LIBPATH)
$(shell cp -rf $(LIBPATH)/*  $(TARGET_OUT)/lib/)  

include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_PREBUILT_LIBS := libbarcodereader.so libIAL.so libSDL.so
include $(BUILD_MULTI_PREBUILT)



# the app
include $(CLEAR_VARS)
LOCAL_PATH:= $(ROOT_DIR)
LOCAL_PROGUARD_FLAG_FILES := proguard.cfgs
LOCAL_MODULE_TAGS := optional
LOCAL_CERTIFICATE := platform
LOCAL_DEX_PREOPT := false
LOCAL_PRIVILEGED_MODULE := true
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_PACKAGE_NAME := CheckCamera
include $(BUILD_PACKAGE)



endif

Android.mk文件放在工程的根目录中。

当你的项目中要是用的.so库时,需要用下面命令将so库拷贝到系统对于的目录中(/vendor/lib或/system/lib)

# include the libarary
LIBPATH := $(ROOT_DIR)/libs/armeabi
LOCAL_PATH := $(LIBPATH)
$(shell cp -rf $(LIBPATH)/*  $(TARGET_OUT)/lib/)  

 

LOCAL_CERTIFICATE := platform 配置为apk使用系统签名

LOCAL_DEX_PREOPT := false  LOCAL_DEX_PREOPT用于配置编译时是否将apk和odex分离
 

 

开发Android系统内置应用小记

原文:http://www.cnblogs.com/l2rf/p/5212193.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!