Android.mk 제3자 jar 패키지 와 so 라 이브 러 리 파일 을 도입 하 는 방법

3109 단어 Android.mk제3자
SystemUI 의 경우 SystemUI 에 제3자 jar 패키지 와 so 라 이브 러 리 를 도입 해 야 한다 면 다음 과 같이 처리 할 수 있 습 니 다.
우선 frameworks\base\packages\SystemUI 에서 libs 디 렉 터 리 를 새로 만 듭 니 다.
 
libs 디 렉 터 리 에 도입 할 jar 패 키 지 를 배치 합 니 다.그리고 Android.mk 파일 을 수정 합 니 다.

그 러 니까 jar 가방 도입 은 주로 LOCAL 에 의존 한 다 는 거 죠.PREBUILT_STATIC_JAVA_LIBRARIES 와 LOCALSTATIC_JAVA_LIBRARIES。다음은 완전한 Android.mk 를 붙 여 복사 하기 편 합 니 다.

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(call all-java-files-under, src) \
 src/com/android/systemui/EventLogTags.logtags
LOCAL_STATIC_JAVA_LIBRARIES := aaa Keyguard android-support-v7-palette android-support-v4
LOCAL_JAVA_LIBRARIES := telephony-common
LOCAL_JAVA_LIBRARIES += JSRConfig

LOCAL_SHARED_LIBRARIES := libtest1 \
 libtest2

LOCAL_PACKAGE_NAME := SystemUI
LOCAL_CERTIFICATE := platform
LOCAL_PRIVILEGED_MODULE := true
LOCAL_PROGUARD_FLAG_FILES := proguard.flags
LOCAL_RESOURCE_DIR := \
 frameworks/base/packages/Keyguard/res \
 $(LOCAL_PATH)/res
LOCAL_AAPT_FLAGS := --auto-add-overlay --extra-packages com.android.keyguard

include $(BUILD_PACKAGE)
include $(CLEAR_VARS)
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := \
 aaa:libs/aaa.jar
include $(BUILD_MULTI_PREBUILT)
include $(call all-makefiles-under,$(LOCAL_PATH))
도입 할 jar 패 키 지 를 SystemUI 의 libs 디 렉 터 리 에 놓 았 고,Android.mk 를 수정 하여 도입 을 완 료 했 습 니 다.그럼 소 고 는 어 떡 하지?위 에 어디 다 놓 으 라 고 안 했 는데?
Android 에 서 는 시스템 급 app 을 so 라 이브 러 리 에 사용 한 후 system/lib 디 렉 터 리 로 내 려 가 찾기 때문에 so 라 이브 러 리 를 system/lib 디 렉 터 리 에 두 고 Android.mk 에서 LOCALSHARED_LIBRARIES 변 수 는 인용 을 완료 하면 됩 니 다.우 리 는 adb 를 통 해 so 라 이브 러 리 push 를 장치 의 system/lib 디 렉 터 리 에 복사 할 수 있 습 니 다.그러나 안 드 로 이 드 시스템 컴 파일 과정 에서 so 라 이브 러 리 를 system/lib 디 렉 터 리 에 복사 하려 면 어떻게 해 야 합 니까?이것 은 Android 컴 파일 시스템 의 PRODUCT 를 사 용 했 습 니 다.COPY_FILES 변수.
예 를 들 어 device\xx\xxx 디 렉 터 리 다음 제품 이름 의.mk 파일 을 열 고 PRODUCT 를 검색 합 니 다.COPY_FILES 변 수 는 이 변수의 용례 를 많이 볼 수 있 습 니 다.예 를 들 어:

# Audio configuration file
PRODUCT_COPY_FILES += \
 device/xx/xxx/audio_policy.conf:system/etc/audio_policy.conf \
 device/xx/xxx/audio_effects.conf:system/vendor/etc/audio_effects.conf \
 device/xx/xxx/mixer_paths_qrd_skuh.xml:system/etc/mixer_paths_qrd_skuh.xml \
 。。。
PRODUCT_COPY_FILES 의 모든 값 은":"로 구분 되 고 앞 은 소스 이 며 뒤 는 목적 입 니 다.예 를 들 어 devices/xx/xxx 디 렉 터 리 에 lib 디 렉 터 리 를 새로 만 들 고 libtest 1.so 와 libtest 2.so 를 lib 디 렉 터 리 에 놓 은 다음 에 PRODUCTCOPY_FILES 는 다음 과 같은 값 을 부여 합 니 다.즉,시스템 이 컴 파일 할 때 그들의 복사 본 을 완성 합 니 다.

#so library
PRODUCT_COPY_FILES += \
 device/xx/xxx/libs/libtest1.so:system/lib/libtest1.so \
 device/xx/xxx/libs/libtest2.so:system/lib/libtest2.so
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기