Android知识库
文章平均质量分 82
Android知识库 GO
会飞的代码UP
自强不息,厚德载物。
展开
-
【FLY】Android JNI流程
Android JNI流程原创 2022-12-16 09:42:03 · 973 阅读 · 1 评论 -
【FLY】Android IO性能优化
Android IO性能优化原创 2022-09-13 10:34:53 · 1459 阅读 · 0 评论 -
【FLY】Android Car Framework
Android Car Framework原创 2022-09-07 16:34:32 · 2035 阅读 · 0 评论 -
【FLY】Android(12)源码目录结构
Android(12)源码目录结构原创 2022-09-05 15:27:44 · 2875 阅读 · 0 评论 -
【FLY】Android内存性能优化
Android内存性能优化原创 2022-08-17 11:49:31 · 1550 阅读 · 0 评论 -
【FLY】Android CPU性能优化
Android CPU性能优化原创 2022-08-11 09:07:48 · 4111 阅读 · 0 评论 -
【Android】Android Support库介绍
文章目录一、简介二、应用组件1、Activity2、Fragment3、ContextCompat4、IntentCompat5、Loader6、Preference7、ContentResolverCompat三、界面1、RecyclerView2、ViewPager3、GridLayout4、PercentFrameLayout5、PercentRelativeLayout6、DrawerLayout7、SlidingPaneLayout8、NestedScrollView9、SwipeRefreshL原创 2020-07-14 10:25:30 · 3251 阅读 · 0 评论 -
【Android】Android 11(R) 新特性解读
文章目录一、隐私权1、分区存储强制执行2、一次性权限3、自动重设权限4、后台位置信息访问权限5、软件包可见性6、前台服务类型二、新体验1、设备控件2、媒体控件3、屏幕4、会话5、5G图标显示三、安全1、生物识别身份验证机制更新2、安全共享大型数据集四、性能和质量1、无线调试2、ADB增量APK安装3、使用原生内存分配器进行错误检测4、Neural Networks API 1.35、文本和输入6、媒体7、网络连接8、图形9、图片和相机10、无障碍功能五、其它1、应用进程退出原因2、资源加载器3、APK签名方原创 2020-07-01 10:16:38 · 4812 阅读 · 0 评论 -
【Android】Android Dalvik&JVM
文章目录1、JVM1)特点2)字节码3)Java代码运行流程4)类加载器分类5)类加载器特点6)类加载步骤7)运行时数据区8)执行引擎9)GC原理10)引用类型11)JVM结构2、Dalvik3、ART1、JVMJVM,Java虚拟机,是Java运行时环境JRE的核心组成部分,这也是Java跨平台的基础,将Java字节码在虚拟机中执行。1)特点基于栈而不是基于寄存器;基本数据类型外的其它数...原创 2019-05-08 18:41:45 · 1280 阅读 · 1 评论 -
【Android】Android Input
文章目录1、简介2、input命令3、hardware相关的java代码4、jni5、service相关的java代码6、libinputservice7、libandroid8、libinput9、InputFlinger10、evdev11、te1、简介本文简要介绍Android Input系统的目录结构,详细说明可参考:https://blog.csdn.net/iEearth/arti...原创 2019-05-08 18:34:28 · 1243 阅读 · 0 评论 -
【Android】Android 线程&进程模型
文章目录1、Java线程1)线程与进程2)并发与并行3)线程同步4)线程状态5)Thread2、runOnUiThread3、AsyncTask4、Handler5、进程6、Binder1、Java线程在介绍Android的线程、进程模型之前,首先看一下Java线程相关的内容。1)线程与进程线程和进程是对操作系统中程序执行、资源分配的一种抽象,进程有独立的地址空间,线程附属于进程并共享进程...原创 2019-05-07 20:07:52 · 525 阅读 · 0 评论 -
【Android】Android JNI
文章目录1、简介1)java调用native接口2)native调用java接口2、jni.h1)基本类型2)C++中的非基本类型3)C中的非基本类型4)变量field与函数method5)函数签名6)引用类型7)一个很重要的函数结构8)两个很重要的数据类型:JNIEnv和JavaVM,C和C++的实现不同。9)其它3、jni原理4、Android jni5、AndroidRuntime1、简介...原创 2019-05-06 18:45:53 · 889 阅读 · 0 评论 -
【Android】图文解密Android AIDL
文章目录1、简介2、用法1)创建.aidl文件。2)实现接口3)公开接口4)实现客户端5)支持自定义类型6)服务端通知客户端3、aidl自动生成的java代码4、aidl流程1、简介AIDL是一种接口描述语言,用于进程间通信,有如下几个特点。1)AIDL用于多个客户端跨进程访问服务端,且服务端需要处理多线程的场合。否则,同一进程内的通信可以使用Binder,跨进程的通信可以使用Message...原创 2019-04-26 19:25:33 · 796 阅读 · 0 评论 -
【Android】图文解密Android WallpaperManagerService
文章目录1、简介2、壁纸相关类3、壁纸相关文件4、默认壁纸5、壁纸设置6、动态壁纸7、壁纸设置流程1、简介WallpaperManagerService,下面简称WPMS,是Android中与壁纸相关的一个服务,下图是WPMS的启动流程。1)WPMS在SystemServer中启动,属于Other Service。此外,还有Bootstrap Service和Core Service。An...原创 2019-04-24 20:08:29 · 3039 阅读 · 0 评论 -
【Android】图文解密Android Font
文章目录1、TextView1.1 Font Family1.2 Text Style1.3 Typeface1.4属性解析过程1.5 Typeface1.6 Font Matrix1.7 style&theme2、Font配置3、Font加载1、TextView在介绍Android Font之前,首先需要了解一下与Font相关的TextView的知识。TextView有许多属性,下面...原创 2019-04-17 19:48:19 · 2461 阅读 · 0 评论 -
【Android】图文解密Android Resource&Asset
【Android】图文解密Android Resource&Asset原创 2019-02-21 18:42:24 · 1082 阅读 · 0 评论 -
【Android】图文解密Android OverlayManagerService
【Android】图文解密Android OverlayManagerService原创 2019-02-18 20:00:40 · 3763 阅读 · 0 评论 -
【Android】图文解密Android PackageManagerService
【Android】图文解密Android PackageManagerService原创 2019-02-15 17:32:17 · 705 阅读 · 0 评论 -
【Android】图文解密Android InputManagerService
【Android】图文解密Android InputManagerService原创 2019-02-12 17:48:25 · 759 阅读 · 0 评论 -
【Android】图文解密Android ActivityManagerService
【Android】图文解密Android WindowManagerService原创 2019-02-03 12:00:55 · 411 阅读 · 0 评论 -
【Android】图文解密Android WindowManagerService
图文解密Android WindowManagerService原创 2019-02-01 13:12:10 · 1807 阅读 · 0 评论 -
【Android】图文解密Android View
TODO原创 2019-01-23 10:00:26 · 959 阅读 · 0 评论 -
【Android】Android java动态库、静态库的编译与使用
在Android的makefile编译系统中,编译结果是多种多样的,这个可以从build/make/core/config.mk中看出,部分代码如下所示:BUILD_HOST_STATIC_LIBRARY:= $(BUILD_SYSTEM)/host_static_library.mkBUILD_HOST_SHARED_LIBRARY:= $(BUILD_SYSTEM)/host_shared...原创 2018-11-30 19:27:43 · 4824 阅读 · 0 评论 -
【Android】玩转命令行工具-dumpsys
dumpsys是Android设备中的一个命令行工具,用来打印一些系统服务的信息,如input、ram、battery、network等。dumpsys默认会打印所有系统服务的信息,数据很多,所以一般要通过参数指定需要的信息。dumpsys的语法格式如下:adb shell dumpsys [-t timeout] [--help | -l | --skip services | servic...原创 2018-11-29 18:50:30 · 648 阅读 · 0 评论 -
【Android】玩转命令行工具-aapt2
aapt2即Android Asset Packaging Tool,是Android中的资源打包工具,另外还有个废弃的aapt。aapt2是Android API 26.0.2才出现的,在Android SDK中的位置为android_sdk/build-tools/version/aapt2。aapt2编译资源分为两步,第一步编译,分别编译每个资源为一个独立的二进制文件,文件后缀为.flat...原创 2018-11-29 16:15:33 · 3539 阅读 · 0 评论 -
【Android】玩转命令行工具-apkanalyzer
apkanalyzer,从名字就可以看出这是一个分析apk的工具,最简单的使用方法是在AndroidStudio中点击Build,然后选择Analyze APK...,本文介绍如何在命令行使用apkanalyzer。apkanalyzer在Android SDK中,位置为android_sdk/tools/bin/apkanalyzer。apkanalyzer的语法如下:apkanalyze...原创 2018-11-28 21:30:46 · 4652 阅读 · 0 评论 -
【Android】Android开机流程-从init到home
【Android】开机流程-从init到home1 概览2 流程1.1 init1.1.1 简介1.1.2 两个阶段1.1.3 init.rc功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功...原创 2018-11-27 15:14:51 · 1879 阅读 · 1 评论 -
【Android】图文解密Android SystemServer启动流程
1.SystemServerSystemServer是Android中一个很重要的系统服务,是连接Native与Java的桥梁,由Zygote进程fock而出。 SystemServer在启动过程中,启动了一些Service,这些Service根据时序及重要性分为Bootstrap、Core和Other三种类型。 SystemServer的启动流程如下图所示。 2.Phase...原创 2018-07-05 21:33:02 · 756 阅读 · 0 评论 -
【Bash百宝箱】玩转命令行-adb
adb即Android Debug Bridge,是Android的一个调试工具,可以与连接的Android设备或模拟器通信,如安装与调试程序、运行shell命令等。adb包括三个组件:开发环境中的用于发送命令的客户端、Android设备或模拟器中用于响应命令的后台程序、开发环境中的用于管理客户端和adb后台程序的服务端。adb可以在Android SDK的platform-tools目录下找...原创 2015-03-27 17:40:39 · 1287 阅读 · 0 评论 -
【Arch】Android系统简介
Google IO下面是Google IO的logo(IO是什么意思?网上有几个不同版本的解释)——Google IO是由Google举办的网络开发者大会,旨在讨论用Google和开放网络技术去开发网络应用。Google IO大会从2008年开始,在美国加州旧金山每年举行一次。2015年的Google IO大会重点发布了三大智能平台,包括移动端、可穿戴设备和物联网。移动端—— 全新的移动端平台An原创 2016-01-06 18:09:20 · 1511 阅读 · 0 评论 -
【Bash百宝箱】Android源码下载及编译
版本管理在分析Android源码之前,首先要了解一下相关的版本管理工具。Git工具是一种分布式的版本管理系统,最初被设计用于Linux内核的版本控制。Git功能强大,但也有之不便之处,Android中有许多项目,用git来统一管理就显得力不从心了,为此Google用Python开发了一套专门用来管理整个Android系统的工具repo。使用repo的基本流程——a. 使用repo init创建分支。原创 2016-01-08 19:09:43 · 1632 阅读 · 0 评论 -
【Bash百宝箱】Android编译系统(Makefile)
MakefileAndroid编译系统基于GNU make,用来管理Makefile,Makefile的基础知识可参考: http://blog.csdn.net/ieearth/article/details/47296429Makefile最一般的规则就是个依赖树,如下:target: prerequisites commandstarget是我们编译时要生成的目标,prerequis原创 2016-01-13 14:33:08 · 1896 阅读 · 0 评论 -
【C++】Android中的同步机制
在涉及多线程、多进程编程时,同步问题是不可避免的。在不同的操作系统或者项目中,都有自独特的同步手法,不过同步原理基本相同。在Android系统中,封装了几个同步类,下面来看一下这些同步类的源码是如何实现的。1、MutexMutex是个互斥锁,即MUTual EXclusion,对pthread的mutex进行了简单的封装,内部还有个嵌套类AutoLock,从名字上就可以看出这个类的功能是自动加锁解锁原创 2016-01-15 17:34:00 · 3683 阅读 · 0 评论 -
【Bash百宝箱】Android envsetup.sh及lunch
在Android开发环境中编译一个目标时,一般要执行下面三行命令:$ . build/envsetup.sh$ lunch <product_name>-<build_variant>$ make [module]这三行命令是什么意思呢?下面逐一介绍。1、envsetup.shenvsetup.sh是个shell脚本,位于build目录下,第一行命令便是执行这个脚本。执行脚本有多种方式,那为什么原创 2016-04-12 13:09:33 · 2200 阅读 · 0 评论 -
【Bash百宝箱】从Android.mk到Android.bp
最近更新了Android Nougat源码,无意间发现Android的编译系统已经发生了巨大改变,到处是“Android.bp”文件,下面就来看一下这个bp文件到底是何方神圣。首先从Soong说起,Soong是Android中对基于GNU make的编译系统的替代物,编译文件“Android.mk”被替换为“Android.bp”。bp文件的目的就是一切从简,格式类似于JSON,像mk文件的条件控制原创 2017-01-24 14:01:15 · 26263 阅读 · 2 评论 -
【Android】Android SurfaceFlinger之OpenGL ES
1、OpenGL ES在Android系统中,直接面向终端用户的便是GUI,可以说任何一款产品的UI都是至关重要的,是用户可以实实在在感受到的东西,是最直观的、最易被感知的东西。SurfaceFlinger作为Android GUI系统的核心模块,与OpenGL ES息息相关,所以在分析SurfaceFlinger之前有必要先了解一下OpenGL ES。OpenGL即Open Graphics Li原创 2017-01-25 15:24:07 · 5266 阅读 · 1 评论 -
【Android】Android SurfaceFlinger之OpenGL库加载过程
1、egl_init_driversAndroid中OpenGL库加载从egl_init_drivers函数开始,源码位置在frameworks/native/opengl/libs/EGL/egl.cpp。static pthread_mutex_t sInitDriverMutex = PTHREAD_MUTEX_INITIALIZER;EGLBoolean egl_init_drivers()原创 2017-02-17 18:04:09 · 2858 阅读 · 1 评论 -
【Android】Android SurfaceFlinger之Gralloc
1、SurfaceFlinger模块Android中SurfaceFlinger与其它模块的关系图如下所示:上图中,最底层的是Linux内核提供的framebuffer显示驱动,设备节点为/dev/graphics/fb*或/dev/fb*,其中fb0表示第一个monitor。HAL层提供了Gralloc和Composer,其中Gralloc包括fb和gralloc两个设备,fb负责打开内核中的fr原创 2017-02-23 20:50:33 · 4313 阅读 · 0 评论 -
【Android】Android SurfaceFlinger之NativeWindow
1、EGLNativeWindowTypeAndroid的GUI构建于OpenGL ES,对于2D图形来说还可以使用Skia库(https://skia.org/)。在OpenGL ES与底层的framebuffer之间,还有一层Native介质,如NativeWindow、NativeDisplay和NativePixmap,这里讨论NativeWindow。OpenGL ES是跨平台的,为了适配原创 2017-02-28 21:07:25 · 6162 阅读 · 4 评论 -
【Android】Android SurfaceFlinger之BufferQueue
在Android中,BufferQueue是Surface实现本地窗口的关键,驻留在SurfaceFlinger进程中进行服务,下面从BufferQueue的结构开始分析。1、BufferQueue模式BufferQueue相关的源码在frameworks/native/libs/gui/,涉及以下几个重要的数据结构:class BufferQueue;class BufferQueueCore;原创 2017-03-08 20:54:51 · 8304 阅读 · 1 评论