
Android
文章平均质量分 90
WGHCWC
这个作者很懒,什么都没留下…
展开
-
HashMap解析
开门见山,直接开始 HashMap解决了什么问题? HashMap解决了插入与查找的效率问题,近似O(1)级别,内部实现是通过数组和链表组合实现 HashMap如何确定数组大小 结论,根据传入的size大小,计算下一个最接近传入size大小的2的n次方(可能是size本身),例如,传入size为15,真实size为2的四次方16,代码如下: /** * Returns a power of two size for the given target capacity. */原创 2021-05-09 14:57:24 · 192 阅读 · 0 评论 -
Android各版本适配点(6.0-1.0)
Android 6.0 主要是动态权限申请 Android 7.0 1.使用FileProvider将file:/// Uri替换为content:// Uri,将本应用路径暴露给第三方应用 2. 签名需要v2 3. 限制部分广播,可以前台注册,也可以使用JobScheduler ,ContentObserver代替 4. 禁止直接获取mac地址 Android 8.0 后台服务限制,启动服务使用startForegroundService,直接启动前台服务 定位也需要前台服务 悬浮窗类型改为TYPE_A原创 2020-07-22 16:26:31 · 782 阅读 · 0 评论 -
Framework binder驱动(一)MediaPlayerService 启动
通过MediaPlayerService启动作为了解binder驱动的入口.MediaPlayerService是init进程启动的进程,开机时候显示开机动画等.入口源码为freamwork 目录下main_mediaserver.cpp文件 启动MediaPlayerService main_mediaserver.cpp文件下只有一个main()函数,我们根据mediaService的启动流程来观察binder驱动如何进行进程间通信 int main(int argc __unused, char**原创 2020-07-15 20:06:22 · 389 阅读 · 0 评论 -
Android Framework--启动流程
FreamWork init进程 init进程是Android系统的第一个进程,是所以Android进程的祖先,主要完成两件事 解析配置文件init.rc 维护一个属性服务property.server init进程源码在system/core/init目录下,入口为init.cpp的main()函数, init进程启动service进程 init进程通过解析init.rc文件(遵守Android Init Language规范);获得需要启动的服务所在路径,启动服务所需要的参数,名称等,并将信息添加至原创 2020-07-15 17:46:50 · 263 阅读 · 0 评论 -
一行代码实现加载动画,自动绑定解绑activity生命周期
Android 加载动画框架,一行代码,任意地方可用,自动解绑 使用 project中添加maven路径 maven { url 'https://jitpack.io' } 依赖activity生命周期管理 implementation 'com.github.WGHCWC:activitylifecycle:1.1.0' 依赖加载框架 implementation 'com.github.WG...原创 2020-02-08 14:42:19 · 322 阅读 · 0 评论