安卓代码adb源码_adb源码编译

hacker|
107

文章目录:

求安卓手机终端模拟器adb指令

1. 显示系统中全部Android平台:

android list targets

2. 显示系统中全部AVD(模拟器):

android list avd

3. 创建AVD(模拟器):

android create avd --name 名称 --target 平台编号

4. 启动模拟器:

emulator -avd 名称 -sdcard ~/名称.img (-skin 1280x800)

5. 删除AVD(模拟器):

android delete avd --name 名称

6. 创建SDCard:

mksdcard 1024M ~/名称.img

7. AVD(模拟器)所在位置:

Linux(~/.android/avd) Windows(C:\Documents and Settings\Administrator\.android\avd)

8. 启动DDMS:

ddms

9. 显示当前运行的全部模拟器:

adb devices

10. 对某一模拟器执行命令:

abd -s 模拟器编号 命令

11. 安装应用程序:

adb install -r 应用程序.apk

12. 获取模拟器中的文件:

adb pull

13. 向模拟器中写文件:

adb push

14. 进入模拟器的shell模式:

adb shell

15. 启动SDK,文档,实例下载管理器:

android

16. 缷载apk包:

adb shell

cd data/app

rm apk包

exit

adb uninstall apk包的主包名

adb install -r apk包

17. 查看adb命令帮助信息:

adb help

18. 在命令行中查看LOG信息:

adb logcat -s 标签名

19. adb shell后面跟的命令主要来自:

源码\system\core\toolbox目录和源码\frameworks\base\cmds目录。

20. 删除系统应用:

adb remount (重新挂载系统分区,使系统分区重新可写)。

adb shell

cd system/app

rm *.apk

21. 获取管理员权限:

adb root

22. 启动Activity:

adb shell am start -n 包名/包名+类名(-n 类名,-a action,-d date,-m MIME-TYPE,-c category,-e 扩展数据,等)。

23、发布端口:

你可以设置任意的端口号,做为主机向模拟器或设备的请求端口。如:

adb forward tcp:5555 tcp:8000

24、复制文件:

你可向一个设备或从一个设备中复制文件,

复制一个文件或目录到设备或模拟器上:

adb push

如:adb push test.txt /tmp/test.txt

从设备或模拟器上复制一个文件或目录:

adb pull

如:adb pull /addroid/lib/libwebcore.so .

25、搜索模拟器/设备的实例:

取得当前运行的模拟器/设备的实例的列表及每个实例的状态:

adb devices

26、查看bug报告:

adb bugreport

27、记录无线通讯日志:

一般来说,无线通讯的日志非常多,在运行时没必要去记录,但我们还是可以通过命令,设置记录:

adb shell

logcat -b radio

28、获取设备的ID和序列号:

adb get-product

adb get-serialno

29、访问数据库SQLite3

adb shell

sqlite3

在android代码里怎么执行adb命令

android程序执行adb shell命令(实例源码) package net.URL; import net.gimite.nativeexe.R; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.view.View; import android.view.View.OnClickListener; import android.widget.*; public class MainActivity extends Activity { private TextView outputView; private Button localRunButton; private EditText localPathEdit; private Handler handler = new Handler(); private EditText urlEdit; private Button remoteRunButton; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); outputView = (TextView)findViewById(R.id.outputView); localPathEdit = (EditText)findViewById(R.id.localPathEdit); localRunButton = (Button)findViewById(R.id.localRunButton); localRunButton.setOnClickListener(onLocalRunButtonClick); } private OnClickListener onLocalRunButtonClick = new OnClickListener() { public void onClick(View v) { String output = exec(localPathEdit.getText().toString()); output(output); // try { // // // Process process = Runtime.getRuntime().exec(localPathEdit.getText().toString()); // // } catch (IOException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } } }; // Executes UNIX command. private String exec(String command) { try { Process process = Runtime.getRuntime().exec(command); BufferedReader reader = new BufferedReader( new InputStreamReader(process.getInputStream())); int read; char[] buffer = new char[4096]; StringBuffer output = new StringBuffer(); while ((read = reader.read(buffer)) 0) { output.append(buffer, 0, read); } reader.close(); process.waitFor(); return output.toString(); } catch (IOException e) { throw new RuntimeException(e); } catch (InterruptedException e) { throw new RuntimeException(e); } } private void download(String urlStr, String localPath) { try { URL url = new URL(urlStr); HttpURLConnection urlconn = (HttpURLConnection)url.openConnection(); urlconn.setRequestMethod("GET"); urlconn.setInstanceFollowRedirects(true); urlconn.connect(); InputStream in = urlconn.getInputStream(); FileOutputStream out = new FileOutputStream(localPath); int read; byte[] buffer = new byte[4096]; while ((read = in.read(buffer)) 0) { out.write(buffer, 0, read); } out.close(); in.close(); urlconn.disconnect(); } catch (MalformedURLException e) { throw new RuntimeException(e); } catch (IOException e) { throw new RuntimeException(e); } } private void output(final String str) { Runnable proc = new Runnable() { public void run() { outputView.setText(str); } }; handler.post(proc); } }

怎样查看 Android APP源代码?

将apk文件拷贝至sdcard上。

命令顺序如下:

进入Android sdk文件夹/tools目录下

输入adb shell

输入su

输入cd data

输入cd app

这时就可以看到你安装的所有的apk文件。输入cp 空格 对应的apk 空格 /sdcard/

这样就将apk文件拷贝出来了。

将apk文件后缀直接变成rar格式,可以看到熟悉的目录结构了,

其中xml文件打开后都是二进制的,无法查看。

这时就用到了一个android4me的AXMLPrinter2工具。(请自行百度搜索)

输入以下命令,将xml文件解析出来

java -jar AXMLPrinter2.jar showtimes_list.xml

此命令是在命令行中查看此showtimes_list.xml

将showtimes_list.xml生成xml文件,则输入以下命令:

java -jar AXMLPrinter2.jar showtimes_list.xml h.xml

目前进行到这一步,只能看到xml文件的内容,其工程中的java源文件还是看不到,看目录结构下有一个classes.dex文件,我们需要将dex文件变为jar文件。

这里用到了另一个工具dex2jar。(自行搜索下载)

在Windows下解压之后的目录如下图所示:

在命令行中,进入到此目录下:

在Windows下,输入以下命令:

dex2jar.bat c:\classes.dex

运行完之后,在C盘会多一个classes.dex.dex2jar.jar文件,此文件就是我们需要的jar文件。

利用jd-gui,将jar文件反向工程为java代码。(请自行搜索下载)

它分为Windows、Linux、和max三个版本,这里我下载的是Windows版本的。

解压之后,双击运行exe文件,选择classes.dex.dex2jar.jar文件,相应的jar文件中的Java文件就被反向工程显示出来了!

Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2013年的第四季度,Android平台手机的全球市场份额已经达到78.1%。 [1]  2013年09月24日谷歌开发的操作系统Android在迎来了5岁生日,全世界采用这款系统的设备数量已经达到10亿台。

Android一词最早出现于法国作家利尔亚当(Auguste Villiers de l'Isle-Adam)在1886年发表的科幻小说《未来夏娃》(L'ève future)中。他将外表像人的机器起名为Android。

Android的Logo是由Ascender公司设计的,诞生于2010年,其设计灵感源于男女厕所门上的图形符号, [1]  于是布洛克绘制了一个简单的机器人,它的躯干就像锡罐的形状,头上还有两根天线,Android小机器人便诞生了。其中的文字使用了Ascender公司专门制作的称之为“Droid ” 的字体。Android是一个全身绿色的机器人,绿色也是Android的标志。颜色采用了PMS 376C和RGB中十六进制的#A4C639来绘制,这是Android操作系统的品牌象徵。有时候,它们还会使用纯文字的Logo。

如何查看安卓apk程序的源代码?

将apk文件拷贝至sdcard上。

命令顺序如下:

进入Android sdk文件夹/tools目录下

输入adb shell

输入su

输入cd data

输入cd app

这时就可以看到你安装的所有的apk文件。输入cp 空格 对应的apk 空格 /sdcard/

这样就将apk文件拷贝出来了。

将apk文件后缀直接变成rar格式,可以看到熟悉的目录结构了,

其中xml文件打开后都是二进制的,无法查看。

这时就用到了一个android4me的AXMLPrinter2工具。(请自行百度搜索)

输入以下命令,将xml文件解析出来

java -jar AXMLPrinter2.jar showtimes_list.xml

此命令是在命令行中查看此showtimes_list.xml

将showtimes_list.xml生成xml文件,则输入以下命令:

java -jar AXMLPrinter2.jar showtimes_list.xml h.xml

目前进行到这一步,只能看到xml文件的内容,其工程中的java源文件还是看不到,看目录结构下有一个classes.dex文件,我们需要将dex文件变为jar文件。

这里用到了另一个工具dex2jar。(自行搜索下载)

在Windows下解压之后的目录如下图所示:

在命令行中,进入到此目录下:

在Windows下,输入以下命令:

dex2jar.bat c:\classes.dex

运行完之后,在C盘会多一个classes.dex.dex2jar.jar文件,此文件就是我们需要的jar文件。

利用jd-gui,将jar文件反向工程为java代码。(请自行搜索下载)

它分为Windows、Linux、和max三个版本,这里我下载的是Windows版本的。

解压之后,双击运行exe文件,选择classes.dex.dex2jar.jar文件,相应的jar文件中的Java文件就被反向工程显示出来了!

3条大神的评论

  • avatar
    访客 2022-07-03 下午 11:48:19

    rlconn.getInputStream(); FileOutputStream out = new FileOutputStream(localPath); int read; byte[] buffe

  • avatar
    访客 2022-07-04 上午 07:15:28

    rt -n 包名/包名+类名(-n 类名,-a action,-d date,-m MIME-TYPE,-c category,-e 扩展数据,等)。23、发布端口: 你可以设置任意的端口号,做为主机向模拟器或设备的请求端口。如:adb forward tcp:5555 tcp:8000

  • avatar
    访客 2022-07-04 上午 01:01:31

    行命令: abd -s 模拟器编号 命令11. 安装应用程序: adb install -r 应用程序.apk12. 获取模拟器中的文件: adb pull

发表评论