Android编译环境,Build系统的学习总结

Android Build系统的介绍


Android build系统主要用于对手机系统二进制文件的编译,APK应用的编译,同时生成手机系统的镜像以及各种配置文件,同时,还要维护各个模块间的依赖关系,确保某个模块的修改能引起依赖的文件重新编译.
Android的Build系统可以分成三个大的模块:
       1.位于build/core目录下的文件,是Android Build系统的框架和核心.
       2.位于device目录下的文件,存放的是具体产品的配置文件.
       3.各个模块的编译文件:Android.mk,位于模块的源文件目录下.
通常,使用下面的命令来编译Android系统:

#source  build/envsetup.sh 
#lunch
#make
其中,第二条命令会打印出所有编译产品的选项.


编译环境的建立


执行Android系统编译,必须先执行build/envsetup脚本,这个脚本会建立Android的编译环境.在envsetup.sh文件中,定义了很多shell命令,这些shell命令在执行完envsetup脚本后可以直接使用.如下图:
function ggrep()
{
    find . -name .repo -prune -o -name .git -prune -o -name out -prune -o -type f -name "*\.gradle" -print0 | xargs -0 grep --color -n "$@"
}

function jgrep()
{
    find . -name .repo -prune -o -name .git -prune -o -name out -prune -o -type f -name "*\.java" -print0 | xargs -0 grep --color -n "$@"
}

function cgrep()
{
    find . -name .repo -prune -o -name .git -prune -o -name out -prune -o -type f \( -name '*.c' -o -name '*.cc' -o -name '*.cpp' -o -name '*.h' \) -print0 | xargs -0 grep --color -n "$@"
}

function resgrep()
{
    for dir in `find . -name .repo -prune -o -name .git -prune -o -name out -prune -o -name res -type d`; do find $dir -type f -name '*\.xml' -print0 | xargs -0 grep --color -n "$@"; done;
}


Android常用的编译命令:

croot:   快速切换到源码的根目录

m:        编译整个源码,但不用将当前目录切换到源码根目录

mm:     编译当前目录下的所有模块,但是不编译他们的依赖模块

mmm:  编译指定目录下的所有模块,但是不编译他们的依赖模块.

mma:   编译当前目录下的所有模块,同时编译他们的依赖模块

mmma:编译指定目录下的所有模块,同时编译他们的依赖模块.


cgrep:     对系统所有的c/c++文件执行grep命令

ggrep:     对系统所有的grradle文件执行grep命令

jgrep:      对系统所有的Java文件执行grep命令

resgrep:  对系统所有的res目录下的文件执行grep命令

sgrep:     对系统所有的源文件执行grep命令

godir:      根据后面的参数在整个源码目录查找,然后切换到该目录


常用命令


实时 adb logcat -s CameraActivity
     logcat | grep CameraActivity
     logcat | grep Exception  GestureShot VoiceCapture
     AndroidRuntime
保存到文件:adb logcat -v time >d:log2.log

Linux查找字符串:grep -rn "TextAppearance.Material.Title" ./
查找文件:find . -name CellConnMgr.java

adb remount
查看内存使用情况:adb shell dumpsys meminfo com.android.gallery3d


通过adb命令录制屏幕视频:
(1). adb shell screenrecord /sdcard/sp.mp4 //设置录屏后得到的mp4文件路径或者手动设置录像的参数如下 
adb shell screenrecord --bit-rate 8000000 /sdcard/yourfilename.mp4 
(2). CTRL+C中止录屏 
(3). adb pull /sdcard/yourfilename.mp4 e:/localpath //从SD卡取回录制好的视频

你可能感兴趣的:(Android编译环境,Build系统的学习总结)