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:

  • 相关阅读:
    捷微商城小程序上线啦~
    JEECG 新版在线文档WIKI正式发布
    https 详解
    css 3 新特性
    js 基础(一)
    BFC
    .Net、C# 汉字转拼音,简体繁体转换方法
    丰富“WinForms” 的一个别样"项目"(学生管理)
    学生管理系统1
    学生管理系统
  • 原文地址:https://www.cnblogs.com/l2rf/p/5212193.html
Copyright © 2011-2022 走看看