avatar
文章
58
标签
20
分类
9
主页
文章
标签
分类
关于
墨香博客
主页
文章
标签
分类
关于
Android系统源码分析--Broadcast注册和注销
发表于2017-12-21|AndroidOS
距离上一篇博客进程的加载过了很久的时间,这中间换了一份工作,加入了新的团队,也开始了新的项目,比较忙,所以最近才有时间将四大组件之一的广播原理看完,最近一段时间会相继把四大组件分析写完,让我们对四大组件有更深的了解。本来想一篇把广播的内容写完,但是发现要解释的代码比较多,所以还是分开来讲,那么这篇先分析广播的注册和注销,下一篇再分析广播的发送。 Broadcast的注册 Step-1:注册广播入口ContextImpl.registerReceiver:1234@Overridepublic Intent registerReceiver(BroadcastReceiver receiver, IntentFilter filter) { return registerReceiver(receiver, filter, null, null);} 然后调用registerReceiver复写方法: 123456@Override public Intent registerReceiver(BroadcastReceiver...
Android系统源码分析--Process启动过程
发表于2017-09-13|AndroidOS
由于四大组件的启动都涉及到进程的启动,因此我们这章先讲一下进程启动流程,然后再讲四大组件的启动流程。 基础知识Android应用程序框架层创建的应用程序进程具有两个特点,一是进程的入口函数是ActivityThread.main,二是进程天然支持Binder进程间通信机制;这两个特点都是在进程的初始化过程中实现的。(引用自老罗安卓之旅-Android应用程序进程启动过程的源代码分析) 进程按照重要性可以分为下面五类: 前台进程(Foreground process) 可见进程(Visible process) 服务进程(Service process) 后台进程(Background process) 空进程(Empty process) 进程启动流程AMS(ActivityMagagerService)启动进程是从其成员函数startProcessLocked开始调用Process.start方法开始的。我们先看一下进程启动的时序图: 1. Process.start方法:12345678910111213141516171819202122public...
Android系统源码分析--消息循环机制
发表于2017-07-13|AndroidOS
...
Android系统源码分析--Zygote和SystemServer启动过程
发表于2017-07-12|AndroidOS
按计划本来从这章开始写四大组件的启动过程的,但是看看源码结构发现为了说的更明白还是先写一点系统framework层启动的内容,帮助理解四大组件的启动以及管理过程。我们知道四大组件管理是通过一些服务以及线程实现的,所以先把一些基本概念弄清楚比较好,比如AMS(ActivityManagerService)、PMS(PackageManagerService)等系统服务的作用以及调用方式,了解这些之后再看四大组件相对容易些,因此我们本章先介绍系统启动、部分系统服务的作用。 Zygote启动过程Zygote是一个孕育器,Android系统所有的应用进程以及系统服务SystemServer都是有Zygote进程孕育(fork)而生的,因此Zygote在Android启动过程中起着决定作用。Zygote的启动是从它的main函数开始的,因此我们从这个函数开始分析。整个过程看下面的时序图。 下面我们开始根据时序图进行分析。 Step...
Android系统源码分析--Context
发表于2017-06-05|AndroidOS
...
IntelliJ IDEA导入Android源码
发表于2017-06-03|AndroidOS
我们知道在Windows系统下阅读源码利器是Source Insight,但是没有Mac版本,阅读源码一直是个问题,之前我写过关于阅读源码神器的Understand,但是如果项目过大则很慢,所以也不能用来阅读Android系统源码,在网上也查过Sublime text配置ctag,但是相对来说也是不方便,后来使用Visual Studio Code和Sublime text相差不多,最后想到用IntelliJ IDEA来阅读源码,如果直接导入则会分为很多module。最近从网上看到可以导入IntelliJ IDEA软件,所以给大家分享一下。本教程基于Mac OS X 10.12。Android系统版本为:7.1.2_r11(7.1.2最终版)。先介绍方法,后面会给出各种问题解决方案。 生成导入idea或者eclipse需要的文件: 1.首先是idea和eclipse导入项目需要的文件 123.classpath (Eclipse)android.ipr (IntelliJ / Android Studio)android.iml (IntelliJ / Android...
墨香带你学Launcher之(八)- 加载Icon、设置壁纸
发表于2017-05-19
上一章墨香带你学Launcher之(七)- 小部件的加载、添加以及大小调节介绍了小部件的加载以及添加过程,基于我的计划对于Launcher的讲解基本要完成了,因此本篇是我对Launcher讲解的最后一部分,计划了很久,因为时间的问题一直没有写,今天趁着有空写完。写了八篇,不多,Launcher里面还有很多东西,有兴趣的可以自己继续研究,看完这些主要的其他都是问题了,有什么需要了解的可以留言。最新版的Launcher代码我已经放到github上,想看的自己可以去下载。 加载Icon对于Icon的操作其实主要是加载、更新以及删除,加载主要是启动Launcher、安装应用,更新是在更新应用时更新Icon、删除是卸载应用时会删除Icon,因此我们可以从这几方面分析Icon的处理。 Launcher启动时Icon加载Launcher的数据加载流程我在第二篇墨香带你学Launcher之(二)-...
开源算法集合
发表于2017-03-23
本文主要是收集一些大的公司开源的算法项目,以方便我们开发使用。包括:guetzli(图像算法)、brotli(压缩算法)、face_classification(人脸分类以及情感算法)。 Google【guetzli】 源码地址:guetzli 简介:Google 又开源了,这次开源了一款图像算法工具 Guetzli。Guetzli,在瑞士德语中是“cookie(曲奇)”的意思,是一个针对数码图像和网页图像的 JPEG 编码器,能够通过产生更小的 JPEG 文件来达到更快的在线体验,并且同时保持与当前浏览器,图像处理应用和 JPEG 标准的兼容性。Google 称 Guetzli 创建高质量的 JPEG 图像文件的大小比当前的压缩方法要再小 35%。 简介来源:开源中国:Google 开源图像算法工具...
常用UI框架汇总
发表于2017-03-13
本章主要是对常用的UI框架进行整理,帮助大家更方便的查找资源。主要包括:ViewPager、RecyclerView、Toast、Notification、CoordinatorLayout、Animation、界面切换、日历、高斯模糊、菜单、图片选择器、切换主题等。 UIViewPager YViewPagerDemoYViewPagerDemo InfiniteCycleViewPagerInfiniteCycleViewPager InfiniteCycleViewPagerXamarinInfiniteCycleViewPagerXamarin ViewPagerCardsViewPagerCards ViewpagerTransitionViewpagerTransition CardStackView CardStackViewCardStackView FlippableStackViewFlippableStackView ...
Android 常用框架集合
发表于2017-01-10
本章主要是对一下常用的框架进行整理,包括框架的源码地址以及一些比较详细的博客讲解,帮助大家更方便的查找资源。 网络1.android-async-http:一个比较老的网络框架项目,虽然已经很少使用了,但是可以学习一下里面的写作方法。 源码地址:android-async-http 详解: 官方网址 快速Android开发系列网络篇之Android-Async-Http android-async-http框架库使用基础 2.retrofit:retrofit是由square开源组织开源的一款非常流行的网络请求框架,现在使用已经非常广泛。 源码地址:retrofit 详解: 官方详解 Retrofit用法详解 Retrofit分析-漂亮的解耦套路 Retrofit 2.0:有史以来最大的改进 Android 手把手教你使用Retrofit2 3.okhttp:okhttp也是由square开源组织开源的一款网络底层封装库,上面介绍的Retrofit也是基于此库进行的二次封装。 源码地址:okhttp 详解: 官方详解 如何更高效地使用...
1…3456
avatar
墨香
因为兴趣所以选择,因为选择所以坚持。
文章
58
标签
20
分类
9
Follow Me
公告
路虽远,行则将至;事虽难,做则可成。
最新文章
使用Docker安装n8n并配置ollama本地模型2025-04-26
本地部署Deepseek并关联到开发工具2025-02-21
2024年终总结--开发十年,人生四十2024-12-28
ANR-实例分析-Waiting for Available buffer2024-12-24
ANR-实例分析-负载过高2024-12-16
分类
  • AI1
  • ANR11
  • Android Official Source8
  • AndroidOS13
  • Android代码推荐1
  • Kotlin1
  • Launcher7
  • Summary1
标签
ANR Understand Resource Animation Coroutines App architecture Android Guide Test 高效Mac Launcher Performance View绘制 Summary Jetpack Compose Gradle View AI Safe AndroidOS Android
归档
  • 四月 20251
  • 二月 20251
  • 十二月 20243
  • 十一月 20244
  • 十月 20242
  • 八月 20244
  • 七月 20242
  • 七月 20231
网站资讯
文章数目 :
58
本站访客数 :
本站总访问量 :
最后更新时间 :
©2016 - 2025 By 墨香
框架 Hexo|主题 Butterfly