Android查漏补缺

(1)android apk编译步骤

①,aapt工具生成.R文件

②,javac编译为字节码

③,dex工具打包为.dex文件

④,aapt工具打包资源未见为.ap文件

⑤,apkbuilder工具打包为apk文件

⑥,keytool密钥工具创建密钥

⑦,jarsigner签名工具进行签名

⑧,zipalign对齐工具对apk进行优化

(2) android.mk四种编译目标

①,apk

android.mk

#设置当前路径
LOCAL_PATH := $(call my-dir)
#清除除LOCAL_PATH外的所有LOCAL_XX变量
include $(CLEAR_VARS)

#设置包名,表示编译的是apk
LOCAL_PACKAGE_NAME := SxxiaoVendor

#指定源文件
LOCAL_SRC_FILES := $(call all-java-files-under, src)

#指定编译生成的目标文件格式,未设置会报:unknown target问题,可选
##PACKAGE(APK),SHARED_LIBRARY(.so),STATIC_LIBRARY(.a),EXECUTABLE(EXE),JAVA_LIBRARY(.jar(android dex)),STATIC_JAVA_LIBRARY(jar)
include $(BUILD_PACKAGE)

#指定全编是依赖的镜像
#ALL_DEFAULT_INSTALLED_MODULES += $(LOCAL_PACKAGE_NAME)

#选择platform(核心进程,进程UID为system)来进行签名,build/target/product/security下有四组默认签名
#还可选testkey(普通apk,默认),shared(该apk需要和home/contacts共享数据),media(该apk是/media/download中的一环)
#LOCAL_CERTIFICATE := platform

#该模块在所有版本下才编译,还可选user,eng,tests
#LOCAL_MODULE_TAGS := optional

#使用后,会使用sdk的hide的api来编译,如果
#LOCAL_PRIVATE_PLATFORM_APIS := true


②,exe

#设置当前路径
LOCAL_PATH := $(call my-dir)
#清除除LOCAL_PATH外的所有LOCAL_XX变量
include $(CLEAR_VARS)

#设置包名,表示编译的是apk
LOCAL_MODULE := SxxiaoVendor

#指定源文件
LOCAL_SRC_FILES := $(call all-c-files-under,src)

#指定编译生成的目标文件格式,未设置会报:unknown target问题,可选
#PACKAGE(APK),SHARED_LIBRARY(.so),STATIC_LIBRARY(.a),EXECUTABLE(EXE),JAVA_LIBRARY(.jar(android dex)),STATIC_JAVA_LIBRARY(jar)
include $(BUILD_EXECUTABLE)



③,so

#设置当前路径
LOCAL_PATH := $(call my-dir)
#清除除LOCAL_PATH外的所有LOCAL_XX变量
include $(CLEAR_VARS)

#设置包名,表示编译的是apk
LOCAL_MODULE := SxxiaoVendor

#指定源文件
LOCAL_SRC_FILES := $(call all-c-files-under,src)

#指定编译生成的目标文件格式,未设置会报:unknown target问题,可选
#PACKAGE(APK),SHARED_LIBRARY(.so),STATIC_LIBRARY(.a),EXECUTABLE(EXE),JAVA_LIBRARY(.jar(android dex)),STATIC_JAVA_LIBRARY(jar)
include $(BUILD_SHARED_LIBRARY)



④,jar

#设置当前路径
LOCAL_PATH := $(call my-dir)
#清除除LOCAL_PATH外的所有LOCAL_XX变量
include $(CLEAR_VARS)

#设置包名,表示编译的是apk
LOCAL_MODULE := SxxiaoVendor

#指定源文件
LOCAL_SRC_FILES := $(call all-java-files-under,src)

#指定编译生成的目标文件格式,未设置会报:unknown target问题,可选
#PACKAGE(APK),SHARED_LIBRARY(.so),STATIC_LIBRARY(.a),EXECUTABLE(EXE),JAVA_LIBRARY(.jar(android dex)),STATIC_JAVA_LIBRARY(jar)
include $(BUILD_JAVA_LIBRARY)



你可能感兴趣的:(android应用开发,Android)