昨日下午,老大交给一个任务,就是对android编译出来的build/host/linux-x86/bin下面的各种可执行程序进行一个了解
于是我就花了一天的时间来搜集信息,大致有两个文件
一个是比较常用的,一个是比较齐全的,当然有部分没找到(例如test_开头的部分,大部分都是从源码里面弄出来的),也没有对其进行了解
所以有错误请谅解,由于CSDN界面比较小,可能会出现显示不全的问题,如果看不全的可以直接下载文件,文件更全
如果发现错误以及知道部分没有填写的请留言,以便我更新,谢谢
转载请指明出处:草帽的后花园
文件1:下载
aapt |
aapt即Android Asset Packaging Tool , 在SDK的platform-tools目录下. 该工具可以查看, 创建, 更新ZIP格式的文档附件(zip, jar, apk). 也可将资源文件编译成二进制文件.尽管你可能没有直接使用过aapt工具, 但是build scripts和IDE插件会使用这个工具打包apk文件构成一个Android 应用程序. aapt工具也支持很多子命令。 aapt l[ist]:列出资源压缩包里的内容。 aapt d[ump]:查看APK包内指定的内容。 aapt p[ackage]:打包生成资源压缩包。 aapt r[emove]:从压缩包中删除指定文件。 aapt a[dd]:向压缩包中添加指定文件。 aapt v[ersion]:打印aapt的版本。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
acp |
acp Android提供的CP檔案複製工具. Android 也提供自己的檔案複製工具acp, 在此僅附上Source Code build/tools/acp 前面的說明,供參考 The GNU/Linux "cp" uses O_LARGEFILE in its open() calls, utimes() instead of utime(), and getxattr()/setxattr() instead of chmod(). These are probably "better", but are non-portable, and not necessary for our purposes. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
adb |
adb的全称为Android Debug Bridge,就是起到调试桥的作用。通过adb我们可以在Eclipse中方便通过DDMS来调试Android程序,说白了就是debug工具。adb的工作方式比较特殊,采用监听Socket TCP 5554等端口的方式让IDE和Qemu通讯,默认情况下adb会daemon相关的网络端口,所以当我们运行Eclipse时adb进程就会自动运行。 adb是android sdk里的一个工具, 用这个工具可以直接操作管理android模拟器或者真实的andriod设备(如G1手机). 它的主要功能有: * 运行设备的shell(命令行) * 管理模拟器或设备的端口映射 * 计算机和设备之间上传/下载文件 * 将本地apk软件安装至模拟器或android设备 ADB是一个 客户端-服务器端 程序, 其中客户端是你用来操作的电脑, 服务器端是android设备. ADB常用的几个命令1. 查看设备 * adb devices 这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示 2. 安装软件 * adb install 这个命令将指定的apk文件安装到设备上 3. 卸载软件 * adb uninstall <软件名> * adb uninstall -k <软件名> 如果加 -k 参数,为卸载软件但是保留配置和缓存文件. 4. 登录设备shell * adb shell * adb shell 这个命令将登录设备的shell. 后面加 5. 从电脑上发送文件到设备 * adb push <本地路径> <远程路径> 用push命令可以把本机电脑上的文件或者文件夹复制到设备(手机) 6. 从设备上下载文件到电脑 * adb pull <远程路径> <本地路径> 用pull命令可以把设备(手机)上的文件或者文件夹复制到本机电脑 7. 显示帮助信息 * adb help 这个命令将显示帮助信息 删除Android系统Rom自带的软件 Android系统没有卸载Rom自带软件的功能.可能有些同学很想删除废了武功的Youtube,想删除墙那边的Twitter. 加上Android的快捷方式没法修改没法自己排序没法分页. 安装的程序太多就会发现原来找到自己想要的东西很难. 综上所述,我觉得告知各位菜鸟同学如何删除自带的程序是很有必要的一件事情. 1.确定手机root了,取得了root权限才能删除系统文件呀. 2.下载Android_db.rar,解压到%windir/%System32下. 3.手机连接数据线,在电脑上打开cmd,然后输入命令 adb remount adb shell su 执行完成之后,你会看到: * daemon not running. starting it now * * daemon started successfully * 4.接着就是Linux命令行模式了,输入 cd system/app 你会发现没啥变化,然后输入ls回车. 这时候列表显示了system/app里面的所有文件,也就是Rom集成的一些软件了. 5.开始删除吧.比如删除Youtube,他的文件名是Youtube.odex和Youtube.apk 我们要删除这2个文件,敲入以下命令: adb shell rm -f system/app/Youtube.odex adb shell rm -f system/app/Youtube.apk |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
aidl |
AIDL:Android Interface Definition Language,即Android接口描述语言。 Android系统中的进程之间不能共享内存,因此,需要提供一些机制在不同进程之间进行数据通信。 为了使其他的应用程序也可以访问本应用程序提供的服务,Android系统采用了远程过程调用(Remote Procedure Call,RPC)方式来实现。与很多其他的基于RPC的解决方案一样,Android使用一种接口定义语言(Interface Definition Language,IDL)来公开服务的接口。我们知道4个Android应用程序组件中的3个(Activity、Broadcast和Content Provider)都可以进行跨进程访问,另外一个Android应用程序组件Service同样可以。因此,可以将这种可以跨进程访问的服务称为AIDL(Android Interface Definition Language)服务。 建立AIDL服务要比建立普通的服务复杂一些,具体步骤如下: (1)在Eclipse Android工程的Java包目录中建立一个扩展名为aidl的文件。该文件的语法类似于Java代码,但会稍有不同。详细介绍见实例的内容。 (2)如果aidl文件的内容是正确的,ADT会自动生成一个Java接口文件(*.java)。 (3)建立一个服务类(Service的子类)。 (4)实现由aidl文件生成的Java接口。 (5)在AndroidManifest.xml文件中配置AIDL服务,尤其要注意的是, |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
android |
android增量升级工具 http://web.mit.edu/zac/MacData/afs/sipb/project/android/docs/tools/help/android.html
· Create, delete, and view Android Virtual Devices (AVDs). See Managing AVDs from the Command Line. · Create and update Android projects. See Managing Projects from the Command Line. · Update your Android SDK with new platforms, add-ons, and documentation. See Exploring the SDK. If you are using Eclipse, the Note: The documentation of options below is not exhaustive and may be out of date. For the most current list of options, execute Syntaxandroid [global options] action [action options] Global Options
Silent mode: only errors are printed out
Usage help
Verbose mode: errors, warnings and informational messages are printed. AVD actions and options
Project actions and options
Update actions
Updates adb to support the USB devices declared in the SDK add-ons.
Updates the SDK by suggesting new platforms to install if available. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
apicheck |
Apicheck的本质是比较当前生成的api.xml(和frameworks/api/下面的文件相同)。 其执行的命令如下:
即 本次编译生成的out/target/common/obj/PACKAGING/public_api.xml与(视为正确的)frameworks /base/api/8.xml和(视为正确的)frameworks/base/api/current.xml进行比较。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
apkcheck |
/*** * Checks an APK's dependencies against the published API specification. * * We need to read two XML files (spec and APK) and perform some operations * on the elements. The file formats are similar but not identical, so * we distill it down to common elements. * * We may also want to read some additional API lists representing * libraries that would be included with a "uses-library" directive. * * For performance we want to allow processing of multiple APKs so * we don't have to re-parse the spec file each time. */ |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
aprotoc |
Usage: ./aprotoc [OPTION] PROTO_FILES Parse PROTO_FILES and generate output based on the options given: -IPATH, --proto_path=PATH Specify the directory in which to search for imports. May be specified multiple times; directories will be searched in order. If not given, the current working directory is used. --version Show version info and exit. -h, --help Show this text and exit. --encode=MESSAGE_TYPE Read a text-format message of the given type from standard input and write it in binary to standard output. The message type must be defined in PROTO_FILES or their imports. --decode=MESSAGE_TYPE Read a binary message of the given type from standard input and write it in text format to standard output. The message type must be defined in PROTO_FILES or their imports. --decode_raw Read an arbitrary protocol message from standard input and write the raw tag/value pairs in text format to standard output. No PROTO_FILES should be given when using this flag. -oFILE, Writes a FileDescriptorSet (a protocol buffer, --descriptor_set_out=FILE defined in descriptor.proto) containing all of the input files to FILE. --include_imports When using --descriptor_set_out, also include all dependencies of the input files in the set, so that the set is self-contained. --error_format=FORMAT Set the format in which to print errors. FORMAT may be 'gcc' (the default) or 'msvs' (Microsoft Visual Studio format). --plugin=EXECUTABLE Specifies a plugin executable to use. Normally, protoc searches the PATH for plugins, but you may specify additional executables not in the path using this flag. Additionally, EXECUTABLE may be of the form NAME=PATH, in which case the given plugin name is mapped to the given executable even if the executable's own name differs. --cpp_out=OUT_DIR Generate C++ header and source. --java_out=OUT_DIR Generate Java source file. --javamicro_out=OUT_DIR Generate Java source file micro runtime. --python_out=OUT_DIR Generate Python source file. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
atree |
./atree: At least one -f option must be supplied.
Usage: atree OPTIONS
Options: -f FILELIST Specify one or more files containing the list of files to copy. -I INPUTDIR Specify one or more base directories in which to look for the files -o OUTPUTDIR Specify the directory to copy all of the output files to. -l Use hard links instead of copying the files. -m DEPENDENCY Output a make-formatted file containing the list. of files included. It sets the variable ATREE_FILES. -v VAR=VAL Replaces ${VAR} by VAL when reading input files. -d Verbose debug mode.
FILELIST file format: The FILELIST files contain the list of files that will end up in the final OUTPUTDIR. Atree will look for files in the INPUTDIR directories in the order they are specified.
In a FILELIST file, comment lines start with a #. Other lines are of the format:
[rm|strip] DEST SRC [strip] DEST -SRCPATTERN
DEST should be path relative to the output directory. 'rm DEST' removes the destination file and fails if it's missing. 'strip DEST' strips the binary destination file. If SRC is supplied, the file names can be different. SRCPATTERN is a pattern for the filenames. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
bb2sym |
./sdk/emulator/qtools/bb2sym.cpp ./bb2sym: invalid option -- 'h' Usage: ./bb2sym [options] trace_file elf_file -e :kernel exclude all kernel symbols -e :libs exclude all library symbols -e -e -i :kernel include all kernel symbols -i :libs include all library symbols -i -i -l :kernel lump all the kernel symbols together -l :libs lump all the library symbols together -m do not demangle C++ symbols (m for 'mangle') -r |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
bb_dump |
./sdk/emulator/qtools/bb_dump.cpp ./bb_dump: invalid option -- 'h' Usage: ./bb_dump [options] trace_file elf_file -e :kernel exclude all kernel symbols -e :libs exclude all library symbols -e -e -i :kernel include all kernel symbols -i :libs include all library symbols -i -i -l :kernel lump all the kernel symbols together -l :libs lump all the library symbols together -m do not demangle C++ symbols (m for 'mangle') -r |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
bbprof |
./sdk/emulator/qtools/bbprof.cpp |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
bison |
Bison是一种通用目的的分析器生成器。它将LALR(1)上下文无关文法的描述转化成分析该文法的C程序。 一旦你精通Bison,你可以用它生成从简单的桌面计算器到复杂的程序设计语言等等许多语言的分析器。 Bison向上兼容Yacc;所有书写正确的Yacc语法都应该可以不加更改地与Bison一起工作, 熟悉Yacc的人能毫不费力地使用Bison。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
bsdiff |
bsdiff是二进制差分工具 /**- * Copyright 2003,2004 Colin Percival * All rights reserved * * Redistribution and use in source and binary forms, with or without * modification, are permitted providing that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * * Changelog: * 2005-04-26 - Define the header as a C structure, add a CRC32 checksum to * the header, and make all the types 32-bit. * --Benjamin Smedberg * 2009-03-31 - Change to use Streams. Move CRC code to crc.{h,cc} * Changed status to an enum, removed unused status codes. * --Stephen Adams */ |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
bspatch |
bspatch是补丁合成工具 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cfassembler |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
check_stack |
Usage: ./check_stack [options] trace_name elf_file -e :kernel exclude all kernel symbols -e :libs exclude all library symbols -e -e -i :kernel include all kernel symbols -i :libs include all library symbols -i -i -l :kernel lump all the kernel symbols together -l :libs lump all the library symbols together -m do not demangle C++ symbols (m for 'mangle') -r |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
check_trace |
Usage: ./check_trace [options] trace_file elf_file -e :kernel exclude all kernel symbols -e :libs exclude all library symbols -e -e -i :kernel include all kernel symbols -i :libs include all library symbols -i -i -l :kernel lump all the kernel symbols together -l :libs lump all the library symbols together -m do not demangle C++ symbols (m for 'mangle') -r |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
clang |
clang是苹果公司开发的C语言、C++、Objective C、Objective C++语言的轻量级编译器。源代码发布于BSD协议下。 OVERVIEW: clang "gcc-compatible" driver
USAGE: clang [options]
OPTIONS: -### Print the commands to run for this compilation --analyze Run the static analyzer --help Display available options --relocatable-pch Build a relocatable precompiled header -E Only run the preprocessor -ObjC++ Treat source input files as Objective-C++ inputs -ObjC Treat source input files as Objective-C inputs -Qunused-arguments Don't emit warning for unused driver arguments -S Only run preprocess and compilation steps -Wa, -Wl, -Wp, -Xanalyzer -Xassembler -Xclang -Xlinker -Xpreprocessor -arcmt-migrate-emit-errors Emit ARC errors even if the migrator can fix them -arcmt-migrate-report-output Output path for the plist report -c Only run preprocess, compile, and assemble steps -emit-ast Emit Clang AST files for source inputs -emit-llvm Use the LLVM representation for assembler and object files -fcatch-undefined-behavior Generate runtime checks for undefined behavior. -flimit-debug-info Limit debug information produced to reduce size of debug binary -ftrap-function= -o -pipe Use pipes between commands, when possible -print-file-name= -print-libgcc-file-name Print the library path for "libgcc.a" -print-prog-name= -print-search-dirs Print the paths used for finding libraries and programs -rewrite-objc Rewrite Objective-C source to C++ -save-temps Save intermediate compilation results -time Time individual commands -verify Verify output using a verifier. -v Show commands to run and use verbose output -working-directory Resolve file paths relative to the specified directory -x |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
clang-tblgen |
USAGE: clang-tblgen [options]
OPTIONS: -I= -d= Action to perform: -gen-opt-parser-defs - Generate option definitions -gen-opt-parser-impl - Generate option parser implementation -gen-clang-attr-classes - Generate clang attribute clases -gen-clang-attr-impl - Generate clang attribute implementations -gen-clang-attr-list - Generate a clang attribute list -gen-clang-attr-pch-read - Generate clang PCH attribute reader -gen-clang-attr-pch-write - Generate clang PCH attribute writer -gen-clang-attr-spelling-list - Generate a clang attribute spelling list -gen-clang-attr-late-parsed-list - Generate a clang attribute LateParsed list -gen-clang-diags-defs - Generate Clang diagnostics definitions -gen-clang-diag-groups - Generate Clang diagnostic groups -gen-clang-diags-index-name - Generate Clang diagnostic name index -gen-clang-decl-nodes - Generate Clang AST declaration nodes -gen-clang-stmt-nodes - Generate Clang AST statement nodes -gen-clang-sa-checkers - Generate Clang Static Analyzer checkers -gen-arm-neon - Generate arm_neon.h for clang -gen-arm-neon-sema - Generate ARM NEON sema support for clang -gen-arm-neon-test - Generate ARM NEON tests for clang -help - Display available options (-help-hidden for more) -o= -version - Display the version of this program |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cmu2nuance |
// // This converts the data found at http://www.speech.cs.cmu.edu/cgi-bin/cmudict // into the *.ok format used by Nuance. // We use the file c0.6, which corresponds to (v. 0.6). // // to run: make cmu2nuance && ./cmu2nuance // // TODO: look at generation of 'L', ')', and ',' // |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
coverage |
// RUN: %clang_cc1 -analyze -analyzer-checker=core,unix.Malloc -analyzer-store=region -analyzer-max-loop 4 -verify %s ./external/clang/test/Analysis/coverage.c ./sdk/emulator/qtools/coverage.cpp Usage: ./coverage [options] trace_file elf_file -e :kernel exclude all kernel symbols -e :libs exclude all library symbols -e -e -i :kernel include all kernel symbols -i :libs include all library symbols -i -i -l :kernel lump all the kernel symbols together -l :libs lump all the library symbols together -m do not demangle C++ symbols (m for 'mangle') -r |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dalvik |
Dalvik是Google公司自己设计用于Android平台的Java虚拟机。Dalvik虚拟机是Google等厂商合作开发的Android移动设备平台的核心组成部分之一。它可以支持已转换为 .dex(即Dalvik Executable)格式的Java应用程序的运行,.dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。Dalvik 经过优化,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个Dalvik 应用作为一个独立的Linux 进程执行。独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭。 dalvik/vm/dalvik |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dalvikvm |
/* * Command-line invocation of the Dalvik VM. */ dalvik/dalvikvm/Main.cpp 当Android启动时,DalvikVM监视所有的程序(APK文件)和框架,并且为他们创建一个依存关系树。DalvikVM通过这个依存关系树来为每个程序优化代码并存储在Dalvik缓存中。这样,所有程序在运行时都会使用优化过的代码。这就是当你刷一个新的ROM时,有时候第一次启动时间非常非常长的原因。当一个程序(或者框架库)发生变更,DalvikVM将会重新优化代码并且再次将其存在缓存中。在cache/dalvik-cache是存放system上的程序生成的dex文件,而data/dalvik-cache则是存放data/app生成的dex文件。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dasm |
/** * This class represents the public API for Dasm. It has two main methods (readD * and write) and few utility methods. To compile .d file: -create DAsm instance * -call readD() to read and parse content of .d file -call write() to write out * binary representation of .d file. .d file can contain several classes and/or * intefaces declarations. */ |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ddms |
DDMS 的全称是Dalvik Debug Monitor Service,是 Android 开发环境中的Dalvik虚拟机调试监控服务。它为我们提供例如:为测试设备截屏,针对特定的进程查看正在运行的线程以及堆信息、Logcat、广播状态信息、模拟电话呼叫、接收SMS、虚拟地理坐标等等。 DDMS将搭建起IDE与测试终端(Emulator或者connected device)的链接,他们应用各自独立的端口监听调试信息,DDMS可以实时监测到测试终端的连接情况.当有新的测试终端连接后,DDMS将捕捉到终端的ID,并通过adb建立调试器,从而实现发送指令到测试终端的目的; DDMS监听第一个终端APP进程的端口为8600,App进程将分配8601,如果有更多的终端或者更多App进程将按照这个顺序依次类推.DDMS通过8700端口接收所有终端的指令. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dexdeps |
dexdeps -- DEX external dependency dump This tool dumps a list of fields and methods that a DEX file uses but does not define. When combined with a list of public APIs, it can be used to determine whether an APK is accessing fields and calling methods that it shouldn't be. It may also be useful in determining whether an application requires a certain minimum API level to execute. Basic usage: dexdeps [options] For zip archives (including .jar and .apk), dexdeps will look for a "classes.dex" entry. Supported options are: --format={brief,xml} Specifies the output format. "brief" produces one line of output for each field and method. Field and argument types are shown as descriptor strings. "xml" produces a larger output file, readable with an XML browser. Types are shown in a more human-readable form (e.g. "[I" becomes "int[]"). --just-classes Indicates that output should only include a list of classes, as opposed to also listing fields and methods. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dexdump |
/* * The "dexdump" tool is intended to mimic "objdump". When possible, use * similar command-line arguments. * * TODO: rework the "plain" output format to be more regexp-friendly * Differences between XML output and the "current.xml" file: * - classes in same package are not all grouped together; generally speaking * nothing is sorted * - no "deprecated" on fields and methods * - no "value" on fields * - no parameter names * - no generic signatures on parameters, e.g. type="java.lang.Class<?>" * - class shows declared fields and methods; does not show inherited fields */ dalvik/dexdump/DexDump.cpp |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dexlist |
/* List all methods in all concrete classes in one or more DEX files.*/ dalvik/dexlist/DexList.cpp |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dexopt |
/* * Command-line DEX optimization and verification entry point. * * There are three ways to launch this: * (1) From the VM. This takes a dozen args, one of which is a file * descriptor that acts as both input and output. This allows us to * remain ignorant of where the DEX data originally came from. * (2) From installd or another native application. Pass in a file * descriptor for a zip file, a file descriptor for the output, and * a filename for debug messages. Many assumptions are made about * what's going on (verification + optimization are enabled, boot * class path is in BOOTCLASSPATH, etc). * (3) On the host during a build for preoptimization. This behaves * almost the same as (2), except it takes file names instead of * file descriptors. * * There are some fragile aspects around bootclasspath entries, owing * largely to the VM's history of working on whenever it thought it needed * instead of strictly doing what it was told. If optimizing bootclasspath * entries, always do them in the order in which they appear in the path. */ |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dictTest |
external-srec/tools/dictTest/dictTest.c |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dmtracedump |
http://web.mit.edu/zac/MacData/afs/sipb/project/android/docs/tools/help/dmtracedump.html
This document is a reference to the available command line options. For more information on generating trace logs, seeProfiling with Traceview and dmtracedump. The usage for dmtracedump [-ho] [-s sortable] [-d trace-base-name] [-g outfile] <trace-base-name> The tool then loads trace log data from
使用细节: http://www.kuqin.com/mobile/20110828/264079.html |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
draw9patch |
http://web.mit.edu/zac/MacData/afs/sipb/project/android/docs/tools/help/draw9patch.html The Draw 9-patch tool allows you to easily create a For an introduction to Nine-patch graphics and how they work, please read the section about Nine-patch in the 2D Graphics document. Here's a quick guide to create a Nine-patch graphic using the Draw 9-patch tool. You'll need the PNG image with which you'd like to create a NinePatch. 1. From a terminal, launch the 2. Drag your PNG image into the Draw 9-patch window (or File >Open 9-patch... to locate the file). Your workspace will now open. The left pane is your drawing area, in which you can edit the lines for the stretchable patches and content area. The right pane is the preview area, where you can preview your graphic when stretched. 3. Click within the 1-pixel perimeter to draw the lines that define the stretchable patches and (optional) content area. Right-click (or hold Shift and click, on Mac) to erase previously drawn lines. 4. When done, select File > Save 9-patch... Your image will be saved with the Note: A normal PNG file (
Optional controls include: · Zoom: Adjust the zoom level of the graphic in the drawing area. · Patch scale: Adjust the scale of the images in the preview area. · Show lock: Visualize the non-drawable area of the graphic on mouse-over. · Show patches: Preview the stretchable patches in the drawing area (pink is a stretchable patch). · Show content: Highlight the content area in the preview images (purple is the area in which content is allowed). · Show bad patches: Adds a red border around patch areas that may produce artifacts in the graphic when stretched. Visual coherence of your stretched image will be maintained if you eliminate all bad patches. 在另一份文档中有比较详细的说明 使用细节:http://blog.sina.com.cn/s/blog_7501670601010mfl.html |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dumpeventlog |
# Set up prog to be the path of this script, including following symlinks, # and set up progdir to be the fully-qualified pathname of its directory. sdk/dumpeventlog/etc/dumpeventlog |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dump_regions |
sdk/emulator/qtools/dump_regions.cpp |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dx |
http://blog.csdn.net/electricity/article/details/6543676 dx是将java的classes文件编译为字节码dex文件
dx --dex --output=D:/HelloWorld/bin/classes.dex D:/HelloWorld/bin |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dx-tests |
cts/tools/dx-tests/dx-tests.html |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
edify |
刷机脚本http://productbbs.it168.com/thread-511466-1-1.html Edify语法简介(Updater-Script)
http://blog.csdn.net/zxb452000/article/details/7917860 快捷方式 等效命令 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
elftree |
development/tools/elftree/elftree.c Usage: elftree [ -s | -h ] elf-file -S Duplicate entire subtree when a duplicate is found -P Show duplicates, but only include subtree once -H Show each library at most once, even if duplicated -h Show this help screen |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
emulator |
http://web.mit.edu/zac/MacData/afs/sipb/project/android/docs/tools/help/emulator.html The Android SDK includes a mobile device emulator — a virtual mobile device that runs on your computer. The emulator lets you develop and test Android applications without using a physical device. This document is a reference to the available command line options and the keyboard mapping to device keys. For a complete guide to using the Android Emulator, see Using the Android Emulator. Keyboard CommandsTable 1 summarizes the mappings between the emulator keys and the keys of your keyboard. Table 1. Emulator keyboard mapping
Command Line ParametersThe emulator supports a variety of options that you can specify when launching the emulator, to control its appearance or behavior. Here's the command-line syntax of the options available to the emulator -avd Table 2. Emulator command line parameters s
基本介绍和使用:http://www.cnblogs.com/21510506zw/articles/1955846.html |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
emulator-arm |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
emulator-ui |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
emulator-x86 |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
etc1tool |
http://web.mit.edu/zac/MacData/afs/sipb/project/android/docs/tools/help/etc1tool.html The usage for etc1tool is: etc1tool infile [--help | --encode | --encodeNoHeader | --decode] [--showDifference diff-file] [-o outfile]
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
eventanalyzer |
sdk/eventanalyzer/etc/ eventanalyzer # Set up prog to be the path of this script, including following symlinks, # and set up progdir to be the fully-qualified pathname of its directory. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
exc_dump |
sdk/emulator/qtools/exc_dump.cpp |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fastboot |
docs/source.android.com/src/source/building-devices.md 在安卓手机中fastboot是一种比recovery更底层的刷机模式。 fastboot是一种线刷,就是使用USB数据线连接手机的一种刷机模式。相对于某些系统(如小米)卡刷来说,线刷更可靠,安全。 recovery是一种卡刷,就是将刷机包放在sd卡上,然后在recovery中刷机的模式。 在另外一份文档中有比较详细的说明 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fs_config |
// This program takes a list of files and directories (indicated by a // trailing slash) on the stdin, and prints to stdout each input // filename along with its desired uid, gid, and mode (in octal). // The leading slash should be stripped from the input. // Example input: // system/etc/dbus.conf // data/app/ // Output: // system/etc/dbus.conf 1002 1002 440 // data/app 1000 1000 771 // Note that the output will omit the trailing slash from // directories. build/tools/fs_config/fs_config.c |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fs_get_stats |
build/tools/fs_get_stats/fs_get_stats.c |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
genext2fs |
external-genext2fs/ genext2fs.c genext2fs generates an ext2 filesystem as a normal (non-root) user. It does not require you to mount the image file to copy files on it, nor does it require that you become the superuser to make device nodes. http://genext2fs.sourceforge.net/ Please use the [email protected] mailing list to contact the developers and/or report bugs. See the included INSTALL file for instructions on installing genext2fs. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gpttool |
system-core/gpttool/gpttool.c
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
grxmlcompile |
external-srec/config/en.us/grammars/ |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
hierarchyviewer |
http://web.mit.edu/zac/MacData/afs/sipb/project/android/docs/tools/help/hierarchy-viewer.html Hierarchy Viewer allows you to debug and optimize your user interface. It provides a visual representation of the layout's View hierarchy (the Layout View) and a magnified inspector of the display (the Pixel Perfect View). To start Hierarchy Viewer, enter the following command from the SDK hierarchyviewer For more information on how to use Hierarchy Viewer, see Debugging and Profiling UIs |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
hierarchyviewer1 |
和hierarchyviewer类似 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
hist_trace |
sdk/emulator/qtools/hist_trace.cpp |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
hprof-conv |
http://web.mit.edu/zac/MacData/afs/sipb/project/android/docs/tools/help/hprof-conv.html The hprof-conv You can use "-" for |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
icudata |
external/icu4c/data/misc/icudata.rc |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
imgdiff |
bootable-recovery/applypatch/imgdiff.c /* * This program constructs binary patches for images -- such as boot.img * and recovery.img -- that consist primarily of large chunks of gzipped * data interspersed with uncompressed data. Doing a naive bsdiff of * these files is not useful because small changes in the data lead to * large changes in the compressed bitstream; bsdiff patches of gzipped * data are typically as large as the data itself. * * To patch these usefully, we break the source and target images up into * chunks of two types: "normal" and "gzip". Normal chunks are simply * patched using a plain bsdiff. Gzip chunks are first expanded, then a * bsdiff is applied to the uncompressed data, then the patched data is * gzipped using the same encoder parameters. Patched chunks are * concatenated together to create the output file; the output image * should be *exactly* the same series of bytes as the target image used * originally to generate the patch. * * To work well with this tool, the gzipped sections of the target * image must have been generated using the same deflate encoder that * is available in applypatch, namely, the one in the zlib library. * In practice this means that images should be compressed using the * "minigzip" tool included in the zlib distribution, not the GNU gzip * program. * * An "imgdiff" patch consists of a header describing the chunk structure * of the file and any encoding parameters needed for the gzipped * chunks, followed by N bsdiff patches, one per chunk. * * For a diff to be generated, the source and target images must have the * same "chunk" structure: that is, the same number of gzipped and normal * chunks in the same order. Android boot and recovery images currently * consist of five chunks: a small normal header, a gzipped kernel, a * small normal section, a gzipped ramdisk, and finally a small normal * footer. * * Caveats: we locate gzipped sections within the source and target * images by searching for the byte sequence 1f8b0800: 1f8b is the gzip * magic number; 08 specifies the "deflate" encoding [the only encoding * supported by the gzip standard]; and 00 is the flags byte. We do not * currently support any extra header fields (which would be indicated by * a nonzero flags byte). We also don't handle the case when that byte * sequence appears spuriously in the file. (Note that it would have to * occur spuriously within a normal chunk to be a problem.) * * * The imgdiff patch header looks like this: * * "IMGDIFF1" (8) [magic number and version] * chunk count (4) * for each chunk: * chunk type (4) [CHUNK_{NORMAL, GZIP, DEFLATE, RAW}] * if chunk type == CHUNK_NORMAL: * source start (8) * source len (8) * bsdiff patch offset (8) [from start of patch file] * if chunk type == CHUNK_GZIP: (version 1 only) * source start (8) * source len (8) * bsdiff patch offset (8) [from start of patch file] * source expanded len (8) [size of uncompressed source] * target expected len (8) [size of uncompressed target] * gzip level (4) * method (4) * windowBits (4) * memLevel (4) * strategy (4) * gzip header len (4) * gzip header (gzip header len) * gzip footer (8) * if chunk type == CHUNK_DEFLATE: (version 2 only) * source start (8) * source len (8) * bsdiff patch offset (8) [from start of patch file] * source expanded len (8) [size of uncompressed source] * target expected len (8) [size of uncompressed target] * gzip level (4) * method (4) * windowBits (4) * memLevel (4) * strategy (4) * if chunk type == RAW: (version 2 only) * target len (4) * data (target len) * * All integers are little-endian. "source start" and "source len" * specify the section of the input image that comprises this chunk, * including the gzip header and footer for gzip chunks. "source * expanded len" is the size of the uncompressed source data. "target * expected len" is the size of the uncompressed data after applying * the bsdiff patch. The next five parameters specify the zlib * parameters to be used when compressing the patched data, and the * next three specify the header and footer to be wrapped around the * compressed data to create the output chunk (so that header contents * like the timestamp are recreated exactly). * * After the header there are 'chunk count' bsdiff patches; the offset * of each from the beginning of the file is specified in the header. */ |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
jdwpspy |
evelopment/tools/jdwpspy/Main.cpp |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
layoutopt |
http://web.mit.edu/zac/MacData/afs/sipb/project/android/docs/tools/help/layoutopt.html
This document is a reference to the available command line options. For more information and sample output of the tool, see Optimizing layouts with layoutopt. UsageTo run layoutopt For example: $ layoutopt res/layout-land $ layoutopt res/layout/main.xml res/layout-land/main.xml |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
line_endings |
# Copies files into the directory structure described by a manifest development/tools/line_endings/line_endings.c |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
llvm-link |
//===----------------------------------------------------------------------===// // // This utility may be invoked in the following manner: // llvm-link a.bc b.bc c.bc -o x.bc // //===----------------------------------------------------------------------===// external-llvm/tools/llvm-link/llvm-link.cpp |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
llvm-rs-cc |
frameworks/compile/slang/README.html llvm-rs-cc: Compiler for Renderscript languageIntroductionllvm-rs-cc compiles a program in the Renderscript language to generate the following files:
Note that although Renderscript is C99-like, we enhance it with several distinct, effective features for Android programming. We will use some examples to illustrate these features. llvm-rs-cc is run on the host and performs many aggressive optimizations. As a result, libbcc on the device can be lightweight and focus on machine-dependent code generation for some input bitcode. llvm-rs-cc is a driver on top of libslang. The architecture of libslang and libbcc is depicted in the following figure: libslang libbcc | \ | | \ | clang llvm Usage· -o $(PRIVATE_RS_OUTPUT_DIR)/res/raw This option specifies the directory for outputting a .bc file. · -p $(PRIVATE_RS_OUTPUT_DIR)/src The option -p denotes the directory for outputting the reflected Java files. · -d $(PRIVATE_RS_OUTPUT_DIR) This option -d sets the directory for writing dependence information. · -MD Note that -MD will tell llvm-rs-cc to output dependence information. · -a $(EXTRA_TARGETS) Specifies additional target dependencies. Example CommandFirst: $ cd Using frameworks/base/tests/RenderScriptTests/Fountain as a simple app in both Java and Renderscript, we can find the following command line in the build log: $ out/host/linux-x86/bin/llvm-rs-cc \ -o out/target/common/obj/APPS/Fountain_intermediates/src/renderscript/res/raw \ -p out/target/common/obj/APPS/Fountain_intermediates/src/renderscript/src \ -d out/target/common/obj/APPS/Fountain_intermediates/src/renderscript \ -a out/target/common/obj/APPS/Fountain_intermediates/src/RenderScript.stamp \ -MD \ -I frameworks/base/libs/rs/scriptc \ -I external/clang/lib/Headers \ frameworks/base/libs/rs/java/Fountain/src/com/android/fountain/fountain.rs This command will generate:
The Script*.java files above will be documented below. Example Program: fountain.rsfountain.rs is in the Renderscript language, which is based on the standard C99. However, llvm-rs-cc goes beyond "clang -std=c99" and provides the following important features: 1. Pragma· #pragma rs java_package_name([PACKAGE_NAME]) The ScriptC_[SCRIPT_NAME].java has to be packaged so that Java developers can invoke those APIs. To do that, a Renderscript programmer should specify the package name, so that llvm-rs-cc knows the package expression and hence the directory for outputting ScriptC_[SCRIPT_NAME].java. In fountain.rs, we have: #pragma rs java_package_name(com.android.fountain) In ScriptC_fountain.java, we have: package com.android.fountain Note that the ScriptC_fountain.java will be generated inside ./com/android/fountain/. · #pragma version(1) This pragma is for evolving the language. Currently we are at version 1 of the language. 2. Basic Reflection: Export Variables and Functionsllvm-rs-cc automatically exports the "externalizable and defined" functions and variables to Android's Java side. That is, scripts are accessible from Java. For instance, for: int foo = 0; In ScriptC_fountain.java, llvm-rs-cc will reflect the following methods: void set_foo(int v)... int get_foo()... This access takes the form of generated classes which provide access to the functions and global variables within a script. In summary, global variables and functions within a script that are not declared static will generate get, set, or invoke methods. This provides a way to set the data within a script and call its functions. Take the addParticles function in fountain.rs as an example: void addParticles(int rate, float x, float y, int index, bool newColor) { ... } llvm-rs-cc will genearte ScriptC_fountain.java as follows: void invoke_addParticles(int rate, float x, float y, int index, bool newColor) { ... } 3. Export User-Defined StructsIn fountain.rs, we have: typedef struct __attribute__((packed, aligned(4))) Point { float2 delta; float2 position; uchar4 color; } Point_t; Point_t *point; llvm-rs-cc generates one ScriptField*.java file for each user-defined struct. In this case, llvm-rs-cc will reflect two files, ScriptC_fountain.java and ScriptField_Point.java. Note that when the type of an exportable variable is a structure, Renderscript developers should avoid using anonymous structs. This is because llvm-rs-cc uses the struct name to identify the file, instead of the typedef name. For the generated Java files, using ScriptC_fountain.java as an example we also have: void bind_point(ScriptField_Point v) This binds your object with the allocated memory. You can bind the struct(e.g., Point), using the setter and getter methods in ScriptField_Point.java. After binding, you can access the object with this method: ScriptField_Point get_point() In ScriptField_Point_s.java: ... // Copying the Item, which is the object that stores every // fields of struct, to the *index*\-th entry of byte array. // // In general, this method would not be invoked directly // but is used to implement the setter. void copyToArray(Item i, int index) // The setter of Item array, // index: the index of the Item array // copyNow: If true, it will be copied to the *index*\-th entry // of byte array. void set(Item i, int index, boolean copyNow) // The getter of Item array, which gets the *index*-th element // of byte array. Item get(int index) set_delta(int index, Float2 v, boolean copyNow) // The following is the individual setters and getters of // each field of a struct. public void set_delta(int index, Float2 v, boolean copyNow) public void set_position(int index, Float2 v, boolean copyNow) public void set_color(int index, Short4 v, boolean copyNow) public Float2 get_delta(int index) public Float2 get_position(int index) public Short4 get_color(int index) // Copying all Item array to byte array (i.e., memory allocation). void copyAll() ... 4. Summary of the Java Reflection aboveThis section summarizes the high-level design of Renderscript's reflection. · In terms of a script's global functions, they can be called from Java. These calls operate asynchronously and no assumptions should be made on whether a function called will have actually completed operation. If it is necessary to wait for a function to complete, the Java application may call the runtime finish() method, which will wait for all the script threads to complete pending operations. A few special functions can also exist: o The function init (if present) will be called once after the script is loaded. This is useful to initialize data or anything else the script may need before it can be used. The init function may not depend on globals initialized from Java as it will be called before these can be initialized. The function signature for init must be: o void init(void); o The function root is a special function for graphics. This function will be called when a script must redraw its contents. No assumptions should be made as to when this function will be called. It will only be called if the script is bound as a graphics root. Calls to this function will be synchronized with data updates and other invocations from Java. Thus the script will not change due to external influence in the middle of running root. The return value indicates to the runtime when the function should be called again to redraw in the future. A return value of 0 indicates that no redraw is necessary until something changes on the Java side. Any positive integer indicates a time in milliseconds that the runtime should wait before calling root again to render another frame. The function signature for a graphics root functions is as follows: o int root(void); o It is also possible to create a purely compute-based root function. Such a function has the following signature: o void root(const T1 *in, T2 *out, const T3 *usrData, uint32_t x, uint32_t y); T1, T2, and T3 represent any supported Renderscript type. Any parameters above can be omitted, although at least one of in/out must be present. If both in and out are present, root must only be invoked with types of the same exact dimensionality (i.e. matching X and Y values for dimension). This root function is accessible through the Renderscript language construct forEach. We also reflect a Java version to access this function as forEach_root (for API levels of 14+). An example of this can be seen in the Android SDK sample for HelloCompute. o The function .rs.dtor is a function that is sometimes generated by llvm-rs-cc. This function cleans up any global variable that contains (or is) a reference counted Renderscript object type (such as an rs_allocation, rs_font, or rs_script). This function will be invoked implicitly by the Renderscript runtime during script teardown. · In terms of a script's global data, global variables can be written from Java. The Java instance will cache the value or object set and provide return methods to retrieve this value. If a script updates the value, this update will not propagate back to the Java class. Initializers, if present, will also initialize the cached Java value. This provides a convenient way to declare constants within a script and make them accessible to the Java runtime. If the script declares a variable const, only the get methods will be generated. Globals within a script are considered local to the script. They cannot be accessed by other scripts and are in effect always 'static' in the traditional C sense. Static here is used to control if accessors are generated. Static continues to mean not externally visible and thus prevents the generation of accessors. Globals are persistent across invocations of a script and thus may be used to hold data from run to run. Globals of two types may be reflected into the Java class. The first type is basic non-pointer types. Types defined in rs_types.rsh may also be used. For the non-pointer class, get and set methods are generated for Java. Globals of single pointer types behave differently. These may use more complex types. Simple structures composed of the types in rs_types.rsh may also be used. These globals generate bind points in Java. If the type is a structure they also generate an appropriate Field class that is used to pack and unpack the contents of the structure. Binding an allocation in Java effectively sets the pointer in the script. Bind points marked const indicate to the runtime that the script will not modify the contents of an allocation. This may allow the runtime to make more effective use of threads. 5. Vector TypesVector types such as float2, float4, and uint4 are included to support vector processing in environments where the processors provide vector instructions. On non-vector systems the same code will continue to run but without the performance advantage. Function overloading is also supported. This allows the runtime to support vector version of the basic math routines without the need for special naming. For instance,
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
localize |
frameworks-base/tools/localize/localize.cpp |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
make_cfst |
external-srec/tools/make_cfst/make_cfst.cpp |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
makedict |
packages/inputmethods/LatinIME/tools/makedict/etc/makedict # Set up prog to be the path of this script, including following symlinks, # and set up progdir to be the fully-qualified pathname of its directory. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
make_ext4fs |
system-extras/ext4_utils/make_ext4fs.c /* TODO: Not implemented: Allocating blocks in the same block group as the file inode Hash or binary tree directories Special files: sockets, devices, fifos */ |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
make_g2g |
external-srec/tools/make_g2g/make_g2g.c |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
makekeycodes |
frameworks-base/tools/makekeycodes/makekeycodes.cpp // Copyright (C) 2008 The Android Open Source Project // // This file is generated by makekeycodes from the definitions. // in includes/ui/KeycodeLabels.h. // // If you modify this, your changes will be overwritten.
pacakge android.os;
public class KeyEvent { public static final int KEYCODE_SOFT_LEFT = 0x00000001; public static final int KEYCODE_SOFT_RIGHT = 0x00000002; public static final int KEYCODE_HOME = 0x00000003; public static final int KEYCODE_BACK = 0x00000004; public static final int KEYCODE_CALL = 0x00000005; public static final int KEYCODE_ENDCALL = 0x00000006; public static final int KEYCODE_0 = 0x00000007; public static final int KEYCODE_1 = 0x00000008; public static final int KEYCODE_2 = 0x00000009; public static final int KEYCODE_3 = 0x0000000a; public static final int KEYCODE_4 = 0x0000000b; public static final int KEYCODE_5 = 0x0000000c; public static final int KEYCODE_6 = 0x0000000d; public static final int KEYCODE_7 = 0x0000000e; public static final int KEYCODE_8 = 0x0000000f; public static final int KEYCODE_9 = 0x00000010; public static final int KEYCODE_STAR = 0x00000011; public static final int KEYCODE_POUND = 0x00000012; public static final int KEYCODE_DPAD_UP = 0x00000013; public static final int KEYCODE_DPAD_DOWN = 0x00000014; public static final int KEYCODE_DPAD_LEFT = 0x00000015; public static final int KEYCODE_DPAD_RIGHT = 0x00000016; public static final int KEYCODE_DPAD_CENTER = 0x00000017; public static final int KEYCODE_VOLUME_UP = 0x00000018; public static final int KEYCODE_VOLUME_DOWN = 0x00000019; public static final int KEYCODE_POWER = 0x0000001a; public static final int KEYCODE_CAMERA = 0x0000001b; public static final int KEYCODE_CLEAR = 0x0000001c; public static final int KEYCODE_A = 0x0000001d; public static final int KEYCODE_B = 0x0000001e; public static final int KEYCODE_C = 0x0000001f; public static final int KEYCODE_D = 0x00000020; public static final int KEYCODE_E = 0x00000021; public static final int KEYCODE_F = 0x00000022; public static final int KEYCODE_G = 0x00000023; public static final int KEYCODE_H = 0x00000024; public static final int KEYCODE_I = 0x00000025; public static final int KEYCODE_J = 0x00000026; public static final int KEYCODE_K = 0x00000027; public static final int KEYCODE_L = 0x00000028; public static final int KEYCODE_M = 0x00000029; public static final int KEYCODE_N = 0x0000002a; public static final int KEYCODE_O = 0x0000002b; public static final int KEYCODE_P = 0x0000002c; public static final int KEYCODE_Q = 0x0000002d; public static final int KEYCODE_R = 0x0000002e; public static final int KEYCODE_S = 0x0000002f; public static final int KEYCODE_T = 0x00000030; public static final int KEYCODE_U = 0x00000031; public static final int KEYCODE_V = 0x00000032; public static final int KEYCODE_W = 0x00000033; public static final int KEYCODE_X = 0x00000034; public static final int KEYCODE_Y = 0x00000035; public static final int KEYCODE_Z = 0x00000036; public static final int KEYCODE_COMMA = 0x00000037; public static final int KEYCODE_PERIOD = 0x00000038; public static final int KEYCODE_ALT_LEFT = 0x00000039; public static final int KEYCODE_ALT_RIGHT = 0x0000003a; public static final int KEYCODE_SHIFT_LEFT = 0x0000003b; public static final int KEYCODE_SHIFT_RIGHT = 0x0000003c; public static final int KEYCODE_TAB = 0x0000003d; public static final int KEYCODE_SPACE = 0x0000003e; public static final int KEYCODE_SYM = 0x0000003f; public static final int KEYCODE_EXPLORER = 0x00000040; public static final int KEYCODE_ENVELOPE = 0x00000041; public static final int KEYCODE_ENTER = 0x00000042; public static final int KEYCODE_DEL = 0x00000043; public static final int KEYCODE_GRAVE = 0x00000044; public static final int KEYCODE_MINUS = 0x00000045; public static final int KEYCODE_EQUALS = 0x00000046; public static final int KEYCODE_LEFT_BRACKET = 0x00000047; public static final int KEYCODE_RIGHT_BRACKET = 0x00000048; public static final int KEYCODE_BACKSLASH = 0x00000049; public static final int KEYCODE_SEMICOLON = 0x0000004a; public static final int KEYCODE_APOSTROPHE = 0x0000004b; public static final int KEYCODE_SLASH = 0x0000004c; public static final int KEYCODE_AT = 0x0000004d; public static final int KEYCODE_NUM = 0x0000004e; public static final int KEYCODE_HEADSETHOOK = 0x0000004f; public static final int KEYCODE_FOCUS = 0x00000050; public static final int KEYCODE_PLUS = 0x00000051; public static final int KEYCODE_MENU = 0x00000052; public static final int KEYCODE_NOTIFICATION = 0x00000053; public static final int KEYCODE_SEARCH = 0x00000054; public static final int KEYCODE_MEDIA_PLAY_PAUSE = 0x00000055; public static final int KEYCODE_MEDIA_STOP = 0x00000056; public static final int KEYCODE_MEDIA_NEXT = 0x00000057; public static final int KEYCODE_MEDIA_PREVIOUS = 0x00000058; public static final int KEYCODE_MEDIA_REWIND = 0x00000059; public static final int KEYCODE_MEDIA_FAST_FORWARD = 0x0000005a; public static final int KEYCODE_MUTE = 0x0000005b; public static final int KEYCODE_PAGE_UP = 0x0000005c; public static final int KEYCODE_PAGE_DOWN = 0x0000005d; public static final int KEYCODE_PICTSYMBOLS = 0x0000005e; public static final int KEYCODE_SWITCH_CHARSET = 0x0000005f; public static final int KEYCODE_BUTTON_A = 0x00000060; public static final int KEYCODE_BUTTON_B = 0x00000061; public static final int KEYCODE_BUTTON_C = 0x00000062; public static final int KEYCODE_BUTTON_X = 0x00000063; public static final int KEYCODE_BUTTON_Y = 0x00000064; public static final int KEYCODE_BUTTON_Z = 0x00000065; public static final int KEYCODE_BUTTON_L1 = 0x00000066; public static final int KEYCODE_BUTTON_R1 = 0x00000067; public static final int KEYCODE_BUTTON_L2 = 0x00000068; public static final int KEYCODE_BUTTON_R2 = 0x00000069; public static final int KEYCODE_BUTTON_THUMBL = 0x0000006a; public static final int KEYCODE_BUTTON_THUMBR = 0x0000006b; public static final int KEYCODE_BUTTON_START = 0x0000006c; public static final int KEYCODE_BUTTON_SELECT = 0x0000006d; public static final int KEYCODE_BUTTON_MODE = 0x0000006e; public static final int KEYCODE_ESCAPE = 0x0000006f; public static final int KEYCODE_FORWARD_DEL = 0x00000070; public static final int KEYCODE_CTRL_LEFT = 0x00000071; public static final int KEYCODE_CTRL_RIGHT = 0x00000072; public static final int KEYCODE_CAPS_LOCK = 0x00000073; public static final int KEYCODE_SCROLL_LOCK = 0x00000074; public static final int KEYCODE_META_LEFT = 0x00000075; public static final int KEYCODE_META_RIGHT = 0x00000076; public static final int KEYCODE_FUNCTION = 0x00000077; public static final int KEYCODE_SYSRQ = 0x00000078; public static final int KEYCODE_BREAK = 0x00000079; public static final int KEYCODE_MOVE_HOME = 0x0000007a; public static final int KEYCODE_MOVE_END = 0x0000007b; public static final int KEYCODE_INSERT = 0x0000007c; public static final int KEYCODE_FORWARD = 0x0000007d; public static final int KEYCODE_MEDIA_PLAY = 0x0000007e; public static final int KEYCODE_MEDIA_PAUSE = 0x0000007f; public static final int KEYCODE_MEDIA_CLOSE = 0x00000080; public static final int KEYCODE_MEDIA_EJECT = 0x00000081; public static final int KEYCODE_MEDIA_RECORD = 0x00000082; public static final int KEYCODE_F1 = 0x00000083; public static final int KEYCODE_F2 = 0x00000084; public static final int KEYCODE_F3 = 0x00000085; public static final int KEYCODE_F4 = 0x00000086; public static final int KEYCODE_F5 = 0x00000087; public static final int KEYCODE_F6 = 0x00000088; public static final int KEYCODE_F7 = 0x00000089; public static final int KEYCODE_F8 = 0x0000008a; public static final int KEYCODE_F9 = 0x0000008b; public static final int KEYCODE_F10 = 0x0000008c; public static final int KEYCODE_F11 = 0x0000008d; public static final int KEYCODE_F12 = 0x0000008e; public static final int KEYCODE_NUM_LOCK = 0x0000008f; public static final int KEYCODE_NUMPAD_0 = 0x00000090; public static final int KEYCODE_NUMPAD_1 = 0x00000091; public static final int KEYCODE_NUMPAD_2 = 0x00000092; public static final int KEYCODE_NUMPAD_3 = 0x00000093; public static final int KEYCODE_NUMPAD_4 = 0x00000094; public static final int KEYCODE_NUMPAD_5 = 0x00000095; public static final int KEYCODE_NUMPAD_6 = 0x00000096; public static final int KEYCODE_NUMPAD_7 = 0x00000097; public static final int KEYCODE_NUMPAD_8 = 0x00000098; public static final int KEYCODE_NUMPAD_9 = 0x00000099; public static final int KEYCODE_NUMPAD_DIVIDE = 0x0000009a; public static final int KEYCODE_NUMPAD_MULTIPLY = 0x0000009b; public static final int KEYCODE_NUMPAD_SUBTRACT = 0x0000009c; public static final int KEYCODE_NUMPAD_ADD = 0x0000009d; public static final int KEYCODE_NUMPAD_DOT = 0x0000009e; public static final int KEYCODE_NUMPAD_COMMA = 0x0000009f; public static final int KEYCODE_NUMPAD_ENTER = 0x000000a0; public static final int KEYCODE_NUMPAD_EQUALS = 0x000000a1; public static final int KEYCODE_NUMPAD_LEFT_PAREN = 0x000000a2; public static final int KEYCODE_NUMPAD_RIGHT_PAREN = 0x000000a3; public static final int KEYCODE_VOLUME_MUTE = 0x000000a4; public static final int KEYCODE_INFO = 0x000000a5; public static final int KEYCODE_CHANNEL_UP = 0x000000a6; public static final int KEYCODE_CHANNEL_DOWN = 0x000000a7; public static final int KEYCODE_ZOOM_IN = 0x000000a8; public static final int KEYCODE_ZOOM_OUT = 0x000000a9; public static final int KEYCODE_TV = 0x000000aa; public static final int KEYCODE_WINDOW = 0x000000ab; public static final int KEYCODE_GUIDE = 0x000000ac; public static final int KEYCODE_DVR = 0x000000ad; public static final int KEYCODE_BOOKMARK = 0x000000ae; public static final int KEYCODE_CAPTIONS = 0x000000af; public static final int KEYCODE_SETTINGS = 0x000000b0; public static final int KEYCODE_TV_POWER = 0x000000b1; public static final int KEYCODE_TV_INPUT = 0x000000b2; public static final int KEYCODE_STB_POWER = 0x000000b3; public static final int KEYCODE_STB_INPUT = 0x000000b4; public static final int KEYCODE_AVR_POWER = 0x000000b5; public static final int KEYCODE_AVR_INPUT = 0x000000b6; public static final int KEYCODE_PROG_RED = 0x000000b7; public static final int KEYCODE_PROG_GREEN = 0x000000b8; public static final int KEYCODE_PROG_YELLOW = 0x000000b9; public static final int KEYCODE_PROG_BLUE = 0x000000ba; public static final int KEYCODE_APP_SWITCH = 0x000000bb; public static final int KEYCODE_BUTTON_1 = 0x000000bc; public static final int KEYCODE_BUTTON_2 = 0x000000bd; public static final int KEYCODE_BUTTON_3 = 0x000000be; public static final int KEYCODE_BUTTON_4 = 0x000000bf; public static final int KEYCODE_BUTTON_5 = 0x000000c0; public static final int KEYCODE_BUTTON_6 = 0x000000c1; public static final int KEYCODE_BUTTON_7 = 0x000000c2; public static final int KEYCODE_BUTTON_8 = 0x000000c3; public static final int KEYCODE_BUTTON_9 = 0x000000c4; public static final int KEYCODE_BUTTON_10 = 0x000000c5; public static final int KEYCODE_BUTTON_11 = 0x000000c6; public static final int KEYCODE_BUTTON_12 = 0x000000c7; public static final int KEYCODE_BUTTON_13 = 0x000000c8; public static final int KEYCODE_BUTTON_14 = 0x000000c9; public static final int KEYCODE_BUTTON_15 = 0x000000ca; public static final int KEYCODE_BUTTON_16 = 0x000000cb; public static final int KEYCODE_LANGUAGE_SWITCH = 0x000000cc; public static final int KEYCODE_MANNER_MODE = 0x000000cd; public static final int KEYCODE_3D_MODE = 0x000000ce; public static final int KEYCODE_CONTACTS = 0x000000cf; public static final int KEYCODE_CALENDAR = 0x000000d0; public static final int KEYCODE_MUSIC = 0x000000d1; public static final int KEYCODE_CALCULATOR = 0x000000d2;
public static final int MODIFIER_WAKE = 0x00000001; public static final int MODIFIER_WAKE_DROPPED = 0x00000002; public static final int MODIFIER_SHIFT = 0x00000004; public static final int MODIFIER_CAPS_LOCK = 0x00000008; public static final int MODIFIER_ALT = 0x00000010; public static final int MODIFIER_ALT_GR = 0x00000020; public static final int MODIFIER_MENU = 0x00000040; public static final int MODIFIER_LAUNCHER = 0x00000080; public static final int MODIFIER_VIRTUAL = 0x00000100; public static final int MODIFIER_FUNCTION = 0x00000200; } |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
make_ve_grammar |
external-srec/tools/make_ve_grammar/make_ve_grammar.c |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
minigzip |
external-zlib/minigzip.c /* * minigzip is a minimal implementation of the gzip utility. This is * only an example of using zlib and isn't meant to replace the * full-featured gzip. No attempt is made to deal with file systems * limiting names to 14 or 8+3 characters, etc... Error checking is * very limited. So use minigzip only for testing; use gzip for the * real thing. On MSDOS, use only on file names without extension * or in pipe mode. */ |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mkbootfs |
system-core/cpio/mkbootfs.c /* NOTES ** ** - see buffer-format.txt from the linux kernel docs for ** an explanation of this file format ** - dotfiles are ignored ** - directories named 'root' are ignored ** - device notes, pipes, etc are not supported (error) */ |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mkbootimg |
system-core/mkbootimg/mkbootimg.c usage: mkbootimg --kernel --ramdisk [ --second <2ndbootloader-filename> ] [ --cmdline [ --board [ --base ] [ --pagesize -o|--output
/* ** +-----------------+ ** | boot header | 1 page ** +-----------------+ ** | kernel | n pages ** +-----------------+ ** | ramdisk | m pages ** +-----------------+ ** | second stage | o pages ** +-----------------+ ** ** n = (kernel_size + page_size - 1) / page_size ** m = (ramdisk_size + page_size - 1) / page_size ** o = (second_size + page_size - 1) / page_size ** ** 0. all entities are page_size aligned in flash ** 1. kernel and ramdisk are required (size != 0) ** 2. second is optional (second_size == 0 -> no second) ** 3. load each element (kernel, ramdisk, second) at ** the specified physical address (kernel_addr, etc) ** 4. prepare tags at tag_addr. kernel_args[] is ** appended to the kernel commandline in the tags. ** 5. r0 = 0, r1 = MACHINE_TYPE, r2 = tags_addr ** 6. if second_size != 0: jump to second_addr ** else: jump to kernel_addr */ |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mksdcard |
http://web.mit.edu/zac/MacData/afs/sipb/project/android/docs/tools/help/mksdcard.html The Usagemksdcard -l OptionsThe following table describes the command-line options of
Once you have created the disk image file, you can load it in the emulator at startup using the emulator's The usage for the emulator -sdcard Examplemksdcard -l mySdCard 1024M mySdCardFile.img |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mksnapshot |
external-v8/src/mksnapshot.cc // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mkuserimg.sh |
system-extras/ext4_utils/mkuserimg.sh # To call this script, make sure make_ext4fs is somewhere in PATH |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mkyaffs2image |
external-yaffs2/yaffs2/utils/mkyaffsimage.c /* * YAFFS: Yet another FFS. A NAND-flash specific file system. * * makeyaffsimage.c * * Makes a YAFFS file system image that can be used to load up a file system. * * Copyright (C) 2002 Aleph One Ltd. * for Toby Churchill Ltd and Brightstar Engineering * * Created by Charles Manning * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. * * * Nick Bane modifications flagged NCB * * Endian handling patches by James Ng. * * */ |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
monkeyrunner |
http://web.mit.edu/zac/MacData/afs/sipb/project/android/docs/tools/help/monkey.html The Monkey is a program that runs on your emulator or device and generates pseudo-random streams of user events such as clicks, touches, or gestures, as well as a number of system-level events. You can use the Monkey to stress-test applications that you are developing, in a random yet repeatable manner. OverviewThe Monkey is a command-line tool that that you can run on any emulator instance or on a device. It sends a pseudo-random stream of user events into the system, which acts as a stress test on the application software you are developing. The Monkey includes a number of options, but they break down into four primary categories: · Basic configuration options, such as setting the number of events to attempt. · Operational constraints, such as restricting the test to a single package. · Event types and frequencies. · Debugging options. When the Monkey runs, it generates events and sends them to the system. It also watches the system under test and looks for three conditions, which it treats specially: · If you have constrained the Monkey to run in one or more specific packages, it watches for attempts to navigate to any other packages, and blocks them. · If your application crashes or receives any sort of unhandled exception, the Monkey will stop and report the error. · If your application generates an application not responding error, the Monkey will stop and report the error. Depending on the verbosity level you have selected, you will also see reports on the progress of the Monkey and the events being generated. Basic Use of the MonkeyYou can launch the Monkey using a command line on your development machine or from a script. Because the Monkey runs in the emulator/device environment, you must launch it from a shell in that environment. You can do this by prefacing The basic syntax is: $ adb shell monkey [options] <event-count> With no options specified, the Monkey will launch in a quiet (non-verbose) mode, and will send events to any (and all) packages installed on your target. Here is a more typical command line, which will launch your application and send 500 pseudo-random events to it: $ adb shell monkey -p your.package.name -v 500 Command Options ReferenceThe table below lists all options you can include on the Monkey command line.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
obbtool |
frameworks-base/tools/obbtool/Main.cpp Opaque Binary Blob (OBB) Tool
Usage: obbtool a[dd] [ OPTIONS ] FILENAME Adds an OBB signature to the file.
Options: -n -v -o sets the OBB overlay flag -s <8 byte hex salt> sets the crypto key salt (if encrypted)
obbtool r[emove] FILENAME Removes the OBB signature from the file.
obbtool i[nfo] FILENAME Prints the OBB signature information of a file. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
parseStringTest |
external-srec/tools/parseStringTest/parseStringTest.c
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
post_trace |
sdk/emulator/qtools/post_trace.cpp |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
profile_pid |
sdk/emulator/qtools/profile_pid.cpp |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
profile_trace |
sdk/emulator/qtools/profile_trace.cpp |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
q2dm |
sdk/emulator/qtools/q2dm.cpp |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
q2g |
sdk/emulator/qtools/q2g.cpp |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
qemu-android-arm |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
qemu-android-x86 |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
read_addr |
sdk/emulator/qtools/read_addr.cpp |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
read_method |
sdk/emulator/qtools/read_method.cpp |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
read_pid |
sdk/emulator/qtools/read_pid.cpp |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
read_trace |
sdk/emulator/qtools/read_trace.cpp |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
rgb2565 |
build/tools/rgb2565/to565.c rgb转565 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
rsg-generator |
frameworks-base/libs/rs/rsg_generator.c fprintf(f, "/*\n"); fprintf(f, " * Copyright (C) 2011 The Android Open Source Project\n"); fprintf(f, " *\n"); fprintf(f, " * Licensed under the Apache License, Version 2.0 (the \"License\");\n"); fprintf(f, " * you may not use this file except in compliance with the License.\n"); fprintf(f, " * You may obtain a copy of the License at\n"); fprintf(f, " *\n"); fprintf(f, " * http://www.apache.org/licenses/LICENSE-2.0\n"); fprintf(f, " *\n"); fprintf(f, " * Unless required by applicable law or agreed to in writing, software\n"); fprintf(f, " * distributed under the License is distributed on an \"AS IS\" BASIS,\n"); fprintf(f, " * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n"); fprintf(f, " * See the License for the specific language governing permissions and\n"); fprintf(f, " * limitations under the License.\n"); fprintf(f, " */\n\n"); |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
rs-spec-gen |
frameworks-compile-slang/RSSpec.mk |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
screenshot2 |
sdk/screenshot/etc/screenshot2 # Set up prog to be the path of this script, including following symlinks, # and set up progdir to be the fully-qualified pathname of its directory. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sig |
cts/tools/signature-tools/sig __signature-tools__
This project contains the source code and tests for API signature comparison tools. It consists roughly of five parts:
#Signature model : A generic model to represent the structure of an API
#Converters : A dex -> signature model converter (utilizing the dex-tools parser) A java source -> signature model converter (utilizing the doclet tools)
#Delta model : A model to represent differences between two signature models
#Comparator : Put two signature models into the comparator and you get a delta model
#Report engine : Translates a delta model to a html output based on templates (utilizing the StringTemplate framework)
Since this folder contains a .project file, it can be imported directly into eclipse as a java project.
Feel free to improve!
_Structure_
dex.reader | src : source code | | | signature : the driver classes | | | compare : the comparator code | | | | | model : the delta model | | | converter : the converters | | | io : common io interfaces | | | | | html : html report generator | | | model : signature model | test : source code of the test suite | templates : templates for html output generation | launches : eclipse launches for the tools | lib : required libraries | spec : various input files to try the tool | README.txt : you are here | TODO.txt : tasks which are still open |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sig-check |
cts/tools/signature-tools/sig-check |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sig-create |
cts/tools/signature-tools/sig-create |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
simg2img |
system-extras/ext4_utils/simg2img.c |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sqlite3 |
SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月。 至今已经有12个年头,SQLite也迎来了一个版本 SQLite 3已经发布 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
stack_dump |
sdk/emulator/qtools/stack_dump.cpp |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
tblgen |
external-clang/utils/TableGen/TableGen.cpp //===- TableGen.cpp - Top-Level TableGen implementation for Clang ---------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // This file contains the main function for Clang's TableGen. // //===----------------------------------------------------------------------===// |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
test_algorithm_host |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
test_char_traits_host |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
test_functional_host |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
test_g2g |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
test_iomanip_host |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
test_ios_base_host |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
test_ios_pos_types_host |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
test_iostream_host |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
test_iterator_host |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
test_limits_host |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
test_list_host |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
test_memory_host |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
test_set_host |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
test_sstream_host |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
test_streambuf_host |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
test_string_host |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
test_swiarb |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
test_type_traits_host |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
test_uninitialized_host |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
test_vector_host |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
test_zipfile |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
traceview |
http://web.mit.edu/zac/MacData/afs/sipb/project/android/docs/tools/help/traceview.html Traceview is a graphical viewer for execution logs saved by your application. Traceview can help you debug your application and profile its performance. To start Traceview, enter the following command from the SDK traceview For more information on how to use Traceview, see Profiling with Traceview and dmtracedump
使用细节:http://www.kuqin.com/mobile/20110828/264079.html |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
usbtest |
system-core/fastboot/usbtest.c /* * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
vm-tests |
cts/tools/vm-tests/vm-tests.html Dalvik VM Test SuiteVersion 1.0 Copyright © 2008 The Android Open Source Project OverviewThis directory contains a test suite for the Dalvik VM. It tests the capabilities of the Dalvik VM in a black-box manner, based on the Dalvik bytecode and docs/dalvik/dalvik-bytecode.html docs/dalvik/dalvik-constraints.html docs/dalvik/dex-format.html docs/dalvik/verifier.html for further details. How to buildThe test suite is normally included in a full build of the Android project. If it needs to be built individually, a simple make vm-tests or an mm in this directory will do. How to runThe suite can be invoked by executing vm-tests from any location, assuming the suite has been built. This will run all tests. If you want to limit the suite to the test cases corresponding to a single instruction, you can specifiy the mnemonic as a parameter. For example vm-tests add-int/lit16 executes the tests for the vm-tests format vm-tests verifier The suite is normally run for the fast version of the interpreter. To run it for the portable interpreter, pass The suite is compatible with both emulator and simulator builds. For an emulator build, please make sure you have either an emulator running or a device attached via USB before invoking the test suite. The full suite might easily take 30 minutes or more for execution, depending on the environment. It will generate an HTML report with details on all test cases. While running, console output is produced to give a quick impression of the progress and results. For both types of output, each individual test result falls into one of the following categories:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
wdsclient |
external-webkit/Source/WebKit/android/wds/client/main.cpp /* * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
webkitmerge |
external-webkit/Tools/android/webkitmerge/webkitmerge.cpp /* * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
yuv420sp2rgb |
development/tools/yuv420sp2rgb/yuv420sp2rgb.c /* YUV 4:2:0 image with a plane of 8 bit Y samples followed by an interleaved U/V plane containing 8 bit 2x2 subsampled chroma samples. except the interleave order of U and V is reversed.
H V Y Sample Period 1 1 U (Cb) Sample Period 2 2 V (Cr) Sample Period 2 2 */ |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
zipalign |
http://web.mit.edu/zac/MacData/afs/sipb/project/android/docs/tools/help/zipalign.html zipalign is an archive alignment tool that provides important optimization to Android application (.apk) files. The purpose is to ensure that all uncompressed data starts with a particular alignment relative to the start of the file. Specifically, it causes all uncompressed data within the .apk, such as images or raw files, to be aligned on 4-byte boundaries. This allows all portions to be accessed directly with This tool should always be used to align your .apk file before distributing it to end-users. The Android build tools can handle this for you. When using Eclipse with the ADT plugin, the Export Wizard will automatically zipalign your .apk after it signs it with your private key. The build scripts used when compiling your application with Ant will also zipalign your .apk, as long as you have provided the path to your keystore and the key alias in your project Caution: zipalign must only be performed after the .apk file has been signed with your private key. If you perform zipalign before signing, then the signing procedure will undo the alignment. Also, do not make alterations to the aligned package. Alterations to the archive, such as renaming or deleting entries, will potentially disrupt the alignment of the modified entry and all later entries. And any files added to an "aligned" archive will not be aligned. The adjustment is made by altering the size of the "extra" field in the zip Local File Header sections. Existing data in the "extra" fields may be altered by this process. For more information about how to use zipalign when building your application, please read Signing Your Application. UsageTo align zipalign [-f] [-v] To confirm the alignment of zipalign -c -v The Flags: · · ·
|
http://www.blogjava.net/lihao336/archive/2010/10/02/333674.html |
1.TraceView 2)方法: a)在程序代码中加入追踪开关 import android.os.Debug; …… android.os.Debug.startMethodTracing(“/data/tmp/test”);//先建/data/tmp目录 ……// 被追踪的程序段 android.os.Debug.stopMethodTracing(); b)编译,运行后,设备端生成/data/tmp/test.trace文件 c)把trace文件复制到PC端 $ adb pull /data/tmp/test.trace ./ d)使用android自带工具分析trace文件 $ANDROID_SRC/out/host/linux-x86/bin/traceview test.trace 此时可看到各个函数被调用的次数CPU占用率等信息 e)使用android自带工具分析生成调用关系类图 $ apt-get install graphviz#安装图片相关软件 $ANDROID_SRC/out/host/linux-x86/bin/dmtracedump -g test.png test.trace 此时目录下生成类图test.png 3)注意 trace文件生成与libdvm模块DEBUG版本相冲突,所以此方法只适用于对非DEBUG版本模拟器的调试,否则在分析trace文件时会报错
1)功能: 用于java层面的内存分析,显示详细的内存占用信息,指出可疑的内存泄漏对象 2)方法: a)在代码中加入dump动作 import android.os.Debug; import java.io.IOException; …… try { android.os.Debug.dumpHprofData(“/data/tmp/input.hprof”); //先建/data/tmp目录 } catch (IOException ioe) { } b)把hprof文件复制到PC端 $ adb pull /data/tmp/input.hprof ./ c)使用命令hprof-conv把hprof转成MAT识别的标准的hprof $ $ANDROID_SRC/out/host/linux-x86/bin/hprof-conv input.hprof output.hprof d)使用MAT工具看hprof信息 下载MAT工具:http://www.eclipse.org/mat/downloads.php 用工具打开output.hprof 3)注意:此工具只能显示java层面的,而不能显示C层的内存占用信息
1)功能 每隔N毫秒对当前正在运行的函数取样,并输出到log中 2)在代码中加入取样设定 import dalvik.system.SamplingProfiler …… SamplingProfile sp = SamplingProfiler.getInstance(); sp.start(n);// n为设定每秒采样次数 sp.logSnapshot(sp.snapshot()); …… sp.shutDown(); 它会启一个线程监测,在logcat中打印信息
1)原理 dalvik虚拟机对SIGQUIT和SIGUSR1信号进行处理(dalvik/vm/SignalCatcher.c),分别完成取当前堆栈和取当前内存情况的功能 2)用法 a)$ chmod 777 /data/anr -R#把anr目录权限设为可写 $ rm /data/anr/traces.txt#删除之前的trace信息 $ ps # 找到进程号 $ kill -3 进程号 #发送SIGQUIT信号给该进程,此时生成trace信息 $ cat /data/anr/traces.txt 功能实现:遍历thread list(dalvik/vm/Thread.c:dvmDumpAllThreadEx()),并打印当前函数调用关系(dalvik/vm/interp/Stack.c:dumpFrames()) b)$ chmod 777 /data/misc -R $ ps # 找到进程号 $ kill -10 进程号 #发送SIGQUIT信事信号给该进程,此时生成hprof信息 $ ls /data/misc/*.hprof 此时生成hprf文件,如何使用此文件,见第二部分(HProf) 注意:hprof文件都很大,注意用完马上删除,以免占满存储器
1)android.util.Log利用println的标准java输出词句,并加前缀I/V/D…. 2)dalvik利用管道加线程的方式,先利用dup2把stdout和stderr重定向到管理中(vm/StdioConverter.c:dvmstdioConverterStartup),然后再启动一个线程从管道另一端读出内容(dalvik/vm/StdioConverter.c:stdioconverterThreadSt art()),使用LOG公共工具(system/core/liblog/logd_write.c: __android_log_print())输出到/dev/log/*中去 3)logcat通过加不同参数看/dev/log/下的不同输入信息 # logcat -b main显示主缓冲区中的信息 # logcat -b radio显示无线缓冲区中的信息 # logcat -b events显示事件缓冲区中的信息
1)虚拟机(设备端)在启动时加载了Agent JDWP从而具备了调试功能。在调试器端(PC端)通过JDWP协议与设备连接,通过发送命令来获取的状态和控制Java程序的执行。JDWP是通过命令(command)和回复(reply)进行通信的。 2)JDK 中调试工具 jdb就是一个调试器,DDMS也提供调试器与设备相连。 3)dalvik为JDWP提供了两种连接方式:tcp方式和adb方式,tcp方式可以手工指定端口,adb方式自动设定为8700端口,通常使用DDMS调试就是通过adb方式
1)monkey是一个android自带的命令行工具。它向系统发送伪随机的用户事件流,实现对正在开发的应用程序进行压力测试。 2)方法 在设备端打开setting界面 $ adb shell 此时可以看到界面不断被切换 具体见android.os.Debug中提供的工具 1)取毫微秒级的时间,用于计算时间 threadCpuTimeNanos() 2)统计两点间的内存分配情况 startAllocCounting() stopAllocCounting() getGlobalAllocCount() get….. 3)打印当前已load的class getLoadedClassCount() printLoadedClasses()它需要打开NDEBUG功能才能打开system/core/中Log功能
$ adb bugreport |
http://mobile.51cto.com/hot-246458.htm |
1. Android Honeycomb Stencils & Sketchsheets
谷歌发布了专用于平板电脑的Android 3.0 Honeycomb系统,这个工具用于Honeycomb界面原型设计。 下载地址 2. DroidDraw
DroidDraw可以帮助您轻松的建立Android平台的图形用户界面,可运行于Mac OS X,Windows和Linux平台。 下载地址 3. Sensor Simulator
Sensor simulator是个独立的Java应用程序,它模拟传感器的数据并将它们传送到Android模拟器。 下载地址 4. Fireworks template for Android
这是一个Android用户界面元素模板集,根据Android模块进行划分。 下载地址 5. App Inventor
App Inventor可以让你在你的浏览器中设计Android应用程序,通过您的电脑和手机实时连接,让您的应用程序出现在您的手机上。 下载地址 6. Android Phone GUI Kit
这是一个Android手机界面元素包,对于设计应用程序原型非常有用。 下载地址 7. Android Sketch Stencil
这是一个线框图模板集,帮助开发者制作出功能原型,这样可以更好的对应用程序的功能进行描述和讨论。 下载地址 |
http://wiki.cyanogenmod.com/wiki/Fastboot |
||||||||||||||||||||||||||||||||||||
FastbootFastboot is a command line tool used to directly flash the filesystem in Android devices from a host via USB. It allows flashing of unsigned partition images. It is disabled in production devices since USB support has been disabled in the bootloader. You must have an Engineering SPL, or an SPL that is S-OFF. After installing the Android SDK or ADB Standalone you can use 'fastboot' in addition to the more common ADB.
Verify SPL S-OFFWith the exception of the Google Nexus One (which has an OEM unlock), when you boot the device into the bootloader, you should see S-OFF (security off) on the top line. If you see S-ON, or you see a four-color rainbow background, the SPL does not support fastboot. You will need to install a fastboot compatable SPL, such as HardSPL or any of the Engineering SPLsfor various devices. See the device specific page for further instructions. Access bootloader1. Make sure you have ADB or the SDK installed. 2. Download fastboot for the appropriate operating system for your computer. 3. Place the executable in the proper place, usually: § Linux: ~/android_sdk/tools/ or ~/bin/ § OS X: ~/android-sdk-macosx/platform-tools/ § Windows: C:\android-sdk-windows\tools 4. Turn off the device. 5. Boot device into bootloader 6. Make sure the device is in FASTBOOT and not HBOOT 7. Connect the device to the computer via USB. 8. On your computer, open terminal and run (you may need elevated privileges for this): fastboot You should see something similar to: List of devices attached HTXXXXXXXXXX device fastboot --helpusage: fastboot [ commands: update flashall flash boot + recovery + system flash erase getvar boot flash:raw boot devices list all connected devices continue continue with autoboot reboot reboot device normally reboot-bootloader reboot device into bootloader options: -w erase userdata and cache -s -p -c -i -b -n Typical Partition LayoutFor Reference when flashing partitions
ExamplesManual Nandroid restoreMake a Nandroid backup, and copy the folder off your SD card to your desktop.
fastboot flash fastboot flash fastboot flash fastboot Flash Custom Recovery.imgfastboot flash fastboot Flash Custom boot.imgYou should make a Nandroid backup first, in case you need to recover your boot.img fastboot flash fastboot DevelopmentIf you are developing a kernel, you may find it helpful to delete your boot.img and recovery.img to force booting into fastboot: fastboot fastboot You can then manually boot from your custom kernel and a ramdisk: fastboot Once you have a working kernel and ramdisk, you can automagically combine them within fastboot: fastboot flash Category: Tools
|
http://mobile.51cto.com/android-221953.htm |
相比较其他的平台,Android不依赖于任何约束第三方应用程序的私有的操作系统(题外话:美国最近宣布对于iPhone的破解和越狱将会是违法行为),Android本身就是开源的。由于开源,Android有巨大的开发社区支持。各种个样的例子和教程,GUI素材,和开发工具下载。几乎所有的都是免费提供的。“A Useful Selection of Android Developer Tools and Resources”这篇文章选出21个可以免费或开源的工具、资源和开发指南。希望这些资源能给你的Android应用带来帮助。 Android开发外文书籍推荐
1、免费的Android开发人员电子书:andbook
原文地址:http://andbook.anddev.org/ 如果你刚步入Android的开发,那么对于第一次开发Android应用程序的你来说,这本书是非常适合的。这本只有62页的PDF电子书里,有简单易懂的入门教程,帮助你在没有任何Android开发知识的背景下,教你开发Android应用程序。 2、免费的Android开发人员电子书:专业Android应用程序开发
原文地址:http://kronox.org/documentacion/Professional_Android_Application_Development.pdf 专业Android应用程序开发PDF电子书,是一本创建移动手机应用程序的上手指南,这本书特点简洁,还有着能帮助你快速构建真实Android移动电话应用程序的典型的例子。本书覆盖了Android手机所有本质特性,并同时展示了Android手机的高级特性。 相关文章参看: ◆Android App Developers GUI Kits, Icons, Fonts and Tools 原文地址: http://speckyboy.com/2010/05/10/android-app-developers-gui-kits-icons-fonts-and-tools/ ◆iPhone and iPad Development GUI Kits, Stencils and Icons 原文地址: http://speckyboy.com/2010/04/30/iphone-and-ipad-development-gui-kits-stencils-and-icons/ ◆Mobile Web and App Development Testing and Emulation Tools 原文地址: http://speckyboy.com/2010/04/12/mobile-web-and-app-development-testing-and-emulation-tools/ ◆14 Free Mobile Application Development Icon Sets 原文地址: http://speckyboy.com/2010/03/08/14-free-mobile-app-development-icon-sets/ Android开源开发工具 3、Windows上的Android
下载地址:http://developer.android.com/guide/developing/tools/emulator.html 对于那些想测试驱动Android的开发者,可以使用这个Android模拟器,这个模拟器以单独的应用程序的形式独立运行在Windows PC之上,使用这个模拟器不用下载和完全安装复杂的Android开发包。你甚至可以在这个模拟器上安装和测试Android系统兼容的应用程序。 4、来自应用程序开发入门的Android模拟器
原文地址:http://developer.android.com/guide/developing/tools/emulator.html Android的开发包中包含了一个移动设备模拟器。这个模拟器模仿了典型移动设备的硬件和软件特性(当然,不包含打电话)。这个模拟器提供各种个样的导航和控制按键,可以使用你的鼠标和键盘来“按”下这些按键为你的应用程序生成事件。这个模拟器也提供一个屏幕为你显示应用程序。同时,SDK中提供了很多能在模拟器上运行的应用程序。 5、感应模拟器
原文地址:http://www.openintents.org/en/node/23 感应模拟器是一个JAVA独立应用程序,感应模拟器模拟感应数据并把数据传给Android模拟器。这个感应模拟器可以让你模拟加速度仪器,指南针,和方向感应,这些数据可以用于Android应用程序,并通过感应器进行控制。 6、DroidEx:大(巨)屏上的Android项目 原文地址:http://github.com/commonsguy/droidex DroidEx 可以让你附加的Android设备的显示屏内容复制一份到你的开发机屏幕。使用DroidEx来做演示是非常有用的。因为你可以把你的Android设备连接到你的笔记本电脑上或投影仪上,你的客户就可以通过这些设备来看你Android设备上的内容。DroidEx还可以用来演示那些用模拟器不方便演示的内容,比如说GPS或加速度仪器等内容。 7、Android的App Inventor
原文地址:http://appinventor.googlelabs.com/about/ Android 的App Inventor是来自Google为非开发人员准备的新工具,通过这个工具,非开发人员可以非常容易地在里面创建应用程序。可以通过网站的视屏来预览这个工具的功能特性。 免费和开源的应用程序 8、apps-for-android (Open Source Applications) 查看地址:http://code.google.com/p/apps-for-android/ 这个链接中包含了许多实用的开源的Android应用程序。这些应用程序展示了Android的许多特性。 9、List of Sample Android Apps 查看地址:http://developer.android.com/resources/samples/index.html 这个Web页面是一个Android开发包中的实例程序列表。使用这个页面上的链接,你可以通过你的浏览器来阅读这些例子程序的源代码。你也可以把这些实例程序下载下来,当你需要的时候,你可以修改并使用他们。 10、Android Cookbook (Examples in Cookbook Form) 查看地址:http://code.google.com/p/android-cookbook/ 这个站点有很多实用的Android示例程序,你完全可以重用这些例子。 11、OpenIntents 查看地址:http://www.openintents.org/en/ OpenIntends 设计和实现了开放式 intents和接口,其使得Android移动应用程序能更紧密的结合在一起。同时OpenIntends免费的提供了更专业和复杂的实例应用程序来演示他们的用法。 12、Android Snippets (Share Useful Snippets of Source Code) 查看地址:http://www.androidsnippets.org/ Android Snippets 是一个Android的实用代码段库,这个库是用来分享实用和优秀的Android应用程序代码;如果没有特别的需求,我们可以大量的重用这些代码库。 Android开发任务工具 13、如何开发Android中的常用任务
原文地址:http://developer.android.com/guide/appendix/faq/commontasks.html 这是一个关于Android开发可能遇到的常用任务列表集合,并提供了一个快速、 how-to方式的帮助,来帮助你完成这些任务。 14、快速启动小抄
原文地址:http://andblogs.net/fastboot/ 快速启动小抄是一个非常实用和快速的列表,这个列表中罗列一些关于快速启动的相关任务 AndroidUI设计 15、UI指导原则 原文地址:http://developer.android.com/guide/practices/ui_guidelines/index.html 在这里你可以找一些到官方文章的连接,这些连接来自于“The Developer’s Guide”。这些文章的内容描述了关于Android可视交互应用程序的UI设计开发的指导原则。 ◆Icon Design Guidelines 原文地址:http://developer.android.com/guide/practices/ui_guidelines/icon_design.html Download the Android Icon Templates Pack 下载地址:http://developer.android.com/guide/practices/ui_guidelines/icon_design.html#templatespack 图标指导原则描述每类图标的细节,并做关于尺寸,颜色,阴影其他的细节的规范,根据这些规范你的设计的图标可以适用于Android系统。你也可以下载Android图标模板包,这个包里面是一些Photoshop和Illustrator模板和滤镜文件,通过这个模板包你可以更简单的创建满足规范的图标。 ◆Widget Design Guidelines 原文地址:http://developer.android.com/guide/practices/ui_guidelines/widget_design.html 控件设计指导描述了如何设计适合其他主页屏的控件。这个连接会连接到一些图形文件和模板,通过这些模板和文件可以使你设计更简单。 ◆Activity and Task Design Guidelines 原文地址:http://developer.android.com/guide/practices/ui_guidelines/activity_task_design.html Activity和Task设计指导描述了活动的工作方式,并用图解示例演示了Activity,并描述了其重要的底层机制和原理,如多任务系统,Activity重用,intents,Activity栈,和Task。以设计层面的角度覆盖了活动的所有内容。 ◆Menu Design Guidelines 原文地址:http://developer.android.com/guide/practices/ui_guidelines/widget_design.html 菜单设计指导描述了上下文菜单和选项菜单的不同。如何放置菜单项,何时放置屏幕命令,和其他的一些菜单细节。 16、Android UI的各种要素 这4部分的文档来自于mobiforge.com,文档中包含了组成Android UI的各种要素。文档的第一部分讨论Android中各种各样的有效的的布局。 ◆Understanding User Interface in Android – Part 1
原文地址:http://mobiforge.com/designing/story/understanding-user-interface-android-part-1-layouts ◆Understanding User Interface in Android – Part 2
原文地址:http://mobiforge.com/designing/story/understanding-user-interface-android-part-2-views ◆Understanding User Interface in Android – Part 3
原文地址:http://mobiforge.com/designing/story/understanding-user-interface-android-part-3-more-views ◆Understanding User Interface in Android – Part 4
原文地址:http://mobiforge.com/designing/story/understanding-user-interface-android-part-4-even-more-views 17、Android UI模式
原文地址:http://www.androidpatterns.com/ 18、DroidDraw:Android用户接口图形编辑器
原文地址:http://www.droiddraw.org/ DroidDraw是一个为Android创建图形用户界面的UI设计器。它是一个独立的可执行程序,可以运行在Mac OS X,Windows和Linux上。 19、Android GUI PSD 向量包
原文地址:http://www.smashingmagazine.com/2009/08/18/android-gui-psd-vector-kit/ Android GUI Starter Kit包里面包含了多个按钮元素和不同接口选项的AndroidGUI内容。这些元素是基于Android1.5 GUI的,并且这些包里面的被提供给开源社区的Android应用程序模型。大部分的GUI元素和手机图例都是使用向量路径制成,所以他们非常地容易被缩放。对于文本AndroidSans包被使用。 20、Android的Firworks Template
原文地址:http://unitid.nl/2009/11/fireworks-template-for-android/ 在Fireworks模板中,Android的各种元素被以向量图形的方式被重绘。在目录中,这些元素的名称大多根据Android词汇表被命名。 21、Android线框模板 原文地址:http://www.tomhume.org/2010/01/android-wireframe-templates.html 线框PDF是信纸大小(8.5英寸 * 11英寸)并且各部件都被拉伸。因此你可以非常容易的以纸张原型或拉伸为真实尺寸的方式来使用。如果你没有信纸,你可以用A4纸来打印。 我们选出21个可以免费或开源的工具、资源和开发指南。希望这些资源能给你的Android应用带来帮助。 原文标题:A Useful Selection of Android Developer Tools and Resources 原文地址:http://speckyboy.com/2010/08/04/a-useful-selection-of-android-developer-tools-and-resources/ 出处:http://coolshell.cn/articles/2853.html
|