android直接找一个文件,部分编译等实用
2011-07-23 15:08
344 查看
从网上看的别人的:
在android的顶层目录里,运行下面的命令:
source build/envsetup.sh
运行命令后,就添加了很多命令到sh解释器,具体命令如下:
-croot: Changes directory to the top ofthe tree.
-m: Makes from the top of the tree.
-mm: Builds all of the modules in thecurrent directory.
-mmm: Builds all of the modules in thesupplied directories.
-cgrep: Greps on all local C/C++ files.
-jgrep: Greps on all local Java files.
-resgrep: Greps on all local res/*.xml files.
-godir: Go to the directory containing afile.
其中命令croot是改变到顶层目录;m是编译源码树;mm是编译当前目录下所有模块;
mmm是编译所有满足条件编译的模块;cgrep是查找本地所有C/C++文件;jgrep是查找本地所有java文件;resgrep是查找本地所有资源文件res/*.xml;godir是跳到包括这个文件的目录。
可以用mm部分编译
到你该动代码的那个目录下面mm即可。这样就是部分编译。。。
可以用godir找到这个文件所在的位置:
例如:
知道文件的名字为PhoneWindowManager.java
开始 :
1、去根目录
srx@srx-desktop:~$ cd master/
2、
srx@srx-desktop:~/master$ source build/envsetup.sh
srx@srx-desktop:~/master$ choosecombo 1 1 4 3
3、
srx@srx-desktop:~/master$ godir PhoneWindow.java
srx@srx-desktop:~/master/frameworks/policies/base/phone/com/android/internal/policy/impl$
用ls就可以查看到了。。。。
在Android Source Code中有envsetup.sh檔案,當執行過此檔案後,可以大幅將build的過程簡單化、自動化
此檔案在src(android source code 位置)/build/中
所以可以執行以下指令
cd /src/build/
. envsetup.sh
可以使用help來檢示有哪些指令可以使用
Invoke ". build/envsetup.sh" from your shell to add the following functions to your environment:
- croot: Changes directory to the top of the tree.
- m: Makes from the top of the tree.
- mm: Builds all of the modules in the current directory.
- mmm: Builds all of the modules in the supplied directories.
- cgrep: Greps on all local C/C++ files.
- hgrep: Greps on all local C/C++ header files.
- jgrep: Greps on all local Java files.
- mkgrep: Greps on all local make files.
- rcgrep: Greps on all local .rc files.
- resgrep: Greps on all local res/*.xml files.
- shgrep: Greps on all local .sh files.
- godir: Go to the directory containing a file.
其中對模組的編譯有輔助說明的是tapas、m、mm、mmm這幾個指令
其中mmm后面要跟模組的根目錄,不是所有的目錄下都有子模組,那些含有Android.mk檔案目錄才是模組的根目錄,模組名可以從Android.mk的LOCAL_MODULE或者LOCAL_PACKAGE_NAME變數中得到。
單獨編譯某模組,需要在mmm后面指定模組路徑,例如編譯external 中的jpeg
root@ubuntu:/home/android/src# mmm external/jpeg/
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=2.1-update1
TARGET_PRODUCT=generic
TARGET_BUILD_VARIANT=eng
TARGET_SIMULATOR=
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=ECLAIR
============================================
make: Entering directory `/home/android/src'
Target buildinfo: out/target/product/generic/root/default.prop
Target buildinfo: out/target/product/generic/system/build.prop
Copy: out/target/product/generic/system/etc/apns-conf.xml
make: Leaving directory `/home/android/src'
root@ubuntu:/home/android/src#
或者可用 mm 再欲編譯的模組目錄下執行
root@ubuntu:/home/android/src/external/jpeg# mm
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=2.1-update1
TARGET_PRODUCT=generic
TARGET_BUILD_VARIANT=eng
TARGET_SIMULATOR=false
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=ECLAIR
============================================
make: Entering directory `/home/android/src'
Copy: out/target/product/generic/system/etc/apns-conf.xml
make: Leaving directory `/home/android/src'
root@ubuntu:/home/android/src/external/jpeg#
或者可用 m 編譯全部的模組
root@ubuntu:/home/android/src# m
你也可以在src目錄下直接執行make module name:
打開看 ./external/jpeg/Android.mk
看到裡面模組名稱為 libjpeg
LOCAL_MODULE:= libjpeg
這樣你就可以直接打模組名稱編譯
cd ~/android/src
make libjpeg
也可以在登入時自動執行此 script,編輯 ~/.bashrc 或其他 shell 的 rc 檔,加入此 script 即可
# invoke android envsetup.sh
source ~/android/build/envsetup.sh
在android的顶层目录里,运行下面的命令:
source build/envsetup.sh
运行命令后,就添加了很多命令到sh解释器,具体命令如下:
-croot: Changes directory to the top ofthe tree.
-m: Makes from the top of the tree.
-mm: Builds all of the modules in thecurrent directory.
-mmm: Builds all of the modules in thesupplied directories.
-cgrep: Greps on all local C/C++ files.
-jgrep: Greps on all local Java files.
-resgrep: Greps on all local res/*.xml files.
-godir: Go to the directory containing afile.
其中命令croot是改变到顶层目录;m是编译源码树;mm是编译当前目录下所有模块;
mmm是编译所有满足条件编译的模块;cgrep是查找本地所有C/C++文件;jgrep是查找本地所有java文件;resgrep是查找本地所有资源文件res/*.xml;godir是跳到包括这个文件的目录。
可以用mm部分编译
到你该动代码的那个目录下面mm即可。这样就是部分编译。。。
可以用godir找到这个文件所在的位置:
例如:
知道文件的名字为PhoneWindowManager.java
开始 :
1、去根目录
srx@srx-desktop:~$ cd master/
2、
srx@srx-desktop:~/master$ source build/envsetup.sh
srx@srx-desktop:~/master$ choosecombo 1 1 4 3
3、
srx@srx-desktop:~/master$ godir PhoneWindow.java
srx@srx-desktop:~/master/frameworks/policies/base/phone/com/android/internal/policy/impl$
用ls就可以查看到了。。。。
在Android Source Code中有envsetup.sh檔案,當執行過此檔案後,可以大幅將build的過程簡單化、自動化
此檔案在src(android source code 位置)/build/中
所以可以執行以下指令
cd /src/build/
. envsetup.sh
可以使用help來檢示有哪些指令可以使用
Invoke ". build/envsetup.sh" from your shell to add the following functions to your environment:
- croot: Changes directory to the top of the tree.
- m: Makes from the top of the tree.
- mm: Builds all of the modules in the current directory.
- mmm: Builds all of the modules in the supplied directories.
- cgrep: Greps on all local C/C++ files.
- hgrep: Greps on all local C/C++ header files.
- jgrep: Greps on all local Java files.
- mkgrep: Greps on all local make files.
- rcgrep: Greps on all local .rc files.
- resgrep: Greps on all local res/*.xml files.
- shgrep: Greps on all local .sh files.
- godir: Go to the directory containing a file.
其中對模組的編譯有輔助說明的是tapas、m、mm、mmm這幾個指令
其中mmm后面要跟模組的根目錄,不是所有的目錄下都有子模組,那些含有Android.mk檔案目錄才是模組的根目錄,模組名可以從Android.mk的LOCAL_MODULE或者LOCAL_PACKAGE_NAME變數中得到。
單獨編譯某模組,需要在mmm后面指定模組路徑,例如編譯external 中的jpeg
root@ubuntu:/home/android/src# mmm external/jpeg/
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=2.1-update1
TARGET_PRODUCT=generic
TARGET_BUILD_VARIANT=eng
TARGET_SIMULATOR=
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=ECLAIR
============================================
make: Entering directory `/home/android/src'
Target buildinfo: out/target/product/generic/root/default.prop
Target buildinfo: out/target/product/generic/system/build.prop
Copy: out/target/product/generic/system/etc/apns-conf.xml
make: Leaving directory `/home/android/src'
root@ubuntu:/home/android/src#
或者可用 mm 再欲編譯的模組目錄下執行
root@ubuntu:/home/android/src/external/jpeg# mm
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=2.1-update1
TARGET_PRODUCT=generic
TARGET_BUILD_VARIANT=eng
TARGET_SIMULATOR=false
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=ECLAIR
============================================
make: Entering directory `/home/android/src'
Copy: out/target/product/generic/system/etc/apns-conf.xml
make: Leaving directory `/home/android/src'
root@ubuntu:/home/android/src/external/jpeg#
或者可用 m 編譯全部的模組
root@ubuntu:/home/android/src# m
你也可以在src目錄下直接執行make module name:
打開看 ./external/jpeg/Android.mk
看到裡面模組名稱為 libjpeg
LOCAL_MODULE:= libjpeg
這樣你就可以直接打模組名稱編譯
cd ~/android/src
make libjpeg
也可以在登入時自動執行此 script,編輯 ~/.bashrc 或其他 shell 的 rc 檔,加入此 script 即可
# invoke android envsetup.sh
source ~/android/build/envsetup.sh
相关文章推荐
- android直接找一个文件,部分编译等实用
- [一问一答][Android]如何反编译一个APK文件
- Android.mk文件语法详述 1. 概述 Android.mk文件是用来描述build system(编译系统)的,更准确的说:该文件是一个微型的GNU Makefile片段,将
- 一步一步写一个简单通用的makefile(四)--写一个通用的makefile编译android可执行文件
- 编译libfdk-aac 库,使用根目录下的android.mk直接包含所有子目录下的android.mk文件
- freetype 在android编译时上的一个makefile文件
- android编译时生成了一个 main.out.xml文件,无法编译的解决办法
- 一个使用FFmpeg库读取3gp视频的例子-Android中使用FFmpeg媒体库(三).so文件编译过程问题的解决
- 1.建立一个MFC Application工程,编译好的exe文件在其他的电脑直接运行而不需要安装任何其他的package
- 曾经在linux中用交叉编译工具编了一个可执行文件在android系统的板子上跑,无法执行
- freetype 在android编译时上的一个makefile文件
- android4.0.3在hardware文件下添加一个可以编译为执行文件的方法
- 002_009 Python 从Zip中读取数据 直接检查一个zip格式的归档文件部分或所有文件而且不用解压
- NAntGUI 刚刚写了一个生成 NAnt .build 编译文件的小工具。刚刚写完了总体部分,先给大家看看界面 (二)
- 一招一个文件解决ndk编译文件Android.mk配置的所有问题
- 2.建立一个Win32 Console Application工程,编译好的exe文件在其他的电脑直接运行而不需要安装任何其他的package.
- NAntGUI 刚刚写了一个生成 NAnt .build 编译文件的小工具。刚刚写完了总体部分,先给大家看看界面(一)
- Android编译系统中头文件搜索路径顺序的一个问题
- Cocos-X创建JS工程,编译Android .apk包,加载nanolink.so文件,创建一个实时对战游戏
- android, 删除SD卡音乐文件。通过getContentResolver读取音乐文件,可以获取到一个完整的路径,直接new File(这括号写获取的路径).delete();