自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 问答 (1)
  • 收藏
  • 关注

原创 hasmap

https://blog.csdn.net/qq_39124699/article/details/1179142

2022-01-03 17:04:45 988

原创 Arouter

ARouter原理(面对初学者) - 简书

2021-12-29 15:17:58 77

原创 图片加载优化

Android图片加载内存优化_搬砖爱好者-CSDN博客_android图片加载优化

2021-12-29 14:47:34 1305

原创 线程

Java中如何优雅的使用线程池? - 掘金https://tech.meituan.com/2020/04/02/java-pooling-pratice-in-meituan.htmlhttps://leetcode-cn.com/problems/print-foobar-alternately/solution/chang-you-duo-xian-cheng-zhi-1115-by-a-f-mf5u/

2021-12-27 20:15:28 138

原创 postdelayed

【重拾Handler】——postDelayed原理你真的了解吗? - 简书

2021-12-21 15:31:42 60

原创 http和https1.0、2.0

第 1 章 - HTTP 和 HTTPS 的简介 | Microsoft Docs接口测试基础知识HTTP和HTTPS的区别,8种HTTP请求方式:GET/POST/DELETE…… - 云+社区 - 腾讯云HTTP和HTTPS协议,看一篇就够了_不一样的博客-CSDN博客_https接口测试基础知识HTTP和HTTPS的区别,8种HTTP请求方式:GET/POST/DELETE…… - 云+社区 - 腾讯云...

2021-12-21 15:30:20 308

原创 android事件分发

这次,我把Android事件分发机制翻了个遍 - 云+社区 - 腾讯云Android事件分发机制三:事件分发工作流程 - 一只修仙的猿 - 博客园Android-事件分发机制 - Wxy的个人博客Android-事件分发机制 - Wxy的个人博客...

2021-12-20 11:35:45 1037

原创 volatile

Java中volatile关键字的最全总结 - 云+社区 - 腾讯云

2021-12-20 11:09:14 42

原创 android消息机制

Android消息机制Handler深入理解-云海天教程目录概述 Handler的使用 Handler架构 Handler的运行流程 源码分析 在子线程创建Handler 主线程的Looper Looper Handler 分发消息 总结 概述Handler是Android消息机制的上层接口。通过它可以轻松地将一个任务切换到Handler所在的线程中去执行。通常情况下,Handler的使用场景就是更新UI。Handler的使用在子线程中,

2021-12-20 10:13:23 71

原创 进程间通信aidl

举例:webView、加载图片、推送、打电话、获取闹钟多进程优点:1解决内存不足问题App运行在独立的虚拟机中,虚拟机为每个进程分配的内存是有限的(32M,64M,48M),比如直接加载一个大图片直接OOM2一旦崩溃了不会影响主进程(微信小程序)进程是怎么通信的:多个进程之间内存是不共享的java(linux)进程间通讯工具:共享内存,socket,消息队列,管道,信号Binder---安卓专门的进程间通信工具3.1.png拷贝次数:1、传统IPC...

2021-12-13 19:16:59 95

原创 玩转Leakcanary内存泄露分析

Leakcanary是square推出的内存泄露分析工具,使用很简单,可谓“傻瓜式”应用。但其内部原理实现直的深究学习,今天我们就层层剖析其使用方式、源码实现,了解一下大牛是如何写代码的。前期知识点准备:内存泄漏 GC回收原理 java四种引用等等。一、使用方法1、gradle中添加依赖,目前最新版本为1.6.1debugImplementation 'com.squareu...

2018-08-28 15:52:07 1311

原创 android常用控件及自定义控件方式

android常用控件及自定义控件方式

2018-02-23 13:56:49 194

原创 json解析

json解析

2018-02-23 13:56:25 143

原创 android图片获取、编辑、上传、下载、缓存、显示过程实现

android图片获取、编辑、上传、下载、缓存、显示过程实现

2018-02-23 13:56:15 217

原创 cookie、session原理

cookie、session原理

2018-02-23 13:49:24 160

原创 线程、进程、线程池相关类

1、线程为进程中执行的程序片段。 一个线程由线程ID,当前指令针,寄存器和堆栈组成,另外线程是进程的实体,是被系统独立调试的分派的基本单元。 线程是程序中一个单一的顺序控制流程。进程内一个相对独立的、可调度的执行单元,是系统独立调度和分派CPU的基本单位指运行中的程序的调度单位。在单个程序中同时运行多个线程完成不同的工作,称为多线程。2、线程的状态(线程的生命周期)(1) 创建 : 创建线程也...

2018-02-23 13:49:11 237

原创 android插件化

插件的概念:1、插件不能独立运行,服务于宿主程序。2、插件一般可以独立安装3、宿主管理不同的插件,包括插件数量、启用禁用、切换、兼容性等等。插件的实现:基于DexClassLoader动态加载类文件。AssetManager加载资源文件:创建Resource对象:public Resources getBundleResource(Context context, String apkPath){...

2018-02-10 18:30:54 170

原创 APP(编译、混淆、签名)打包、安装、运行

APP(编译、混淆、签名)打包、安装、运行一、打包过程:1. 通过aapt打包res资源文件,生成R.java、resources.arsc和res文件 2. 处理.aidl文件,生成对应的Java接口文件 3. 通过Java Compiler编译R.java、Java接口文件、Java源文件,生成.class文件 4. 通过dex命令,将.class文件和第三方库中的.class文件处理生成cl...

2018-02-10 18:30:45 1493

原创 android的进程间通信aidl

参考:http://blog.csdn.net/hitlion2008/article/details/9824009受限于Android本身对AIDL的设计,利用AIDL传输的数据大小不得大于1MB,否则会报TransactionTooLargeException,目前代码里暂时没有考虑该问题的解决方案。aidl分层结构:aidl只能传基本数据类型,其他类型可以通过实现parcelable。Ja...

2018-02-10 18:30:35 367

原创 android窗口管理

window是一个雷,实现类是phonewindow。窗口由两部分构成:描述该窗口的windowstate和窗口对应的surface。WMS是在systemserver中启动VMthread创建的,运行在该线程中。android窗口创建过程:计算窗口大小、计算窗口的可视状态,通知surfaceFlinger重绘。android窗口删除过程:android窗口切换过程:...

2018-02-10 18:30:21 306

原创 View框架的消息派发过程及绘制原理详述

view的消息派发:按键消息:wms首选处理home键等系统级信息,底层回调viewroot中的inputhandler的方法,然后调用viewroot的dilverkeyevent(),该函数中首先在输入法之前可以拦截处理消息,然后派发给输入法窗口(前提是输入法窗口存在),之后就派发给应用根试图了(应用的根视图是phonewindow的decorview,非应用窗口的根试图是viewgroup的...

2018-02-10 18:30:10 206

原创 AMS原理分析

一、AMS的主要作用:1、统一调度Activity(1)AMS中的重要数据类:ProcessReccord:保存该进程中包含的APK信息、内存状态信息用于内存回收、组件列表ActivityRecord:binder类可用于IPC调用(此处为WMS中调用),保存所有Acitivity信息,包括基本属性信息(包名、进程名、文件路径、图标主题等)和运行状态信息(idle、stop、finishing等)...

2018-02-10 18:29:59 4028

原创 PMS程序包管理机制

PMS程序包管理机制:1、intent匹配,Intent是一个消息传递对象。2、权限检查3、提供安装、删除应用程序的接口。分层结构:应用程序层,PMS服务器,文件层。...

2018-02-10 18:29:50 257

原创 auth2.0协议及第三方授权登录实现

参考:http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html

2018-02-10 18:29:46 2822

原创 android资源访问机制

android资源定义分为:属性的定义和属性值的定义。属性的定义文件:res/values/attr.xml,该文件中定义的属性在应用程序的范围内必须是唯一的。值的定义:String,color等基本类型,Drawable、layout、style等。xml文件解析:Attribute,TypedArray。Framework资源打包成framework-res.apk在zygote中被加载然后才...

2018-02-10 17:14:38 167

原创 Android四大组件

service:onCreate: 执行startService方法时,如果Service没有运行的时候会创建该Service并执行Service的onCreate回调方法;如果Service已经处于运行中,那么执行startService方法不会执行Service的onCreate方法。也就是说如果多次执行了Context的startService方法启动Service,Service方法的o...

2018-02-10 15:26:48 170

原创 android三级缓存

android三级缓存

2018-02-09 21:07:50 173

原创 context的类型及相关类和类关系

context的类型及相关类和类关系context是抽象类,contextwrapper继承context,service是抽象类继承contextwrapper,activity继承contextthemewrapper,contextthemewrapper继承contextwrapper,...

2018-02-09 20:53:23 2142

原创 jni

JNI(Java Native Interface,Java本地接口),用于打通Java层与Native(C/C++)层。这不是Android系统所独有的,而是Java所有。众所周知,Java语言是跨平台的语言,而这跨平台的背后都是依靠Java虚拟机,虚拟机采用C/C++编写,适配各个系统,通过JNI为上层Java提供各种服务,保证跨平台性。jni,实现java和c的相互调用。java调用C,首先...

2018-02-09 20:00:33 145

原创 contentprovider权限

相关类:UriMather,ContentResolvercontenprovider的mime字段如果是单条记录应该返回以vnd.android.cursor.item/ 为首的字符串如果是多条记录,应该返回vnd.android.cursor.dir/ 为首的字符串...

2018-02-09 17:37:38 1382

原创 android广播

==Android中的广播使用了设计模式中的观察者模式:基于消息的发布/订阅事件模型,不过,同时利用消息队列+Handler机制实现广播的线性化(保证广播不会丢失)==模型中有3个角色:消息订阅者(广播接收者)消息发布者(广播发布者)消息中心(AMS,即Activity Manager Service)广播接收者 通过 Binder机制在 AMS 注册广播发送者 通过 Binder 机制向 AMS...

2018-02-09 16:49:02 150

转载 编程基础之数据结构与算法

数据结构数据结构是以某种形式将数据组织在一起的集合,它不仅存储数据,还支持访问和处理数据的操作。算法是为求解一个问题需要遵循的、被清楚指定的简单指令的集合。下面是自己整理的常用数据结构与算法相关内容,如有错误,欢迎指出。为了便于描述,文中涉及到的代码部分都是用Java语言编写的,其实Java本身对常见的几种数据结构,线性表、栈、队列等都提供了较好的实现,就是我们经常用到的Java集合框架,

2018-02-07 17:11:44 652

转载 编程基础之正则表达式

本文是转载的一篇对正则表达式比较简单基础的介绍。正则表达式是用来处理字符串的一把利器,它是一个专门匹配n个字符串的字符串模板,本质是查找和替换。许多语言,包括Perl、PHP、Python、JavaScript和JScript,都支持用正则表达式处理文本,一些文本编辑器用正则表达式实现高级“搜索-替换”功能。那么Java又怎样呢?在Java中存在一个用正则表达式所订制的模式来对字符串进行匹配工

2018-02-07 16:52:12 283

转载 网络编程分层模型

网络分层:为了减少网络设计的复杂性,绝大多数网络采用分层设计方法。所谓分层设计方法,就是按照信息的流动过程将网络的整体功能分解为一个个的功能层,不同机器上的同等功能层之间采用相同的协议,同一机器上的相邻功能层之间通过接口进行信息传递。开放系统互连参考模型 (Open System Interconnect 简称OSI)是国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)

2018-02-07 16:10:08 1006

原创 android性能之五:APK瘦身

1.1 Android Studio Analyze APKAndroid Studio 2.2之后有一个功能Analyze APK,方便简单,功能还是Google自带的靠谱;查看apk中任意文件的大小,得到一个直观的认识;了解Dex文件的组成,查看使用那些开源库等;查看二进制文件(如AndroidMainfest.xml等);Apk的比较,便于发现两个版本之间的区别。Analyz

2018-02-07 15:39:19 770

原创 android性能之三:网络通信

1、 网络优化网络优化主要包括4个方面方面:1. 速度;2. 成功率;3. 流量4、耗电1.1 Gzip压缩HTTP协议上的Gzip编码是一种用来改进WEB应用程序性能的技术,用来减少传输数据量大小,减少传输数据量大小有两个明显的好处:可以减少流量消耗;可以减少传输的时间。1.2 IP直连与HttpDns;DNS解析的失败率占联网失败中很大一种,而且首次域名解析一般需要

2018-02-07 15:20:51 223

原创 android性能之二:耗电问题

1、 电量问题Android系统上App的电量消耗主要由cpu、wakelock、数据传输(流量和wifi)、wifi运行、gps、other senior组成,而耗电异常也是由于这几个模块的使用不当。1.1 CPU时间片优化当检测到CPU时间片消耗异常时,需要使用TraceView,获取进程执行信息,定位CPU占用率异常的问题。1.2 网络传输通常情况下,使用3G移动网络

2018-02-07 15:20:24 774

原创 android性能值之四:卡顿问题

1、GPU渲染2、启动加速3、布局优化4、主线程耗时操作 异步加载5、运算效率6、ANR问题参考:https://www.kancloud.cn/kancloud/android-performance/53234

2018-02-07 15:19:30 126

原创 Android性能之一续:内存泄露的分析、处理工具

上一篇http://blog.csdn.net/srp123/article/details/78667872介绍了android内存泄露的原理,这一篇介绍Android内存泄露的分析、处理。一、检测内存泄露1、adb命令获取内存使用情况通过命令行adb shell dumpsys meminfo packagename查看内存详细占用情况:关键字段:

2018-02-06 18:14:20 327

原创 ADT中add jars,add external jars,add libraries,libs的区别

android项目中引用第三方jar的方式,add jars,add external jars,都是引用jar的方式,jar会参与编译,但不会打包到APK中,区别是前者引用的是工程中目录中的jar,后者可引用外部文件系统目录中的jar,这两种引用的jar都会自动放在Referenced libraries中,add libraries则是把一系列的jar放在自己命名的libraries中,一般是

2018-01-25 11:22:43 516

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除