一、基本概念 1.1 内存模型 在程序的执行过程中,涉及到两个方面:指令的执行和数据的读写。其中指令的执行通过处理器来完成,而数据的读写则要依赖于系统内存,但是处理器的执行速度要远大于内存数据的读写,因此在处理器中加入了…
标签:Android
Android 基于 glide 4.0 封装图片加载库
本篇文章已授权为微信公众号 code小生 发布 前言 最近项目在做性能优化,之前项目的图片加载用的是 Android-Universal-Image-Loader,相信大家对于这个老牌的图片加载框架应该都很熟悉。但由于该…
插件化-解决插件资源ID与宿主资源ID冲突的问题
前面分析了VirtualApk支持插件中的4大组件运行的原理。本文就来讨论一下如何解决插件资源id和宿主资源id冲突的问题。 本文会涉及到Andoird资源的编译和打包原理。因此对这方面的知识最好有一定的了解。可以参考老…
Glide缓存机制
前言 本文基于Glide v3.7.0源码分析,Glide v4.0大致流程和v3.7.0差不多,在一些技术细节上有修改。主要内容有: 内存缓存读取 内存缓存写入 缓存引用计数 硬盘缓存读取 硬盘缓存写入 内存缓存读取 …
大厂Android面试题汇总(一)JAVA基础
java中==和equals和hashCode的区别 基本数据类型:“==”比较的是其值 类:“==”比较数据内存地址是否相同 “equals”是Object方法,在子类未重写方法时 public boolean equ…
面试经历和面试题1
今天去朝阳门附近一家叫“阳光互信”的公司面试了,这是阳光保险下面的一家子公司。进到他们工作区,感觉氛围和环境还不错,所以我当时就有不好的预感,他妈的我又要打酱油了。最近面试都面出心理阴影了,感觉稍微好一点的公司我都无缘,…
Android源码解析 --- LayoutParams以及ViewTree的生成
在分析ViewTree的生成之前,我们先来看下LayoutParams。LayoutParams翻译为“布局参数”,一般情况下,我们在代码中动态设置View的宽高或者Margin的时候会用到它,如下所示: TextVie…
Kotlin for android学习二:属性(property)与域(field)
前言 kotlin官网 (中文版)和kotlin教程学习教程的笔记。 Kotlin中的属性声明必须要有初始化的值 1. get与set var count: Int? = 0 get set val isEmpty: B…
[Espresso 4 Android Doc] 2. Espresso 设置说明
声明:本系列文章是对 Android Testing Support Library官方文档的翻译,水平有限,欢迎批评指正。 1. Espresso 概览 2. Espresso 设置说明 3. Espresso 基础 …
ConstraintLayout之ConstraintSet
自从用了ConstraintLayout,发现布局写法又升华了,嵌套减少了,层次更清晰了。 在ConstraintLayout出来之前,就是在LinearLayout、RelativeLayout时代,如果想要在代码中动…
关于安卓逆向你需要知道的工具及网站
把最近接触到的安卓逆向相关的工具和网站总结下,供需要者拿去使用,还有不全和遗漏后续会不断完善。 工具篇章 模拟器(动态调试需要用真机) 安卓原生模拟器:AS自带的 夜神:今天开始尝试这个模拟器,发现在ida挂载进程时出现…
课程7.0之Java当中的异常
转发请注明出处: 安卓猴的博客(http://sunjiajia.com) 本节课程将学习以下内容: 什么是异常 异常的分类 try…catch…finally结构的使用方法 throw的作用 t…