10 ☆^大勇^☆

尚未进行身份认证

捣鼓android framework,精通Android资源管理、Binder机制、AMS中广播处理模块;对ams、pms、系统性能优化以及动态加载、热修复等新技术有一定的涉猎

等级
TA的排名 21w+

Android资源管理框架-------之AssetManager2总述(一)

        Android对于资源管理这个模块的折腾从Android-Lollipop开始就从未停止过:Android-Lollipop引入了Runtime Resources Overlay,但是bug比较多,多得根本不能用;Android-Marshmallow算是修正了这些bug,Runtime Resour...

2020-01-04 19:41:43

Android资源管理框架-------之资源的缓存和preload(十)

        对于integer、bool等values类型的资源还好,对于比较大的资源比如Drawable等,如果我们每次去获取,都要从resources.arsc中查寻资源相关的信息(对于Drawable来说就是资源路径),然后在根据资源信息(路径)去加载图片,那么这个过程将会非常耗时。所以,为了加快资源的获取速...

2019-12-04 13:57:52

Android资源管理框架-------之资源配置信息的更新(九)

        

2019-11-24 18:17:09

Android资源管理框架-------之资源的筛选(八)

        我们知道Android资源管理框架的一个重要作用就是为Android应用兼容不同的软硬环境。具体到实现上,就是每一个Android应用要想兼容某种场景,就要为这种场景提供特定的资源。比如,我们在App中想要兼容中文、德文、韩文,那么我们就可以在app中分别提供这三种语言的资源,也就是在...

2019-11-21 20:56:12

Android资源管理框架-------之Bag资源信息的获取(七)

        前文我们以Integer为例介绍了最简单的资源的获取,说它是最简单的主要是基于以下两个点:第一,它没有Bag;第二,它是value类型的资源,资源索引表里存放的是最终值,而不是资源路径等资源相关的信息,我们不需要再根据这些信息去取得最终值(比如去加载图片,然后创建drawable对象等等)。我们在这篇文...

2019-11-06 11:50:24

Android资源管理框架-------之最简单的资源信息的获取(六)

        前文我们说过了Android资源索引表,也就是resources.arsc是如何一步一步加载到内存,然后保存在资源管理相关的数据结构中的。本文,我们说说,当我们去访问资源相关的信息时,Android是如何一步一步把结果从这些数据结构中提取出来,返回给我们的。...

2019-10-14 19:32:02

Android资源管理框架-------之资源信息的加载(五)

        在Android资源管理框架-------之Android中的资源包(二)一文中,我们讲了Android对资源包的管理,当然这个管理我们说得比较宏观。在了解了Android资源管理相关的一些数据结构后,我们就可以深入地学习Android对资源包的管理和组织了,本篇我们先说资源的加载。 &nb...

2019-10-11 18:41:18

Android资源管理框架-------之资源管理的基本数据结构和Bag资源(四)

        上一篇我们介绍了resources.arsc以及与之相关的主要数据结构,这些数据结构大多以ResTable_开头,主要是用来描述resources.arsc非常方便。不过,要用这些数据结构来对Android资源进行管理,还是有些吃力,Android为了更加方便地管理资源,还有另外一套数据结构,它们主要是...

2019-09-09 18:56:40

Android资源管理框架-------之resources.arsc(三)

        上一篇我们介绍了Android中资源包相关的东西以及Framework是怎么一步步加载system和应用的资源包的,但是我们的介绍到java层的AssetManager就中止了,没有继续深入,原因是继续深入的话,主要就涉及到ResTable相关的东西了,而ResTable对Android资源的管理,非常...

2019-09-04 11:16:05

Android资源管理框架-------之Android中的资源包(二)

        我们知道一个APK中主要包含了dex字节码、AndroidManifest.xml、res目录下的各种资源、以及resources.arsc等等,也就是说一般情况下我们的一个APK既是一个dex包,也是一个资源包。注意我们前面说的是一般情况下,既然有一般,那么肯定也就有二般~ ~。典型的二般情况有种:资...

2019-09-02 21:55:27

Android资源管理框架-------之总述(一)

        我们知道对于一个APK而言,主要就两部分:DEX字节码和资源。其中,为了让开发者在不同的环境下更加方便地管理和使用资源,Android专门提供了一套资源管理的框架。关于Android的资源,我们在Android资源管理概述中有过简单描述,网上也有大量介绍,我们就不再赘述。 本篇,我们先介绍一下这个框架(...

2019-08-29 22:20:08

关于方舟编译器的一些猜想和疑问

        关于方舟编译器和鸿蒙OS,有一些疑问:方舟编译器支持多语言统一编译,这个听起来很新鲜,不过用过clang的同学应该对llvm都不陌生吧?一个框架+多个编译器前端+多个编译器后端,这是llvm的基本架构。多个前端用于对不同语言的支持,将不同语言编译为统一的中间代码;多个编译器后端,用于将这些统一的中...

2019-08-16 21:52:21

Android资源管理中的Theme和Style-------之实现(二)

        前文我们从总体上介绍了theme和style,我们要注意theme和style的本质,以及它们和AssetManager(或者说Android中的资源)的区别和联系。本文我们详细介绍theme和style的创建、appy以及解析。theme和style的创建   &nb...

2019-08-07 13:35:53

Android资源管理中的Theme和Style-------之总述(一)

        我们知道Android的每个View都会有许多不同的属性,同样的一个View,我们给它的属性赋予不同的值,这个View就会有不同的效果。甚至可以说,Android的界面编程,很大程度上就是给不同的View属性赋值的过程。我们通过改变View的属性值,来改变一个View的形态。比如我们通过改变layout...

2019-08-02 13:54:40

Android资源管理中的Runtime Resources Overlay-------之overlay包的生效(五)

        前文我们介绍了overlay package和idmap文件是怎么加载到AsseetManager中的。本文主要分析当AssetManager加载完target package和overlay package后,我们在java文件中或者xml文件里访问这些资源时,AssetManager是如何处理的。...

2019-07-23 19:19:01

Android资源管理中的Runtime Resources Overlay-------之overlay包的加载(四)

        前文我们介绍了idmap文件的生成过程,剩下来的就是overlay package和idmap的加载和生效了。overlay package和idmap文件的加载        我们在Android资源管理中的Runti...

2019-07-19 23:36:46

Android资源管理中的Runtime Resources Overlay-------之AssetManager的处理(三)

        上一篇我们讲过了system_server、installd以及idmap,但是还是没有看到idmap文件到底使如何生成的。今天我们将会介绍AssetManager的处理,idmap文件的内容最终就是在这里产生的,不过它的主要逻辑在ResourceTypes.cpp里面。作为铺垫,我们先简单说下Asse...

2019-07-18 22:52:15

Android资源管理中的Runtime Resources Overlay-------之PMS、installd和idmap的处理(二)

前面我们对RRO(Runtime Resources Overlay)

2019-07-17 19:01:40

Android资源管理中的Runtime Resources Overlay-------之概述(一)

引言 跨进程通信(IPC)是我们在编写程序时经常遇到的情况,Android平台也给我们提供了许多IPC手段:比如基于binder的广播、AIDL、远程服务等等,基于存储器的sharedPreference、ContentProvider等。不过,Android是基于Linux的,linux本身的IPC手段自然也照样适用,比如socket、管道、内存映射等等。其中,内存映...

2019-07-16 20:10:37

Android资源管理中的SharedLibrary和Dynamic Reference-------之AssetManager的处理(四)

我们先简要说一下AssetManager的一些常识,后面会有文章详谈。 首先,AssetManager在构造的时候,会把系统资源包也就是framework-res.apk加载进去,这里所谓的加载,就是创建ResTable这个类的对象mResources,打开这个资源缩包,然后把里面的resources.arsc读到内存中去,然后解析,把对应的数据填入到mResour...

2019-07-14 14:14:52

查看更多

勋章 我的勋章
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。