社区
Android
帖子详情
Android 看到一个类,如何知道这个类是属于哪个进程的
顾知希
2017-08-22 11:43:23
如题,场景:因为我要使用jdb调试framework层,那就需要知道你要调试的类所属的进程名才行,比如volumePanel.java,一般来说framework的基本属于system_server进程,但有一些又不是,比如AudioManager.java,
如何去判断呢,有精确去计算知道他的pid的方法吗,特别是要调试framework层的时候,如何知道这个类所属的pid
...全文
272
1
打赏
收藏
Android 看到一个类,如何知道这个类是属于哪个进程的
如题,场景:因为我要使用jdb调试framework层,那就需要知道你要调试的类所属的进程名才行,比如volumePanel.java,一般来说framework的基本属于system_server进程,但有一些又不是,比如AudioManager.java, 如何去判断呢,有精确去计算知道他的pid的方法吗,特别是要调试framework层的时候,如何知道这个类所属的pid
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
雨焰
2017-08-23
打赏
举报
回复
你输入命令:dumpsys 让后抓取信息之后,再grep筛选一下 看有没有你想要的
android
双
进程
守护,
进程
很难被杀死demo
android
双
进程
守护,
进程
很难被杀死
Android
应用程序
进程
管理
Android
系统里面的应用程序
进程
有
一个
特点,那就是它们是被系统托管的。也就是说,系统根据需要来创建
进程
以及回收
进程
。
进程
创建发生在组件启动时,它们是由Zygote
进程
负责创建。Zygote
进程
是由系统中的第
一个
进程
init负责启动。此外,用来运行各种系统服务的System Server
进程
也是由Zygote
进程
创建的。
进程
回收发生在内存紧张时,由Low Memory Killer执行。此外,组件管理服务ActivityManagerService和窗口管理服务WindowManagerService也会在适当的时候主动进行
进程
回收。每
一个
应用程序
进程
根据运行情况被赋予优先级,当需要回收
进程
的时候,就按照优先级从低到高的顺序进行回收。这个PPT讲
Android
应用程序
进程
的启动和回收,主要涉及到Zygote
进程
、System Server
进程
,以及组件管理服务ActivityManagerService、窗口服务WindowManagerService,还有专用驱动Low Memory Killer。通过了解
Android
系统对应用程序
进程
的管理,我们就能更清楚应用程序的运行机制。
Android
组件设计思想
Android
应用开发的哲学是把一切都看作是组件。把应用程序组件化的好处是降低模块间的耦合性,同时提高模块的复用性。
Android
的组件设计思想与传统的组件设计思想最大的区别在于,前者不依赖于
进程
。也就是说,
进程
即使由于内存紧张被强行杀掉了,但是运行在里面的组件还是存在的。这样就可以在组件再次需要使用时,原地满血复活,就像什么都没发生过一样。这种设计思想非常适合内存较小的移动设备。理解
Android
组件设计思想,对
Android
应用程序架构会有更好的认识。这一节讲
Android
组件化设计的背景、理念、原则,以及
Android
在OS级别上提供的组件化支持,其中还会包含
一个
实验来验证这种组件化设计思想,可以对
Android
系统有
一个
高层次的抽象理解。
Android
专用驱动
Android
专用驱动构成了
Android
运行时的基石。从技术上来讲,
Android
专用驱动也是整个
Android
系统的亮点,特别是Binder驱动。Binder是一种
进程
间通信机制(IPC),它与传统的IPC机制对比,最大的特点是高效,因为通信数据在两个
进程
之间只需要执行一次拷贝即可。Binder在
Android
系统里面使用得非常广泛以及频繁。在涉及到比较大的通信数据时,Binder通常还结合另外
一个
驱动Ashmem来使用。Ashmem是
一个
共享内存驱动,它与传统的共享内存相比,最大的特点是它是通过文件描述符来描述的,并且可以动态地进行分块管理。动态分块管理的目的是可以将部分不再使用了的内存交回给系统,非常适合内存较小的移动设备使用。另外
一个
专用驱动Logger是
一个
日志驱动,它与传统的日志系统对比,特点是日志是记录在内核空间而非文件中,这样就可以提高日志的读写速度。这个PPT讲Logger、Binder和Ashmem三个
Android
专用驱动的实现原理。由于这三个驱动在
Android
源代码里面用得非常广泛和频繁,因此理解它们的实现原理,就可以掌握
Android
的精华。这对以后阅读
Android
系统的其它代码,也是非常有帮助的。
Android
安全机制 PPT版本
Android
应用程序是运行在
一个
沙箱中。这个沙箱是基于Linux内核提供的用户ID(UID)和用户组ID(GID)来实现的。
Android
应用程序在安装的过程中,安装服务PackageManagerService会为它们分配
一个
唯一的UID和GID,以及根据应用程序所申请的权限,赋予其它的GID。有了这些UID和GID之后,应用程序就只能限访问特定的文件,一般就是只能访问自己创建的文件。此外,
Android
应用程序在调用敏感的API时,系统检查它在安装的时候会没有申请相应的权限。如果没有申请的话,那么访问也会被拒绝。对于有root权限的应用程序,则不受上述沙箱限制。此外,有root权限的应用程序,还可以通过Linux的ptrace注入到其它应用程序
进程
,以及系统
进程
,进行各种函数调用拦截。
Android
80,472
社区成员
91,385
社区内容
发帖
与我相关
我的任务
Android
移动平台 Android
复制链接
扫一扫
分享
社区描述
移动平台 Android
android
android-studio
androidx
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章