7.Android
文章平均质量分 69
记录一些Android相关的知识纪要
@Chenhan
这个作者很懒,什么都没留下…
展开
-
HashMap提升版SparseArray,进阶版ArrayMap
前面提到HashMap在使用过程中会有浪费内存的问题,为了解决这个问题呢,谷歌官方提供了新的数据结构-SparseArray。这个数据结构从字面上理解呢,就是稀疏数组或者说稀疏阵列。那我们就重点分析下SparseArray是如何节省内存的吧。进入源码可以看到SparseArray的源码不是很长,然后映入眼帘的是几个成员变量: private static final Object DELETED = new Object(); //标识符,标记删除的元素 private boolea原创 2021-04-11 17:56:00 · 197 阅读 · 1 评论 -
化整为零 -- Android 插件化 (概述)
记得前几年在前一家公司上班,我们做项目的时候经常会报65535的问题,这是个很出名的问题,我记得那时候很多人外面面试的时候都会问到如何解决65535的问题,那首先了解下这是个什么问题。在我们平时开发的Android 应用,一个app所遇到的代码都打包在一个dex文件里,这个dex文件是一个类似于Jar包那样的存储了很多有Java编译字节码的归档文件。我们平时app启动的时候,第一次加载dex文件时是执行DexOpt对dex文件进行加载优化,这时会把每一个类中方法的id进行检索存储在一个链表中,问题就出在原创 2020-12-13 15:18:03 · 363 阅读 · 0 评论 -
用Androidstudio生成SO包
最近项目有个需求,里面需要自己生成so包,但是以前一直没有接触过,今天尝试着自己弄了一个,防止以后忘记了,写个文章记录下来相关步骤:首先,so包会涉及到jni的内容,我们要记得配置NDK,下载好NDK之后,我们开始创建项目,这里比较重要的一步是,我们创建项目的时候要选择C++,如下图:然后把前面下载的NDK配置到项目中:检查下这里是否有配置好:准备工作完成,开始操练:先创建然后在终端中命令进入MyJni.class所在的java目录下:右键复制MyJni类原创 2020-10-04 18:25:30 · 1014 阅读 · 0 评论 -
Java中的大魔王JVM -- 内存管理
上一篇文章跟大家聊过了JVM将class文件加载到内存的过程,那进了内存里面具体是怎么工作的,那今天继续了解下运行时数据区的原理。网上有个图来描述运行时数据区的内存分配,我觉得挺好的,贴来分享给大家...原创 2020-08-09 10:14:41 · 263 阅读 · 0 评论 -
Java中的大魔王JVM -- 类加载
这两天准备了点JVM的一些知识,拿来聊一聊吧。首先国际惯例介绍下JVM(Java Virtual Machine) Java虚拟机。内容包括一套字节码指令集、一组程序寄存器、一个虚拟机栈、一个虚拟机堆、一个方法区和一个垃圾回收器。我们平时说Java语言跨平台运行,主要就是靠这JVM,平时写完代码运行的过程,就是代码文件经过虚拟机编译成相应的.class字节码文件,然后经过解释器翻译成不同平台(操作系统)可以解析的语言调用本地方法库,然后进行执行。虚拟机的实例随着进程的开始而开始,有多个进程启动就会创建多原创 2020-08-07 11:10:49 · 372 阅读 · 0 评论 -
记一次简洁而优雅的网络请求分析--Retrofit
前面我们已经分析过了OkHttp网络请求框架的源码,今天继续聊聊一个新的框架,Retrofit。如果还没看过OkHttp框架的源码分析,点击这里(OkHttp源码解析)查看,有助于对今天内容的了解。国际惯例,先了解下框架的功能和特点:Retrofit是Square公司基于OkHttp开发的对网络请求接口进行封装的开源框架。框架中采用大量的注解,很大程度上简化了网络请求的代码,而且解耦性很强,现广泛使用于移动端和Java后端。那我们就从简单的使用开始把:首先,就是添加依赖和添加网络权限:im原创 2020-07-31 20:36:27 · 204 阅读 · 0 评论 -
千里之外,取其SJ(数据)-- 网络请求之okhttp
今天想聊聊网络请求框架,谈到网络框架,不得不聊聊okhttp。okhttp开发者是square公司,作为一个Android开发者,对此框架肯定不会陌生,该网络请求框架的优点有很多:1、支持HTTP2.x,允许所有同一个主机地址的请求共享一个socket连接;2、使用连接池减少请求延时;3、使用GZIP压缩减少响应数据的大小;4、缓存机制,避免一些重复的请求;5、自动重连和重定向。不管我们是直接使用okhttp还是使用基于okhhtp开发的Retrofit,都很有必要搞清楚okhttp的原理。那我们从一个原创 2020-07-25 15:47:02 · 284 阅读 · 0 评论 -
千里之外,取其SJ(数据)-- 网络请求之HTTP和HTTPS
谈到网络,必然离不开Http和Https先简单了解下Http吧HTTP协议(Hyper Text Transfer Protocol,超文本传输协议),用于从服务器传输超文本到本地浏览器的传送协议。工作于C/S架构,浏览器作为HTTP客户端通过URL向HTTP服务端服务器发送请求,web服务器根据接收到的请求,向客户端发送响应信息。HTTP工作于应用层,传输的数据单位是报文,分为请求报文和响应报文。...原创 2020-07-22 16:13:15 · 498 阅读 · 0 评论 -
千里之外,取其SJ(数据)-- 网络请求之网络基础
这么多年来,网络请求一直是一个app的重头戏,毕竟没了网络,app就成了单机版的了,今天想聊聊我们的老朋友okhttp。那首先,我们先补充复习一些基础知识:1、OSI模型原创 2020-07-21 16:14:11 · 229 阅读 · 0 评论 -
万能粘合剂,Android进程间通信--Binder
夏天到了,蚊虫又开始嚣张了,最近深圳这边又有登革热的新闻报导,大家一定要做好防护,平时做好卫生,保持清洁,也做好防蚊措施哈!那今天我们来聊聊Android的进程间通信之Binder机制。首先,我们先了解下什么是进程?按照官方说的:进程一般指一个执行单元,在PC和移动设备上指一个程序或者一个应用。一个程序至少有一个进程,一个进程至少有一个线程。 我们把一个app比作一个公司吧,那么一个进程就是一个部门,然后线程就是这个部门的成员。一个公司至少有一个部门(当一个公司只有一个部门的时候,这个部门就是啥..原创 2020-07-17 15:46:53 · 207 阅读 · 0 评论 -
倒杯茶,细细品,我们聊聊--Handler
之前总习惯于写笔记,总结都是写到笔记中,我的而博客有点吃醋了,所以我决定也要宠幸下我的博客,把我平时总结的一些东西更新到博客中,如有不对之处,欢迎指出!今天谈谈面试的常客--Handler。...原创 2020-07-11 21:44:31 · 194 阅读 · 0 评论 -
用应用宝安装自己打包的apk的时候,提示包损坏
提前声明一下,我的AS是3.2版本的,gradle版本是4.1的,前面自己写了demo,签名打包之后用应用宝安装,提示包已损坏,请重新下载。。。使用adb安装命令是可以正常安装,本地运行也是可以正常运行,但是用应用宝安装就出问题,尝试了各种网上说的方法,还是没有效果,最后看到一个帖子,里面提到“把build tools 版本改成27.0.2就行了”,我就试了一下,确实可行,这里只要修改在27以原创 2018-03-29 10:35:59 · 2610 阅读 · 0 评论 -
阿里云热修复之初体验—Sophix
Sophix 热修复原创 2018-03-28 23:24:43 · 653 阅读 · 0 评论 -
我不喜欢一直写findViewById怎么办--用ButterKnife呀
我们平时应用界面中多多少少都要使用到控件,在代码中要使用这些控件,就需要对布局中的view们进行findViewById,这下好了,一个布局文件里面有十几个甚至几十个view,然后我们就重复地findViewById...篇幅又长又没啥意义,怎么办,我就是不想使用findViewById--推荐使用ButterKnife!!!具体的原理和说明已经有大神做了很充分的解释了,我这边就按照自己的...原创 2018-03-06 17:29:26 · 683 阅读 · 0 评论