标签:android strong 文件 html cti htm http com 工作 har 代码
原文来自安卓教程网android.662p.com,转载时请注明文章的来源:http://android.662p.com/thread-5245-1-1.html
[概述]
NDK开发中,
最常见的脚本式语言应该就是 GLSL(OpenGL Shading Language) ,
此类语言(一般情况下)不能以单个代码文件形式编写(并不以文件形式直接参与编译), 而是需要先以字符串形式完成编码, 然后通过开发语言接口的调用来完成工作.
就这种形式的编码, 个人是挺不喜欢的, 一来不易书写, 容易笔误,
二来不易阅读.
下面以GLSL为例.
[常规方法]
余不赘言,
直接上代码
// 定义GLSL
const char *demo_glsl
=
"// TODO
定义变量1"
"// TODO
定义变量2"
"// TODO
定义变量3"
"void main(void)
{"
" // TODO
进行运算"
"}";
// TODO 将 GLSL 输入到 GL
的接口
[改进方法]
[ol]
新建.glsl文件,
并以C/C++形式编辑, 勿需以字符串形式编辑,
见Snippet-1;
编辑Android.mk,
主要是通过sh脚本来重新输出.glsl, 并以.glslh作为后缀名,
见Snippet-2;
在主要代码里通过include来调用.glslh,
见Snippet-3.
[/ol]
// Snippet-1
//
demo.glsl
// TODO 定义变量1
// TODO
定义变量2
// TODO 定义变量3
void main(void)
{
// TODO 进行运算
} //
Snippet-2
// Android.mk
LOCAL_PATH := $(call
my-dir)
include $(CLEAR_VARS)
$(shell
$(LOCAL_PATH)/prebuild.sh demo.glsl $(LOCAL_PATH)
$(LOCAL_PATH))
//--- END OF Android.mk ---
//
prebuild.sh
#!/bin/sh
mkdir -p
$3
cat $2/$1 | sed -e ‘s|^.*$|"&\\n"|‘ >
$3/$1h
//--- END OF prebuild.sh --- //
Snippet-3
// demo.cpp
//
定义GLSL
const char demo_glsl={
#include
"demo.glslh"
};
[最后的话]
从本质上来讲,
两种方法其实是一致的, 只不过是修改了输入的形式. 记得经典Objective-C(橙子)的那本书有一章就讲过: 通过间接的方法, 任何事情都可以完成.
或许会有人觉得这是多此一举, 但我们从另外一个角度来看的话, 或许是一件提高工作效率的事情, 尤其是在当下辅助工具颇丰的环境下, 比如语法高亮标记工具.
当然这种方法不只限于GLSL, 只要你想.
详细说明:http://android.662p.com/thread-5245-1-1.html
NDK中, 如何提高脚本式语言的可读性,码迷,mamicode.com
标签:android strong 文件 html cti htm http com 工作 har 代码
原文地址:http://www.cnblogs.com/luenmicro/p/3700969.html