2 yangyang_cug

尚未进行身份认证

Android 专注 framework 服务 优化

等级
TA的排名 6w+

相关链接

https://duanqz.github.io/#Android%E5%90%AF%E6%99%BA%E8%A7%82 文章https://me.csdn.net/rayleeya 系统稳定性http://androidxref.com/ 源码地址https://a.codekk.com/ 开源项目https://www.androiddevtools.cn/index.html 工具...

2020-03-20 19:45:29

Android图形系统简介

Android的图形系统整体上采用C/S架构,客户端Activity与服务器端Windows Manager Service通过binder通信机制进行通信。View及DecorView是基本的UI单元,客户端的绘图操作都是在View上进行的,可以认为view是对window概念的进一步封装。Android系统里弱化了window的概念RootView是负责与服务器侧窗口管理器打交道的东东,主...

2020-03-13 12:52:49

Surfacefinger—threadLoop主循环

1 Surfaceflinger线程Surfaceflinger是一个类,同时又是线程,该线程通过循环,不断计算并刷新当前屏幕需要的显示内容。Surfaceflinger线程属于SystemServer进程,也就是在SystemServer进程中启动了Surfaceflinger线程。Surfaceflinger中保存着各种layer,其主要工作就是负责各种layer的融合,因此可看做一个用于...

2020-03-13 11:22:54

Skia整体架构及窗口绘制

【摘要】本文主要介绍了Skia整体架构以及Android上的典型应用Activity的显示流程,并在此基础上总结了androidf绘制的一般流程。【关键词】android, skia, surface, surfaceflinger, activity一、什么是SkiaSkia 是 Google一个底层的图形、图像、动画、SVG、文本等多方面的图形库,是 Android 中图形系统的引擎...

2020-03-13 11:12:21

Skia源代码目录结构

使用vs编译所有的skia 文件 ,然后会得到大概3500条错误消息。这很可能 是某些宏定义不正确,或者某些编译开关没有正确设置 ,或者某些接口没有实现等。但编译器给出的错误消息往往对解决问题没有帮助,编译器给出的绝大部分错误 都是不可能出错的地方,标准的C++语法。于是只能先看一下SKIA的结构。使用svn从http://code.google.com/p/skia/ 下载最新的代码,没有任何...

2020-03-13 11:05:06

Dalvik内存管理

1GC简介一般来说,程序使用内存的方式遵循先向操作系统申请一块内存,使用内存,使用完毕之后释放内存归还给操作系统。然而在传统的C/C++等要求显式释放内存的编程语言中,记得在合适的时候释放内存是一个很有难度的工作,因此Java等编程语言都提供了基于垃圾回收算法的内存管理机制。垃圾回收器Garbage Collector(简称Collector)和垃圾回收Garbage Collection(简...

2020-03-12 14:10:28

应用程序卸载流程分析

此文档目的在于梳理卸载流程,便于以后快速定位,优化速度。Android应用卸载的流程比安装流程相对简单,有三种卸载的方式:1.通过桌面长按删除2.设置-》应用管理,删除3.第三方应用市场删除这知识删除的入口不同,但是删除的过程却一样,主要分为以下四个步骤:1.从PMS的内部结构上删除acitivity、service、provider等信息2.删除code、library和resou...

2020-03-12 13:07:09

应用程序安装流程分析

在android系统中应用程序的安装方式分为三类:1、从应用市场安装;2、手动点击安装;3、通过adb安装。这三种方式的安装流程是一样的,只不过入口不同,本文已第二种方式手动点击安装为例,详细介绍整个APK安装的过程,旨在加深对这个模块的学习以及方便以后快速定位问题。Android应用安装有如下四种方式:1)系统应用开机安装――开机时完成,没有安装界面2)网络下载应用自动安装――通过mar...

2020-03-12 13:02:57

性能问题分析总结

分析方法当前性能问题主要是性能测试case、用户反馈问题。性能测试case一般排除掉测试环境、测试手法等差异后还存在问题,则一般是必现问题,可以抓取systrace、bugreport进行分析;对于用户反馈问题,一般用户只能提供bugreport,如果是必现问题则可以抓取systrace有足够的信息进行分析,如果是非必现问题,则需要从bugreport中分析,找到足够多的信息进行分析。bugr...

2020-03-12 12:20:21

Android浏览器图形侧多窗口方案

Android平台浏览器当前多窗口方案为多个浏览器子窗口公用一个图形buffer,窗口的z序和显示控制由浏览器进程维护,图形侧只能看到一个窗口。该方案能基本实现浏览器多窗口的大部分需求。但无法实现linux机顶盒中存在的部分窗口交叉的业务场景,即在浏览器多个窗口间交叉存在其他应用窗口(图1)。4设计思路4.1Android和其他系统(Qt/Windows)窗口概念的差异1.进程、窗口、生命周...

2020-03-12 12:11:28

Android 的 GUI 系统

echo $BOOTCLASSPATH 第一部分 Android GUI 系统综述 第二部分 pixelflinger 和 libui 库  第三部分 Surface 系统 第五部分 Skia 系统 第六部分 OpenGL 系统架构第一部分 Android GUI 系统综述libpixelflingerSurfaceFlingerlibuiOverlay Camera ...

2020-03-12 12:02:33

SD卡锁

功能:设置-安全-SD卡锁packages/apps/Settings/src/com/android/settings/SecuritySettings.java在SecuritySettings的handlePreferenceTreeClicked方法中A packages/apps/Settings/res/xml/security_settings_sdcard_choose...

2020-03-12 11:18:34

图库隐私模式实现分析

1 总体结构隐私模式是的对用户私有数据进行保护的新功能。隐私模式下,用户可以将图库中的相册设置为隐私相册(当然也可以取消),前提是开启此功能时用户需要设置两套锁屏密码,机主模式密码和访客模式密码。当在锁屏界面输入机主模式密码进入系统时,系统以机主模式运行,此模式下的图库中所有相册可见;反之,若在锁屏界面以访客模式密码进入系统时,系统会以访客模式运行,图库中的隐私相册不可见。下图是隐私模式相关的层...

2020-03-12 11:15:33

Android中的壁纸

Android中的壁纸均是一个服务常驻内存,其他应用只是在其上层显示。如果应用是透明的则可以显示出壁纸,如:锁屏、Launcher等应用。静态壁纸的服务在SystemUI中即com.android.systemui:wallpaper,可以通过修改SystemUI的AndroidManifest.xml中ImageWallpaper的android:process值来令其是否在进程中单独显示出来。...

2020-03-12 10:59:08

Activity窗口及视图的创建

Activity是Android应用程序的载体,允许用户在其上创建一个用户界面,并提供用户处理事件的API。但它并不是显示视图,实际上Activity调用了PhoneWindow的setContentView()方法,然后加载视图,将视图放到这个Window上,而Activity其实创建的时候初始化的是Window(PhoneWindow)。Activity其实是个控制单元,即可视的人机交互界面。...

2020-03-12 10:31:26

SEAndroid系统分析

1.前言SEAndroid是Security-Enhanced Android的缩写,是指将一直在Linux操作系统中使用的MAC强制存取控管套件SELinux移植到Android平台上,以达到强化Android操作系统对APP的存取控管的目的,这样可以建立一个类似于沙箱的执行隔离效果,以确保每一个APP之间的独立运作,并阻止恶意APP对系统或其他应用程序的攻击。2.SEAndroid概述在...

2020-03-12 09:49:34

MTP 服务流程

一、MTP简介MTP,全称是Media Transfer Protocol(媒体传输协议)。它是微软的一个为计算机和便携式设备之间传输图像、音乐等所定制的协议。Android从3.0开始支持MTP。MTP的应用分两种角色,一个是作为Initiator,另一个作为Responder。以"Android平板电脑"连接"PC"为例,他们的关系如图1-01所示。Initiator —— 在MTP中所...

2020-03-11 18:54:05

Android 通过MTP拷贝音乐文件流程分析

1 read()根据MTP启动流程中分析可知: MTP启动后,MtpServer.cpp中的MtpServer::run()会通过read()不断地从"/dev/mtp_usb"中读取出"PC发来的消息"。2 handleRequest()read()在读取到PC来的消息之后,会交给MtpServer::handleRequest()进行处理。"PC读取文件内容"的消息的ID是MTP_OPE...

2020-03-11 18:38:35

Android mountService分析

1存储设备管理框架简介Vold、MountService、Kernel关系图:MountService:主要监听Vold和应用发送来的请求,并进行一些业务逻辑处理Vold:守护进程,主要监听Kernel和MountService发送的请求,一方面负责接受内核发送的关于外部存储设备加载和删除的消息,然后将信息发送给framework层的MountService;另一方面负责执行MountSer...

2020-03-11 18:34:22

Activity启动流程学习经验总结

1Launcher快捷图标启动应用程序假设应用程序根Activity为MainActivity。代码流程如下:Launcher. startActivitySafely->Activity.startActivity->startActivityForResult->Instrumentation.execStartActivity->ActivityManager...

2020-03-11 18:12:48

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。