奔跑的肥猪

导航

android shell脚本使用

android 底层驱动实际linux, linux中大量使用了shell。那 shell到底是什么东西呢?个人理解相当于windows中的

cmd,但是shell很强大,如果你能熟练使用shell,在android开发中如虎添翼。

下面就android常用的shell进行一下说明:

1. cd (change directory) 

如: cd / 跳转到根目录 cd ~ 跳转到用户所在的目录

2. ls (list)

显示目录结构

3. chmod 777 path

在开发过程中,如果发现文件不能读写,首先应该想到是否给user权限,可以通过该命令试试看

改变目录属性,如果目录下面还有子目录,加上-R

4. chown 该变目录所有者

如果目录还有子目录,加上-R

5. rm 目录

如果是文件加上-f

如果是目录加上-r

6. find

找文件,如果找到R.java文件,然后删除它

find . -name R.java|args rm -rf

find . -name *.svn|xargs rm -rf
find . -name *.class|xargs rm -rf

7. 替换,如某个文件中根据某个模式替换某行

如下命令就是找到FPTitlebar.java这个java文件,找不到//  pm.shutDown();,用pm.shutDown();替换之。

find . -name FPTitlebar.java -exec sed -i 's\//  pm.shutDown();\ pm.shutDown();\' {} \;

比较难的如下所示:

find . -name *.java -exec sed -i 's\KeyEvent.KEYCODE_2\KeyEvent.KEYCODE_CAMERA \g ' {} \;
find . -name *.java -exec sed -i 's\KeyEvent.KEYCODE_1\KeyEvent.KEYCODE_CALL \g ' {} \;

找到所有的java文件,用KeyEvent.KEYCODE_CAMERA替换KeyEvent.KEYCODE_2

8. 编译android源码时实际也是执行shell命令:

//执行build 目录下envsetup.sh命令

. build/envsetup.sh

//弹出选择框,分别选择第一个,第一个,第五个,第三个

choosecombo 1 1 5 3

//设置环境变量

export ANDROID_JAVA_HOME=$JAVA_HOME

//执行update命令

make update-api

//起4 个线程同时编译

make -j 4

9. 如果你使用了第三so包,需要在android编译,直接在mk文件中添加如下设置即可:

如下所示:

1. 声明library名称

###############################
LOCAL_STATIC_JAVA_LIBRARIES := xstream
###############################

2. 加入引入的库文件

###############################
include $(CLEAR_VARS)
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := xstream:xstream-1.3.1.jar
include $(BUILD_MULTI_PREBUILT)
###############################

posted on 2011-07-13 15:39  布兜兜  阅读(3902)  评论(0编辑  收藏  举报