- 博客(62)
- 资源 (4)
- 问答 (2)
- 收藏
- 关注

原创 Android仿QQ登录界面示例,实现登录、注册功能。
Android开发经常用到注册、登录功能,于是便整理出一般通用的登录界面,并实现其相应功能。供读者参阅。此项目包含三个活动,即登录,注册界面,找回密码。
2018-08-28 17:58:22
75694
71
原创 WindowManagerService
WMS 是Android中重要的服务,它是WindowManager的管理者。Window是一个抽象类,它的具体实现为PhoneWindow,对View进行管理。WindowManager 是一个接口类,继承自接口ViewManager,用来管理Window的,它的实现类为WindowManagerImpl,如果想要对Window进行添加、更新和删除操作就可以使用WindowManager,WindowManager会将具体的工作交给WMS进行处理。
2024-12-31 15:47:24
880
原创 ActivityManagerService
ActivityManagerService简称AMS,它是Android最核心的系统服务之一,AMS 是引导服务,AMS是Android进程管理和调度中心,负责应用进程的启动、切换和调度,以及四大组件的启动和管理,组件的状态管理和查询。可参考四大组件工作过程。AMS逻辑复杂,有一些类帮助它完成相关逻辑,它们统称为AMS家族。
2024-12-29 18:49:28
620
原创 Android View
View它是一种控件,Android所有控件的基类,是给用户视觉上的一种呈现。ViewGroup内部包含了许多控件,但它继承于View,说明View可以是单个控件也可以是多个控件组成的一组控件。
2024-10-27 20:14:27
1042
1
原创 SystemUI 解析
SystemUI(System User Interface)是Android 系统为用户提供的系统级别的信息显示与交互的UI组件应用程序,包含状态栏、导航栏、锁屏、通知面板、快速设置、最近任务等,它们各部分独立,各尽其责。SystemUI是一个常驻应用程序,只要系统运行,它就会一直运行,即使被杀死也会重新启动。
2024-03-10 11:48:33
1435
原创 四大组件的工作过程
Android系统中的四大组件是构成Android应用程序的基础。包括Activity、Service、BroadcastReceiver、ContentProvider。Android开发中无时无刻不在使用这四大组件。因此了解它们的工作过程能让我们对四大组件的理解更加深刻,同时对Android系统的认识更加清晰。
2024-03-10 11:32:40
1131
原创 Activity启动过程
Activity作为Android四大组件中使用最频繁的组件,也是和用户交互最多的组件,可见它在Android技术体系的核心地位,了解Activity的启动过程可以帮助我们更好的了解Android系统和使用Activity。
2023-12-28 17:07:58
1830
原创 Launcher启动过程
系统启动的最后一步就是启动一个程序来显示系统中已经安装的应用程序,这个程序就是Launcher,Launcher在启动过程中会请求PackageManagerService返回系统中已经安装的应用程序信息,并将这些信息封装成一个快捷图标显示在系统屏幕上,这样用户就可以通过点击这些快捷图标来启动相应的应用程序。
2023-12-28 17:02:38
1236
原创 SystemServer 进程启动过程
Zygote调用startSystemServer创建SystemServer进程。SystemServer进程启动了各种系统服务(四种),并且SystemServer在启动系统服务有定义多个阶段。SystemServiceManager对系统服务进行管理。
2023-12-12 21:49:44
1139
原创 Zygote 进程启动过程
在Android系统中,DVM(Dalvik虚拟机)和ART、应用程序进程以及运行系统的关键服务的SystemServer进程都是由Zygote进程创建的,也可以将其称之为孵化器,它通过fork(复制进程)的形式来创建应用程序进程和SystemServer进程。
2023-12-12 21:38:39
1153
原创 Android开机动画启动流程
init进程是Android系统中的第一个用户空间进程。它负责启动各个系统服务和应用程序。在init进程启动过程中,SurfaceFlinger也被启动,SurfaceFlinger是Android中的显示系统服务,负责管理屏幕显示和图形渲染。开机动画需要使用SurfaceFlinger来显示。然后bootanimation也启动,进行开机动画的播放。bootanimation.zip中包含动画文件和动画配置文件。最终,当所有系统服务和应用程序启动完毕,开机动画结束,进入系统主界面。
2023-11-05 14:47:50
686
原创 init 进程启动过程
init进程是Android系统中用户空间的第一个进程,进程号为1,是Android系统启动的一个关键步骤,作为第一个进程,它的主要工作是创建Zygote和启动属性服务等。init进程是由多个源文件共同组成的,源码目录在system/core/init中。
2023-11-05 14:28:29
476
原创 Android系统启动
Android系统启动包括Boot ROM->Boot Loader->Linux Kernel->init->Zygote->System Server->System Services->Launcher->Home Screen。
2023-10-25 22:05:45
269
原创 SettingsProvider
为啥要聊到这个模块呢?因为Settings里存在大量的设置项,这些设置项的状态需要保存,它们就是通过SettingsProvider来处理的。以状态栏显示电量百分比菜单为例(Battery->Battery percentage),分析下它的状态保存。本文以Android 13 SettingsProvider源码进行分析。
2023-10-23 23:11:44
601
原创 SettingsIntelligence
Android Settings中搜索功能帮助我们可以快速访问设置项,进行自定义设置,以得到更佳的使用体验。Android Settings搜索的实现实际不在Settings模块里,而是存在一个单独的模块—SettingsIntelligence,它里面实现了Settings的核心搜索功能,因此,学习SettingsIntelligence搜索实现可以让我们更多了解Settings模块。本文以Android 13 SettingsIntelligence模块源码进行分析。
2023-10-23 22:45:54
654
原创 Android Settings解析
Android设置应用是Android系统中一个非常重要的系统应用,它允许用户调整和设置系统的各种参数和功能(系统设置/自定义设置/控制应用权限/开发者选项/系统信息等),使用户获得更好的使用体验。同时它一般也是Android系统开发者了解深入的第一个系统级应用,也是用户使用最频繁的系统应用。本文以Android 13 Settings源码进行分析
2023-10-22 23:43:34
2721
原创 Windows下安装Ubuntu、图形界面、下载Android源码,看这一篇就够了
Windows下安装Ubuntu、图形界面、下载Android源码,看这一篇就够了。通过WSL完美安装,简单方便,搭建Linux环境,学习Android源码。
2022-10-07 21:57:17
1458
原创 Android 12 适配攻略
2022年2月11日,谷歌发布了首个 Android 13 开发者预览版。2022年7月,发布了Beta 4版本,接下来就是Final Relase版本了。是时候适配一波Android12了,为后面项目适配铺平道路。
2022-09-12 18:17:13
4497
原创 Java 轻量级框架Spring曝出0day漏洞
3月29日,Spring框架曝出RCE 0day漏洞。已经证实由于 SerializationUtils#deserialize 基于 Java 的序列化机制,可导致远程代码执行 (RCE),使用JDK9及以上版本皆有可能受到影响。
2022-03-30 14:50:23
513
原创 Android Jetpack组件(九)DataStore
Jetpack DataStore 是一种数据存储解决方案,允许您使用协议缓冲区存储键值对或类型化对象。DataStore 使用 Kotlin 协程和 Flow 以异步、一致的事务方式存储数据。
2021-11-04 00:35:24
1970
原创 Android 11适配攻略
2020年6月11日,Google正式推送了Android 11 Beta版本,同年年9月9日正式发布。系统主要增强了聊天气泡,安全性和隐私性的保护,电源菜单,可以更好的支持瀑布屏,折叠屏,双屏和 Vulkan 扩展程序等
2021-08-18 20:24:14
4185
2
原创 再见 onActivityResult!你好 Activity Results API
匆匆又秋天⏳,岁月不堪数,故人不如初。又忙了好一段时间,秋天是收获的季节啊。是时候总结一波咯。这次带来的是新API的使用。
2021-08-15 18:00:38
843
2
原创 Android Jetpack组件(七)Paging
我们经常以列表的形式加载大量的数据,这些数据一次性加载处理,必须消耗大量的时间和数据流畅,因此便有了分页加载。应用开发过程中分页加载时很普遍的需求,它能节省数据流量,提升应用的性能。
2021-04-06 23:00:24
2141
原创 Android Jetpack组件(八)WorkManager
Android应用中大部分都需要执行后台任务,因此也提供了多种解决方案,如JobScheduler、Loader等。但不合理的使用这些API,会造成消耗大量电量。JetPack中的WorkManager为应用程序执行后台任务提供了 一个统一的解决方案。WorkManager可以自动维护后台任务的执行时机,执行顺序,执行状态。
2021-04-05 23:17:58
1972
原创 Android JetPack组件(六)DataBinding
Android 布局文件通常只负责UI的布局工作,页面通过setContentView()关联布局文件,再通过UI控件的id找到控件,接着在页面中通过代码对控件进行操作,因此,页面承担了很大的工作量。为了减轻页面的工作量,Google推出了DataBinding,使得页面和布局之间的耦合度降低。
2021-03-31 22:43:58
2304
原创 Android Jetpack组件(五)Room
Android使用SQLite作为数据库存储数据,但是SQLite使用繁琐且容易出错,有许多开源的数据如GreenDAO、ORMLite等,这些都是为了方便SQLite的使用而出现的,Google也意识到了这个问题,在Jetpack组件中推出了Room,Room在SQLite上提供了一层封装,可以流畅的访问数据库。
2021-03-30 20:10:46
2420
原创 Android Jetpack组件(四)LiveData
LiveData 是一种可观察的数据存储器类。它是一个数据的容器,将数据包装起来,使数据成为被观察者,当数据发生变化时,观察者能够获得通知。LiveData 具有生命周期感知能力,它遵循其他应用组件(如 Activity、Fragment 或 Service)的生命周期。
2021-03-29 20:27:11
1839
原创 Android Jetpack组件(三)ViewModel
对于支持横竖屏切换的应用程序,我们切换横竖屏时,Activity会被重新创建,我们需要考虑数据的存储和恢复。Jetpack为我们提供了ViewModel组件帮我们解决这个问题,ViewModel以注重生命周期的方式存储和管理界面相关的数据。ViewModel独立于配置变化,就算Activity重建,也不会影响ViewModel的生命周期。
2021-03-28 11:04:30
1969
原创 Android Jetpack组件(二)Navigation
Android开发中流行单个Activity嵌套多个Fragment的UI架构模式,但是对Fragment的管理比较麻烦。Fragment的切换包括对AppBar的管理、Fragment间的切换动画以及Fragment间的参数传递。在此过程中实现代码比较复杂混乱。为此,Jetpack提供了Navigation组件,方便我们管理页面和AppBar。
2021-03-27 15:22:43
2398
原创 Android Jetpack组件(一)LifeCycle
Jetpack 是一个由多个库组成的套件,可帮助开发者遵循最佳做法,减少样板代码并编写可在各种 Android 版本和设备中一致运行的代码,让开发者精力集中编写重要的代码。
2021-03-26 15:23:40
2172
1
原创 Android RxJava的使用
RxJava是Reactive Extensions的Java VM实现:该库用于通过使用可观察的序列来组成异步和基于事件的程序。Rx是Reactive Extensions的缩写的简写,它是一个使用可观察数据流进行异步编程的编程接口,Rx结合了观察者模式、迭代器模式和函数式编程的精华。
2020-12-14 14:02:27
3426
原创 Retrofit
Retrofit介绍Retrofit是Square公司基于RESTful风格推出的网络框架封装。Retrofit是基于OKHttp的网络请求框架的二次封装,其本质仍是OKHttp。对比AndroidAsnyHttp基于HTTPClient,作者已经停止维护,Android5.0不再使用HTTPClient,因此不推荐使用。Volley基于HttpUrlConnection,Google官方推出,只适合轻量级网络交互如数据传输小,不适合大文件上传下载场景。优点API设计简洁易用注
2020-10-24 17:20:39
284
原创 Flutter 第三方SDK集成(友盟统计,极光推送,百度地图)
友盟统计Flutter SDK集成首先创建一个项目,接着去友盟工作台添加应用。添加成功后会得到AppKey。集成友盟+ Flutter SDK下载Demo,Demo地址:https://developer.umeng.com/api/sdk/customDownload?platform=flutter&location=internal&packages=%5B%22flutteranalytics%22%5D&components=%5B%22flutteranal
2020-09-15 14:23:17
3811
原创 Flutter技术与实战(6)
Flutter综合应用文章目录Flutter综合应用线上出现问题,该如何做好异常捕获和信息采集Flutter异常App异常的捕获方式FrameWork异常的捕获方式异常上报Dart接口实现iOS接口实现Android接口实现总结衡量FLutter App线上质量,需要关注三个指标页面异常率页面帧率页面加载时长组件化和平台化,如何组织合理稳定的Flutter工程结构组件化组件化的具体实施步骤平台化如果下层组件确实需要调用上层组件的代码怎么办?如何构建高效的Flutter App打包环境Travis CI如何
2020-09-14 08:47:07
636
原创 Flutter技术与实战(5)
Flutter进阶文章目录Flutter进阶如何构造炫酷的动画效果Animation、AnimationController与ListenerAnimationWidget与AnimationBuilderhero动画单线程模型怎么保证UI运行流畅Event Loop机制异步任务异步函数IsolateHTTP网络编程与JSON解析HTTP网络编程HttpClienthttpdioJSON解析如何解析补充本地存储与数据库的使用与优化文件SharedPreference数据库如何在Dart层兼容Android
2020-09-13 18:40:45
2175
1
原创 Flutter技术与实战(4)
Flutter基础文章目录Flutter基础Widget,构建Flutter界面的基石。Widget渲染过程WidgetElementRenderObjectRenderObjectWidget 介绍案例展示Widget中的State到底是什么UI编程范式StateLessWidgetStatefulWidgetStatefulWidget 不是万金油,要慎用生命周期State生命周期创建更新销毁App生命周期生命周期回调帧绘制回调经典控件(一):文本、图片和按钮文本控件图片按钮经典控件(二):ListV
2020-08-10 23:45:43
2487
1
原创 Flutter技术与实战(3)
Dart语言基础基础语法与类型变量Dart初体验printInteger(int a) { print('Hello world, this is $a.'); }main() { var number = 2019; printInteger(number); }——————————————————————————————————————————————————————————————————————————————Hello world, this is 2019.
2020-08-09 10:12:56
814
原创 Flutter技术与实战(2)
Flutter开发起步深入理解跨平台方案的历史发展逻辑跨平台开发是为了增加业务代码的复用率,减少因为要适配多个平台带来的工作量,从而降低开发成本。跨平台方案的三个时代根据实现方式的不同,业内常见的观点是将主流的跨平台方案划分为三个时代。Web 容器时代:基于 Web 相关技术通过浏览器组件来实现界面及功能,典型的框架包括 Cordova(PhoneGap)、Ionic 和微信小程序。一个完整 HTML5 页面的展示要经历浏览器控件的加载、解析和渲染三大过程,性能消耗要比原生开发增加 N 个
2020-08-08 13:04:36
264
Everything.zip
2020-03-20
三月份的输出,不断更新中 ฅ( ̳• ◡ • ̳)ฅ。。。
2021-04-06
雷总,这行代码可值200w[face]monkey2:002.png[/face]
2021-03-31
TA创建的收藏夹 TA关注的收藏夹
TA关注的人