自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

八归少年

唯有热爱能抵挡岁月漫长

  • 博客(59)
  • 资源 (4)
  • 问答 (2)
  • 收藏
  • 关注

原创 Android仿QQ登录界面示例,实现登录、注册功能。

Android开发经常用到注册、登录功能,于是便整理出一般通用的登录界面,并实现其相应功能。供读者参阅。此项目包含三个活动,即登录,注册界面,找回密码。

2018-08-28 17:58:22 74906 71

原创 SystemUI 解析

SystemUI(System User Interface)是Android 系统为用户提供的系统级别的信息显示与交互的UI组件应用程序,包含状态栏、导航栏、锁屏、通知面板、快速设置、最近任务等,它们各部分独立,各尽其责。SystemUI是一个常驻应用程序,只要系统运行,它就会一直运行,即使被杀死也会重新启动。

2024-03-10 11:48:33 963

原创 四大组件的工作过程

Android系统中的四大组件是构成Android应用程序的基础。包括Activity、Service、BroadcastReceiver、ContentProvider。Android开发中无时无刻不在使用这四大组件。因此了解它们的工作过程能让我们对四大组件的理解更加深刻,同时对Android系统的认识更加清晰。

2024-03-10 11:32:40 1037

原创 Activity启动过程

Activity作为Android四大组件中使用最频繁的组件,也是和用户交互最多的组件,可见它在Android技术体系的核心地位,了解Activity的启动过程可以帮助我们更好的了解Android系统和使用Activity。

2023-12-28 17:07:58 1097

原创 Launcher启动过程

系统启动的最后一步就是启动一个程序来显示系统中已经安装的应用程序,这个程序就是Launcher,Launcher在启动过程中会请求PackageManagerService返回系统中已经安装的应用程序信息,并将这些信息封装成一个快捷图标显示在系统屏幕上,这样用户就可以通过点击这些快捷图标来启动相应的应用程序。

2023-12-28 17:02:38 939

原创 SystemServer 进程启动过程

Zygote调用startSystemServer创建SystemServer进程。SystemServer进程启动了各种系统服务(四种),并且SystemServer在启动系统服务有定义多个阶段。SystemServiceManager对系统服务进行管理。

2023-12-12 21:49:44 1000

原创 Zygote 进程启动过程

在Android系统中,DVM(Dalvik虚拟机)和ART、应用程序进程以及运行系统的关键服务的SystemServer进程都是由Zygote进程创建的,也可以将其称之为孵化器,它通过fork(复制进程)的形式来创建应用程序进程和SystemServer进程。

2023-12-12 21:38:39 1034

原创 Android开机动画启动流程

init进程是Android系统中的第一个用户空间进程。它负责启动各个系统服务和应用程序。在init进程启动过程中,SurfaceFlinger也被启动,SurfaceFlinger是Android中的显示系统服务,负责管理屏幕显示和图形渲染。开机动画需要使用SurfaceFlinger来显示。然后bootanimation也启动,进行开机动画的播放。bootanimation.zip中包含动画文件和动画配置文件。最终,当所有系统服务和应用程序启动完毕,开机动画结束,进入系统主界面。

2023-11-05 14:47:50 364

原创 init 进程启动过程

init进程是Android系统中用户空间的第一个进程,进程号为1,是Android系统启动的一个关键步骤,作为第一个进程,它的主要工作是创建Zygote和启动属性服务等。init进程是由多个源文件共同组成的,源码目录在system/core/init中。

2023-11-05 14:28:29 256

原创 Android系统启动

Android系统启动包括Boot ROM->Boot Loader->Linux Kernel->init->Zygote->System Server->System Services->Launcher->Home Screen。

2023-10-25 22:05:45 225

原创 Android 系统架构

Android系统架构分为五层。从上往下依次是应用层、应用框架层、系统运行库层、硬件抽象层和Linux内核层。

2023-10-25 21:56:26 602

原创 SettingsProvider

为啥要聊到这个模块呢?因为Settings里存在大量的设置项,这些设置项的状态需要保存,它们就是通过SettingsProvider来处理的。以状态栏显示电量百分比菜单为例(Battery->Battery percentage),分析下它的状态保存。本文以Android 13 SettingsProvider源码进行分析。

2023-10-23 23:11:44 392

原创 SettingsIntelligence

Android Settings中搜索功能帮助我们可以快速访问设置项,进行自定义设置,以得到更佳的使用体验。Android Settings搜索的实现实际不在Settings模块里,而是存在一个单独的模块—SettingsIntelligence,它里面实现了Settings的核心搜索功能,因此,学习SettingsIntelligence搜索实现可以让我们更多了解Settings模块。本文以Android 13 SettingsIntelligence模块源码进行分析。

2023-10-23 22:45:54 365

原创 Android Settings解析

Android设置应用是Android系统中一个非常重要的系统应用,它允许用户调整和设置系统的各种参数和功能(系统设置/自定义设置/控制应用权限/开发者选项/系统信息等),使用户获得更好的使用体验。同时它一般也是Android系统开发者了解深入的第一个系统级应用,也是用户使用最频繁的系统应用。本文以Android 13 Settings源码进行分析

2023-10-22 23:43:34 1276

原创 Windows下安装Ubuntu、图形界面、下载Android源码,看这一篇就够了

Windows下安装Ubuntu、图形界面、下载Android源码,看这一篇就够了。通过WSL完美安装,简单方便,搭建Linux环境,学习Android源码。

2022-10-07 21:57:17 1361 1

原创 Android 12 适配攻略

2022年2月11日,谷歌发布了首个 Android 13 开发者预览版。2022年7月,发布了Beta 4版本,接下来就是Final Relase版本了。是时候适配一波Android12了,为后面项目适配铺平道路。

2022-09-12 18:17:13 3972

原创 Java 轻量级框架Spring曝出0day漏洞

3月29日,Spring框架曝出RCE 0day漏洞。已经证实由于 SerializationUtils#deserialize 基于 Java 的序列化机制,可导致远程代码执行 (RCE),使用JDK9及以上版本皆有可能受到影响。

2022-03-30 14:50:23 441

原创 Android Jetpack组件(九)DataStore

Jetpack DataStore 是一种数据存储解决方案,允许您使用协议缓冲区存储键值对或类型化对象。DataStore 使用 Kotlin 协程和 Flow 以异步、一致的事务方式存储数据。

2021-11-04 00:35:24 1903

原创 Android 11适配攻略

2020年6月11日,Google正式推送了Android 11 Beta版本,同年年9月9日正式发布。系统主要增强了聊天气泡,安全性和隐私性的保护,电源菜单,可以更好的支持瀑布屏,折叠屏,双屏和 Vulkan 扩展程序等

2021-08-18 20:24:14 3969 2

原创 再见 onActivityResult!你好 Activity Results API

匆匆又秋天⏳,岁月不堪数,故人不如初。又忙了好一段时间,秋天是收获的季节啊。是时候总结一波咯。这次带来的是新API的使用。

2021-08-15 18:00:38 723 2

原创 Android Jetpack组件(七)Paging

我们经常以列表的形式加载大量的数据,这些数据一次性加载处理,必须消耗大量的时间和数据流畅,因此便有了分页加载。应用开发过程中分页加载时很普遍的需求,它能节省数据流量,提升应用的性能。

2021-04-06 23:00:24 2020

原创 Android Jetpack组件(八)WorkManager

Android应用中大部分都需要执行后台任务,因此也提供了多种解决方案,如JobScheduler、Loader等。但不合理的使用这些API,会造成消耗大量电量。JetPack中的WorkManager为应用程序执行后台任务提供了 一个统一的解决方案。WorkManager可以自动维护后台任务的执行时机,执行顺序,执行状态。

2021-04-05 23:17:58 1893

原创 Android JetPack组件(六)DataBinding

Android 布局文件通常只负责UI的布局工作,页面通过setContentView()关联布局文件,再通过UI控件的id找到控件,接着在页面中通过代码对控件进行操作,因此,页面承担了很大的工作量。为了减轻页面的工作量,Google推出了DataBinding,使得页面和布局之间的耦合度降低。

2021-03-31 22:43:58 2219

原创 Android Jetpack组件(五)Room

Android使用SQLite作为数据库存储数据,但是SQLite使用繁琐且容易出错,有许多开源的数据如GreenDAO、ORMLite等,这些都是为了方便SQLite的使用而出现的,Google也意识到了这个问题,在Jetpack组件中推出了Room,Room在SQLite上提供了一层封装,可以流畅的访问数据库。

2021-03-30 20:10:46 2250

原创 Android Jetpack组件(四)LiveData

LiveData 是一种可观察的数据存储器类。它是一个数据的容器,将数据包装起来,使数据成为被观察者,当数据发生变化时,观察者能够获得通知。LiveData 具有生命周期感知能力,它遵循其他应用组件(如 Activity、Fragment 或 Service)的生命周期。

2021-03-29 20:27:11 1757

原创 Android Jetpack组件(三)ViewModel

对于支持横竖屏切换的应用程序,我们切换横竖屏时,Activity会被重新创建,我们需要考虑数据的存储和恢复。Jetpack为我们提供了ViewModel组件帮我们解决这个问题,ViewModel以注重生命周期的方式存储和管理界面相关的数据。ViewModel独立于配置变化,就算Activity重建,也不会影响ViewModel的生命周期。

2021-03-28 11:04:30 1880

原创 Android Jetpack组件(二)Navigation

Android开发中流行单个Activity嵌套多个Fragment的UI架构模式,但是对Fragment的管理比较麻烦。Fragment的切换包括对AppBar的管理、Fragment间的切换动画以及Fragment间的参数传递。在此过程中实现代码比较复杂混乱。为此,Jetpack提供了Navigation组件,方便我们管理页面和AppBar。

2021-03-27 15:22:43 2244

原创 Android Jetpack组件(一)LifeCycle

Jetpack 是一个由多个库组成的套件,可帮助开发者遵循最佳做法,减少样板代码并编写可在各种 Android 版本和设备中一致运行的代码,让开发者精力集中编写重要的代码。

2021-03-26 15:23:40 2070 1

原创 Android组件化架构

Android组件化架构

2021-03-01 23:49:31 500

原创 Android RxJava的使用

RxJava是Reactive Extensions的Java VM实现:该库用于通过使用可观察的序列来组成异步和基于事件的程序。Rx是Reactive Extensions的缩写的简写,它是一个使用可观察数据流进行异步编程的编程接口,Rx结合了观察者模式、迭代器模式和函数式编程的精华。

2020-12-14 14:02:27 2100

原创 Retrofit

Retrofit介绍Retrofit是Square公司基于RESTful风格推出的网络框架封装。Retrofit是基于OKHttp的网络请求框架的二次封装,其本质仍是OKHttp。对比AndroidAsnyHttp基于HTTPClient,作者已经停止维护,Android5.0不再使用HTTPClient,因此不推荐使用。Volley基于HttpUrlConnection,Google官方推出,只适合轻量级网络交互如数据传输小,不适合大文件上传下载场景。优点API设计简洁易用注

2020-10-24 17:20:39 246

原创 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 3566

原创 Flutter技术与实战(6)

Flutter综合应用文章目录Flutter综合应用线上出现问题,该如何做好异常捕获和信息采集Flutter异常App异常的捕获方式FrameWork异常的捕获方式异常上报Dart接口实现iOS接口实现Android接口实现总结衡量FLutter App线上质量,需要关注三个指标页面异常率页面帧率页面加载时长组件化和平台化,如何组织合理稳定的Flutter工程结构组件化组件化的具体实施步骤平台化如果下层组件确实需要调用上层组件的代码怎么办?如何构建高效的Flutter App打包环境Travis CI如何

2020-09-14 08:47:07 538

原创 Flutter技术与实战(5)

Flutter进阶文章目录Flutter进阶如何构造炫酷的动画效果Animation、AnimationController与ListenerAnimationWidget与AnimationBuilderhero动画单线程模型怎么保证UI运行流畅Event Loop机制异步任务异步函数IsolateHTTP网络编程与JSON解析HTTP网络编程HttpClienthttpdioJSON解析如何解析补充本地存储与数据库的使用与优化文件SharedPreference数据库如何在Dart层兼容Android

2020-09-13 18:40:45 1847 1

原创 Flutter技术与实战(4)

Flutter基础文章目录Flutter基础Widget,构建Flutter界面的基石。Widget渲染过程WidgetElementRenderObjectRenderObjectWidget 介绍案例展示Widget中的State到底是什么UI编程范式StateLessWidgetStatefulWidgetStatefulWidget 不是万金油,要慎用生命周期State生命周期创建更新销毁App生命周期生命周期回调帧绘制回调经典控件(一):文本、图片和按钮文本控件图片按钮经典控件(二):ListV

2020-08-10 23:45:43 1171 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 407

原创 Flutter技术与实战(2)

Flutter开发起步深入理解跨平台方案的历史发展逻辑跨平台开发是为了增加业务代码的复用率,减少因为要适配多个平台带来的工作量,从而降低开发成本。跨平台方案的三个时代根据实现方式的不同,业内常见的观点是将主流的跨平台方案划分为三个时代。Web 容器时代:基于 Web 相关技术通过浏览器组件来实现界面及功能,典型的框架包括 Cordova(PhoneGap)、Ionic 和微信小程序。一个完整 HTML5 页面的展示要经历浏览器控件的加载、解析和渲染三大过程,性能消耗要比原生开发增加 N 个

2020-08-08 13:04:36 201

原创 Flutter技术与实战(1)

课前必读为什么每一位大前端从业者都应该学习FlutterFlutter开辟了全新的思路,提供了一整套从底层渲染逻辑到上层开发语言的完整解决方案:视图渲染完全闭环在其框架内部,不依赖于底层操作系统提供的任何组件,从根本上保证了视图渲染在 Android 和 iOS 上的高度一致性;Flutter 的开发语言 Dart,是 Google 专门为(大)前端开发量身打造的专属语言,借助于先进的工具链和编译器,成为了少数同时支持 JIT 和 AOT 的语言之一,开发期调试效率高,发布期运行速度快、执行性能好,在

2020-08-08 12:15:22 227

原创 Android动画系列(2)—补间动画

首语这是Android动画系列的目录,有兴趣的可以学习:Android动画。补间动画补间动画指的是做FLASH动画时,在两个关键帧中间需要做“补间动画”,才能实现图画的运动;插入补间动画后两个关键帧之间的插补帧是由计算机自动运算而得到的。实际上,Android 的补间动画也是由我们指定动画开始、动画结束2个关键点,中间部分的动画由系统完成。补间动画又叫View动画。上一章的帧动画和补间动画都属于视图动画。View动画的作用对象是View,它支持四种动画效果,分别为平移动画、缩放动画、旋转

2020-06-30 20:47:36 331

原创 面试整理

首语本人大四学生一枚,从去年8月份开始准备面试,开启找工作的历程,直至现在,也算是尘埃落定了。本着学习总结的态度,将面试的部分公司的面试进行整理,提升自己。

2020-06-05 16:00:37 525

可自定义的语音合成工具

可以将输入的内容转换为语音mp3文件,同时支持音色、音量、语速等设置。

2021-08-13

FrameDemo.zip

Android框架模式MVC,MVP,MVVM代码演示,通过该项目让我们理解各框架的实现方法以及含义,以方便在今后开发中可以更好选择框架。

2020-03-23

使用Python绘制小猪佩琪.py

使用Python语言绘制一个小猪佩奇,代码注释详细,可根据个人需求设置画笔速度和颜色。同时也可对Python语言绘制api掌握的更加熟悉。

2020-03-20

Everything.zip

“Everything”是一个运行于Windows系统,基于文件、文件夹名称的快速搜索引擎。 “Everything”在搜索之前就会把所用的文件和文件夹都列出来,这一点与Windows自带的搜索系统不一样,所以我们称之为“Everything”。

2020-03-20

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除