android makefile批处理文件夹的资源
来源:互联网 发布:深圳市橙子网络 编辑:程序博客网 时间:2024/06/05 11:55
在android开发中,我们需要将某个文件夹的资源预置到system中或设备中的某个文件夹中,如果资源文件比较少,我们可以使用android的PRODUCT_COPY_FILES来处理。如果资源文件比较多,怎么办?
这时候可以使用foreach 函数来处理。 foreach的介绍原文出处http://blog.csdn.net/cjsycyl/article/details/8064871
foreach 函数和别的函数非常的不一样。因为这个函数是用来做循环用的,Makefile中的foreach函数几乎是仿照于Unix标准Shell (/bin/sh)中的for语句,或是C-Shell(/bin/csh)中的foreach语句而构建的。它的语法是:
$(foreach <var>,<list>,<text>)
这个函数的意思是,把参数<list>;中的单词逐一取出放到参数<var>;所指定的变量中,然后再执行< text>;所包含的表达式。每一次<text>;会返回一个字符串,循环过程中,<text>;的所返回的每个字符串会 以空格分隔,最后当整个循环结束时,<text>;所返回的每个字符串所组成的整个字符串(以空格分隔)将会是foreach函数的返回值。
所以,<var>;最好是一个变量名,<list>;可以是一个表达式,而<text>;中一般会使用<var>;这个参数来依次枚举<list>;中的单词。举个例子:
names := a b c d
files := $(foreach n,$(names),$(n).o)
上面的例子中,$(name)中的单词会被挨个取出,并存到变量“n”中,“$(n).o”每次根据“$(n)”计算出一个值,这些值以空格分隔,最后作为foreach函数的返回,所以,$(files)的值是“a.o b.o c.o d.o”。
注意,foreach中的<var>;参数是一个临时的局部变量,foreach函数执行完后,参数<var>;的变量将不在作用,其作用域只在foreach函数当中。
因此我们可以编写脚本如下来批处理theme目录下的文件到system/etc/theme目录下。
src_files := $(shell ls $(LOCAL_PATH)/theme )
PRODUCT_COPY_FILES += $(foreach file, $(src_files), \
$(LOCAL_PATH)/source/app/$(file):system/etc/theme/$(file))
注:1 LOCAL_PATH路径需要完善好,避免找不到路径,而导致没有拷贝完;2 以上脚本只能对单个文件夹内的文件,而不能处理文件夹中的文件夹内,因此如果多个文件夹嵌套,可以对每个文件夹路径分别定义,重置src_files,或者用函数来封装foreach。
- android makefile批处理文件夹的资源
- android makefile批处理文件夹的资源
- Android的assets文件夹资源访问
- android assets文件夹资源的访问
- Android assets文件夹资源的访问
- 简单的Makefile文件批处理
- Android资源文件夹及资源文件的详细介绍
- 批处理删除svn的文件夹
- 批处理文件夹里的图片
- 批处理 打开指定的文件夹
- Makefile批处理
- 多个文件夹的makefile
- Android资源目录文件夹介绍
- Android assets文件夹资源访问
- Android资源文件夹命名规则
- Android中资源文件夹res/raw和assets的使用
- Android中资源文件夹res/raw和assets的使用
- Android中资源文件夹res/raw和assets的使用
- STL---集合的运算
- codevs 1079 回家(最短路)
- Android平台AES对称加密踩过的坑
- vpn入门文章
- 导出excel 文档1
- android makefile批处理文件夹的资源
- 反射获取泛型
- ACO蚁群算法
- BJT与MOS区别
- 零子数组
- Android实现自定义带文字和图片的Button
- eclipse javahl(jni) not available
- 解决NLTK包下载出错问题及NLP环境测试
- ASP.NET 4.0的ClientIDMode属性