Android.mk example
- The android.mk of libjni_adjustScreenOffse
- Android.mk:
LOCAL_PATH:= $(call my-dir) ---> 获得当前目录
include $(CLEAR_VARS) --> 引入编译变量
LOCAL_SRC_FILES := $(call all-java-files-under, src) ---> 指定源文件
LOCAL_RESOURCE_DIR := tools/brand/res --> 指定res目录, 可以是多个路径
LOCAL_RESOURCE_DIR += $(LOCAL_PATH)/res --> 指定res目录, 可以是多个路径
LOCAL_JNI_SHARED_LIBRARIES := libjni_adjustScreenOffset
LOCAL_JNI_SHARED_LIBRARIES:定义了要包含的so库文件的名字,如果程序没有采用jni,不需要
LOCAL_JNI_SHARED_LIBRARIES := libxxx 这样在编译的时候,NDK自动会把这个libxxx打包进apk; 放在youapk/lib/目录下
LOCAL_PACKAGE_NAME := BcmAdjustScreenOffset -- 必须定义,package的名字,这个名字在脚本中将标识app或package
LOCAL_CERTIFICATE := $(BCM_VENDOR_STB_ROOT)/b/signing/ --> 指定签名使用的KEY的路径
include $(BUILD_PACKAGE) ---> # 编译 APK 文件
- Tree of libjni_adjustScreenOffset
BcmAdjustScreenOffset/
├── AndroidManifest.xml
├── Android.mk
├── jni
│ ├── Android.mk
│ └── jni_adjustScreenOffset.cpp
├── res
│ ├── layout
│ │ └── main.xml
│ └── values
│ └── strings.xml
└── src
└── bcmAdjustScreenOffset
└── android
├── BcmAdjustScreenOffsetActivity.java
└── native_adjustScreenOffset.java
- output
./system/app/BcmAdjustScreenOffset/
├── BcmAdjustScreenOffset.apk
├── lib
│ └── arm
│ └── libjni_adjustScreenOffset.so -> /system/lib/libjni_adjustScreenOffset.so
└── oat
└── arm
└── BcmAdjustScreenOffset.odex
the full OTA signing procedure can be found at: https://source.android.com/devices/tech/ota/sign_builds.html
http://staratsky.iteye.com/blog/1689500
- #编译静态库
- LOCAL_PATH := $(call my-dir)
- include $(CLEAR_VARS)
- LOCAL_MODULE = libhellos
- LOCAL_CFLAGS = $(L_CFLAGS)
- LOCAL_SRC_FILES = hellos.c
- LOCAL_C_INCLUDES = $(INCLUDES)
- LOCAL_SHARED_LIBRARIES := libcutils
- LOCAL_COPY_HEADERS_TO := libhellos
- LOCAL_COPY_HEADERS := hellos.h
- include $(BUILD_STATIC_LIBRARY)
- #编译动态库
- LOCAL_PATH := $(call my-dir)
- include $(CLEAR_VARS)
- LOCAL_MODULE = libhellod
- LOCAL_CFLAGS = $(L_CFLAGS)
- LOCAL_SRC_FILES = hellod.c
- LOCAL_C_INCLUDES = $(INCLUDES)
- LOCAL_SHARED_LIBRARIES := libcutils
- LOCAL_COPY_HEADERS_TO := libhellod
- LOCAL_COPY_HEADERS := hellod.h
- include $(BUILD_SHARED_LIBRARY)
- #使用静态库
- LOCAL_PATH := $(call my-dir)
- include $(CLEAR_VARS)
- LOCAL_MODULE := hellos
- LOCAL_STATIC_LIBRARIES := libhellos
- LOCAL_SHARED_LIBRARIES :=
- LOCAL_LDLIBS += -ldl
- LOCAL_CFLAGS := $(L_CFLAGS)
- LOCAL_SRC_FILES := mains.c
- LOCAL_C_INCLUDES := $(INCLUDES)
- include $(BUILD_EXECUTABLE)
- #使用动态库
- LOCAL_PATH := $(call my-dir)
- include $(CLEAR_VARS)
- LOCAL_MODULE := hellod
- LOCAL_MODULE_TAGS := debug
- LOCAL_SHARED_LIBRARIES := libc libcutils libhellod
- LOCAL_LDLIBS += -ldl
- LOCAL_CFLAGS := $(L_CFLAGS)
- LOCAL_SRC_FILES := maind.c
- LOCAL_C_INCLUDES := $(INCLUDES)
- include $(BUILD_EXECUTABLE)

浙公网安备 33010602011771号