Android 脚本操作

一、实现 APK 拷贝功能的mk文件操作

###########################################################
## Find all of the apk files under the named directories.
## Meant to be used like:
##    SRC_FILES := $(call all-apk-files-under,src tests)
###########################################################
define all-apk-files-under
$(patsubst ./%,%, \
  $(shell cd $(LOCAL_PATH)/$(1) ; \
          find ./ -maxdepth 1  -name "*.apk" -and -not -name ".*") \
 )
endef

#########################################################
######################## add apk ########################
#########################################################
COPY_APK_TARGET := $(call all-apk-files-under,apk)
PRODUCT_COPY_FILES += $(foreach apkName, $(COPY_APK_TARGET), \
	$(addprefix $(LOCAL_PATH)/apk/, $(apkName)):$(addprefix system/app/, $(apkName)))

   首先是定义 all-apk-files-under函数,进入到第一个参数$(1)路径下,使用find命令进行查找到所有APK文件,利用foreach提取出每个文件名,拷贝到 system/app目录下

二、shell脚本选择编译不同版本的固件

#! /bin/bash 
echo  "请选择编译的版本:" 
echo -e "1.   "A" 
echo -e "2.   "B" 
echo -e "3.   退出"

echo -n "选择版本(1,2,3):" 
read WHO 
case $WHO in 
    1)
	echo -e "A --- 拷贝对应目录到device下  \n"
		rm -f ./device/amlogic/f16ref/apk/*
		cp ./device/amlogic/A/apk/* 	./device/amlogic/f16ref/apk/
		cp ./device/amlogic/A/ui/*	./device/amlogic/f16ref/
    ;;
    2)
	echo -e "B --- 拷贝对应目录到device下  \n"
		rm -f ./device/amlogic/f16ref/apk/*
		cp ./device/amlogic/B/apk/* 	./device/amlogic/f16ref/apk/
		cp ./device/amlogic/B/ui/*	./device/amlogic/f16ref/
    ;;

    *)
	echo "退出"
        exit 
    ;;
esac

echo  -e "************** 拷贝结束,开始编译 ***************\n" 
. build/envsetup.sh
lunch 19
make -j4
echo  "************** 编译结束 ****************\n"

三、wildcard、notdir、patsubst

1、wildcard : 扩展通配符

2、notdir:去除路径

3、patsubst :替换通配符

用法参考:http://blog.sina.com.cn/s/blog_50dcb97b0100zj0j.html

apk

相关推荐