activity源码(activity开源)
本文目录一览:
- 1、如何获取当前正在运行的Activity实例
- 2、android activitymanager 在源码哪个目录
- 3、android 如何获取手机当前的Activity实例
- 4、大牛们是怎么读 Android 系统源码的?
如何获取当前正在运行的Activity实例
Activity是一个用户交互的界面,一般我们很少用new的方式来获取一个activity的实例,因为没有什么意义。而且也改不了别人的代码。如果你有源码可以看下ActivityManagerService.java这个类,用来管理Activity的。希望对你有帮助
android activitymanager 在源码哪个目录
androidactivity源码的源码首先需要你从Android SDK Manager里面下载activity源码,然后在你activity源码的sdk中才看得到
android 如何获取手机当前的Activity实例
获取activity实例有两种办法activity源码:
1、通过context来获取activity源码,简单方便activity源码:
private String getRunningActivityName() {
String contextString = context.toString();
return contextString.substring(contextString.lastIndexOf(".") + 1, contextString.indexOf("@"));
}
2、通过特定权限获取
uses-permission android:name="android.permission.GET_TASKS" /
private String getRunningActivityName(){
ActivityManager activityManager=(ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
String runningActivity=activityManager.getRunningTasks(1).get(0).topActivity.getClassName();
return runningActivity;
}
大牛们是怎么读 Android 系统源码的?
1.显然Eclipse不是阅读Android源码activity源码的好工具,不流畅,搜索低效,继承性关系/调用关系都无法有效查看。推荐Source Insight,在这个工具帮助下,activity源码你才可以驾驭巨大数量的Android 源码,你可以从容在Java,C++,C代码间遨游,你可以很快找到你需要的继承关系。 顺便,activity源码我们公司一直是Windows+Linux+Samba的工作模式。 2.宏观上看,Android源码分为功能实现上的纵向,和功能拓展上的横向。在阅读源码时需要把握好着两个思路。 譬如你需要研究音频系统的实现原理,纵向activity源码:你需要从一个音乐的开始播放追踪,一路下来,你发现Jni调用解码库,共享内存的创建和使用,路由的切换,音频输入设备的开启,音频流的开始。 3.Android的功能模块绝大部分是C/S架构,你心里一定需要有这个层级关系,你需要思路清晰地找到Server的位置,它才是你需要攻破的城。然后你才能发现HAL和Kernel一层层地剥离。 我大概在三个月前阅读完Android UI系统的源码,这是Android最复杂的部分,没有之一。 我需要先找一个开头,和UI有直接关系的就是最常见的Activityactivity源码了吧,我就从它开始解剖。 我从Activity的创建入手,寻找Activity真正的创建位置,setContentview这个方法很明显和UI有关,这两方面一结合,我发现了ViewRoot和WindowManager的身影,沿着WM和WMS我发现了Surface,以及draw的函数,它居然在Activity 创建时出现的DeCorView上画东西。借助Source Insight我总结了UI Java层的横向静态图。 完成这个静态UML,我觉得我可以开始功能实现上追踪了,这部分主要是C++的代码(这也是我坚定劝阻的放弃Eclipse的原因),我沿着draw函数,看到了各个层级的关系,SurfaceSession的控制和事务处理,SharedBuffer读写控制,彪悍的SurfaceFlinger主宰一切,OpenGL ES的神笔马良。FrameBuffer和FrameBufferDevice的图像输出。一气呵成的完成了。