Android系统自带App分析(短信App)
2014-04-04 16:48
190 查看
原文连接:http://android.9tech.cn/news/2013/0924/29029.html
博客园|2013-09-24 10:28|3748次浏览|Android系统(18)系统分析(1)0Android操作系统本身就是一个巨大的开源软件仓库,熟悉它既可以了解到Android系统的设计框架,也可以获得高效的应用程序编写方式。本文所分析的源码来自于Google官方的AOSP源码4.0.1_r1,手机的Android版本是CM 4.2.2。对于Android系统分析而言,手机的操作系统版本和源码版本有些不一致的地方不会有太大的影响,但是如果需要将源码中的修改安装到手机里面的话,最不容易遇到问题的办法就是保持手机中系统的版本和源码的版本完全一致了。
1.程序入口发现
每一个应用程序都应当有各自的入口,使用JAVA编写的Android应用程序也不例外。确认应用的入口是确认应用在系统中对应源码的第一步,也是应用程序分析的第一步。我采用的办法是将需要分析的短信app运行起来,通过Android自带工具获取当前占据主界面的activity名称。
Stackoverflow中的回答http://stackoverflow.com/questions/13193592/adb-android-getting-the-name-of-the-current-activity给出了这个问题的三种解决办法:
1)打Hierarchy View(Window->Open Perspective->Other->Hierarchy View),在Windows栏中用粗体显示了当前占据屏幕activity和package,如下图所示。其中com.android.mms是应用的包名,com.adnroid.mms.ui.ConversationList是具体的Activity名称。
2)也可以直接打开Windows栏进行查看。(Window->Show View->Others->Windows),结果和上图一致。
3) 使用dumpsys命令:adb shell "dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp'" ,结果如下:
dumpsys使用方法见:http://stackoverflow.com/questions/11201659/whats-android-adb-shell-dumpsys-tool-and-its-benefits
2.程序功能分析
确定了短信app的报名以及主Activity之后,可以通过软件搜索(这里用的是everything)确定短信app在源码中的位置是 packages\apps\Mms\src\com\android\mms\ui,并且短信app的启动activity就是继承自ListActivity的ConversationList。
1)ActionBar的构造
在onCreateOptionsMenu函数中通过导入conversation_list_menu加载menu项目。
在oncreate()中设置listview的属性,其中setOnCreateContextMenuListener设置了ContextMenu,通过这个选项的设置,在用户单击了listview一栏之后,调用onContextItemSelected函数中的MENU_VIEW: {openThread(threadId);break;}。可以跳转至发送短信界面。
相关文章推荐
- Android系统自带APP分析——短信app
- 由Asset中的double free引发的Android系统及APP崩溃问题分析
- android系统添加内置APP(自带.so)
- 删除Android系统的所有自带的APP
- 赵雅智_android系统联系人app分析并获取数据
- android技巧:把自己的app变成手机系统自带的app[/system/app]
- Android系统应用层App启动过程分析
- android 监听 系统message app 短信发送
- Android调用系统短信功能,点击返回键返回短信列表而不返回app的问题!
- 深度分析:Android4.3下MMS发送到附件为音频文件(音频为系统内置音频)的彩信给自己,添加音频-发送彩信-接收彩信-下载音频附件-预览-播放(三,接收彩信<1,接收短信>)
- android技巧:把自己的app变成手机系统自带的app[/system/app]
- Android 系统自带的发送短信的界面源码
- android 系统分析(app)
- [开发优化] 系统自带短信程序源码部分分析
- 深度分析:Android4.3下MMS发送到附件为音频文件(音频为系统内置音频)的彩信给自己,添加音频-发送彩信-接收彩信-下载音频附件-预览-播放(三,接收彩信<1,接收短信>)
- Android如何调试更新系统自带的app
- Android自用-----系统自带app与用户app
- 如何在自己的App中调用Android系统自带的安装/卸载程序
- android技巧:把自己的app变成手机系统自带的app[/system/app]
- Android App 设置persist 类型系统变量异常分析