bs-android-tip

logcat 过滤多个关键字

adb logcat | grep -e "exlight@" -e"yubang"

makefile get all so from apk then copy to out directory

LOCAL_PATH         := $(call my-dir)
LOCAL_PATH_SECOND         := $(LOCAL_PATH)

include $(CLEAR_VARS)
LOCAL_MODULE        := BaiduIME
$(shell rm -rf $(LOCAL_PATH_SECOND)/lib/)
$(shell mkdir -p $(LOCAL_PATH_SECOND)/lib/)
$(shell mkdir -p $(LOCAL_PATH_SECOND)/lib/arm/ && $(shell unzip -j $(LOCAL_PATH_SECOND)/$(LOCAL_MODULE).apk "lib/armeabi-v7a/*.so" -d $(LOCAL_PATH_SECOND)/lib/arm/))

$(shell mkdir -p $(PRODUCT_OUT)/system/priv-app/BaiduIME/lib/arm)
$(shell cp -rf $(LOCAL_PATH)/lib/arm/*.so $(PRODUCT_OUT)/system/priv-app/BaiduIME/lib/arm/)
$(shell rm -rf $(LOCAL_PATH_SECOND)/lib/)

LOCAL_MODULE_TAGS   := optional
LOCAL_MODULE_CLASS  := APPS
LOCAL_SRC_FILES     := $(LOCAL_MODULE).apk
LOCAL_CERTIFICATE := PRESIGNED
LOCAL_PRIVILEGED_MODULE := true
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
include $(BUILD_PREBUILT)

LOCAL_PRIVILEGED_MODULE 如果不设置或者设置为false,安装位置为system/app; 如果设置为true,安装位置为system/priv-app。
LOCAL_CERTIFICATE := PRESIGNED 表示 这个apk已经签过名了,系统不需要再次 签名
LOCAL_MODULE_CLASS 指定文件类型,apk文件用APPS, 并且 会检查 是否是apk文件,动态库so文件用SHARED_LIBRARIES ,bin文件用EXECUTABLES,其他文件 用ETC
LOCAL_MODULE_TAGS :=user eng tests optional
	user: 指该模块只在user版本下才编译
	eng: 指该模块只在eng版本下才编译
	tests: 指该模块只在tests版本下才编译
	optional:指该模块在所有版本下都编译
LOCAL_MODULE_PATH := $(TARGET_OUT)/presetapp  编译打包后,指定模块最后的目标存放路径
	TARGET_ROOT_OUT:表示根文件系统。
	TARGET_OUT:表示system文件系统。
	TARGET_OUT_DATA:表示data文件系统。

若需要apk作为32bit的apk运行,则需要在Android.mk中定义 
LOCAL_MULTILIB :=32

每个编译模块都是以include $(CLEAR_VARS)开始,以include $(BUILD_XXX)结束。

makefile里的常用宏定义

out/target/product/xxx的宏即为:$(PRODUCT_OUT)
out/target/product/xxx/system的宏即为:$(TARGET_OUT)
out/target/product/xxx/root的宏即为:$(TARGET_ROOT_OUT)

git 一键删除新加的文件

git clean -df

userdebug版本删掉此应用

ifneq ($(TARGET_BUILD_VARIANT),userdebug)
#Add for remove SnapdragonCamera
PRODUCT_REMOVED_MODULES += $(BSUI_PRODUCT_OUT)/system/priv-app/SnapdragonCamera/SnapdragonCamera.apk \
                           $(BSUI_PRODUCT_OUT)/system/priv-app/SnapdragonCamera/oat/arm64/SnapdragonCamera.odex \
                           $(BSUI_PRODUCT_OUT)/system/priv-app/SnapdragonCamera/oat/arm64/SnapdragonCamera.vdex

默认给予NotificationManagerListener权限

       android.app.NotificationManager notificationManager = (android.app.NotificationManager)mContext.getSystemService(Context.NOTIFICATION_SERVICE);
        ComponentName mComponentName = new ComponentName("com.blackshark.exlight","com.blackshark.exlight.system.eventhub.NotificationEventHub");
        notificationManager.setNotificationListenerAccessGranted(mComponentName, true);

列出目录下所有文件 文件夹的大小 并按文件大小照降序排序

 du -s /vendor/presetapp/* | sort -nr

vendor so vts

预置app放在vendor下 vts测试不过 解决方案将so文件打包

你可能感兴趣的:(Android)