Android学习启动篇--eclipse如何调试system_server

打算开始Android系统学习,君预善其事,必先利其器。如果能够在eclipse中调试system_server, 对于理解Android系统服务能够起到很大的帮助.

在网上查了点资料,基本上都比较麻烦:

以下是老罗的文章, 有点老, 需要自己编译一个android rom. 光下源码就要准备好久!

http://blog.csdn.net/luoshengyang/article/details/6559955

还有一种是直接烧录rom到Nexus真机上,这个有好处就是真机上比较快! 但是也很麻烦,除去下源码, 解决各种编译问题外,还需要买个Nexus.

http://www.360doc.com/content/14/0604/23/17754428_383723001.shtml

自己琢磨出来一种方案, 使用virtualbox+genymotion+eclipse, 比真机还快,而且不需要编译android源码.

以下使用Ubuntu14.04 LTS环境,用eclipse调试system_server源码, 当然既然是eclipse, 只能调试到Java层.

1, 下载安装virtual box, 这个网上有好多文章.

2. 下载安装GenyMotion, 这个是好东西, 可以生成Android rom并能够让eclipse通过网口连上virtual box 虚拟机, https://cloud.genymotion.com/page/launchpad/download/

3. 下载Android4.1.1的Rom, http://mirror1.jarfil.net/androvm.org/Download/,

手机版androVM_vbox86p_4.1.1_r6.1-20130222.ova
Tablet版本androVM_vbox86tp_4.1.1_r6.1-20130222.ova 
4. 在virtual box中安装android rom, 记得配置网络为桥接网卡, 选择wlan0或者eth0. eclipse就靠它来把adb连上虚拟机.
5. 启动Android, 然后找到android VM configuration应用, 一般在homepage, 不然就在应用程序列表里面.

6. 打开,找到ip地址,如果找不到,那就返回步骤4改动下接口eth0或者wlan0。

7. 打开终端, 敲入命令: adb connect <ip>.

8. 去grepcode下载android 4.1.1源码.
http://grepcode.com/snapshot/repository.grepcode.com/java/ext/com.google.android/android/4.1.1_r1/
9. 打开eclipse,创建一个java project, 请注意是个java project, 然后将下载的android-4.1.1_r1-sources.jar文件导入工程中.
10. 在DDMS中选中system_server进程, 切换到package explorer, 右键选择java 工程,debug as--> debug configurations-->双击
remote java Application, 填写host: local host, port: 8700,debug。

11. 好了,大功告成,你应该可以在ddms中看到system_server的debug小虫子变成绿色的了,有木有!自己写点apk吧,比如在应用中调用startActivity(),然后在ActivityManagerService.java中的StartActivity()函数中设置断点,就可以开始Android之旅了。

12. 断点被trigger到时,eclipse会找不到source, 在debug窗口选中你要debug的frame, 然后edit source lookup-->project-->选中你的project。就可以看到source了。


时间: 2024-07-31 13:18:27

Android学习启动篇--eclipse如何调试system_server的相关文章

Android动态方式破解apk前奏篇(Eclipse动态调试smail源码)

一.前言 今天我们开始apk破解的另外一种方式:动态代码调试破解,之前其实已经在一篇文章中说到如何破解apk了: Android中使用静态方式破解Apk  主要采用的是静态方式,步骤也很简单,首先使用apktool来反编译apk,得到smail源码,然后分析smail代码,采用代码注入技术来跟踪代码,然后找到关键方法进行修改,进而破解,同时还可以使用一些开源的hook框架,比如:Xposed和Cydia Substrate,来进行关键方法的hook.所以这里我们可以看到我们破解的第一步是使用ap

Android逆向之旅---动态方式破解apk前奏篇(Eclipse动态调试smail源码)

一.前言 今天我们开始apk破解的另外一种方式:动态代码调试破解,之前其实已经在一篇文章中说到如何破解apk了: Android中使用静态方式破解Apk  主要采用的是静态方式,步骤也很简单,首先使用apktool来反编译apk,得到smail源码,然后分析smail代码,采用代码注入技术来跟踪代码,然后找到关键方法进行修改,进而破解,同时还可以使用一些开源的hook框架,比如:Xposed和Cydia Substrate,来进行关键方法的hook.所以这里我们可以看到我们破解的第一步是使用ap

android开发-wifi连接eclipse开发调试环境

android开发请远离数据线! 方法很简单: 第一步,首先你需要在你的手机上安装一个终端模拟器工具,这里我推荐 androidterm_1,0,48.apk,搜下各大app store都会下载到. 第二步,在手机打开这个终端工具,输入命令: su//获取root权限 setprop service.adb.tcp.port 5555//设置监听的端口,端口可以自定义,如5554,5555是默认的 stop adbd//关闭adbd start adbd//重新启动adbd 第三步,记录下你手机

Android白话启动篇(Android booting process)

今天我们将深入Android的启动流程,从用户按下开机键到Android界面的过程.在谷歌上搜索"Android boot process"会得到很多很好英文文章,讲解Android启动这一过程,每个人讲述的角度不一样,通过阅读,对于Android的理解将会更加深刻.下面是链接,打不开的请翻墙!谢谢! https://www.google.com.hk/search?q=The+Android+Booting+process&oq=The+Android+Booting+pro

Android Chromium WebView学习启动篇

Android从4.4起提供基于Chromium实现的WebView.此前WebView基于WebKit实现.WebKit提供网页解析.布局和绘制以及JS运行等基础功能.Chromium在WebKit基础上为WebView提供进程.线程和渲染等基础构架.因此基于Chromium实现的WebView更好地提供了网页浏览功能.从本文开始我们启动对Android Chromium WebView的学习. 老罗的新浪微博:http://weibo.com/shengyangluo,欢迎关注! 学习Web

android学习第一篇 开发环境搭建

android开发环境搭建 由于博主最近在学golang,所以就想着顺手把android开发给学了.最近这两天都在折腾idea,搭建开发环境.昨天晚上终于把golang和android的环境都搭好了,总结一下. 博主一开始使用android studio 做 android 开发,但使用idea做 golang 开发.这两个IDE都是功能十分庞大的,一同运行的话两个分别占用1.5G内存,所以就琢磨用idea开发安卓了.期间遇到几个坑,分享出来. 1.安装安卓SDK 下载地址 http://and

android学习第一篇 基本概念

一.   1.  Android 四大組件 Activity , Service  , BroadcastReceiver ,ContentProvider 2.  多個Activity組成棧,當前Activity处于最顶层 3.  setTheme(int resid)可以用来设置窗口风格 二. 1.  Service一般运行在后台,不需与用户交互,没有界面 2.  Service有自己的独立生命周期,通常为其他组件提供后台服务或者监控其他组件运行状态 三. 1.  BroadcastReci

[Android Tips] 启动应用就开始调试

adb shell am set-debug-app -w {package_name}

[Android]反编译apk + eclipse中调试smali

http://www.cnblogs.com/litou/p/3539281.html http://bbs.pediy.com/showthread.php?t=189610