zoukankan      html  css  js  c++  java
  • 开发Android系统内置应用小记

    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分离
     

     3、在Android系统源码目录下build argetproductcore.mk文件中添加Package Name:

  • 相关阅读:
    Delphi公用函数单元
    Delphi XE5 for Android (十一)
    Delphi XE5 for Android (十)
    Delphi XE5 for Android (九)
    Delphi XE5 for Android (八)
    Delphi XE5 for Android (七)
    Delphi XE5 for Android (五)
    Delphi XE5 for Android (四)
    Delphi XE5 for Android (三)
    Delphi XE5 for Android (二)
  • 原文地址:https://www.cnblogs.com/l2rf/p/5212193.html
Copyright © 2011-2022 走看看