
Android基础
文章平均质量分 83
TechMix
偏信则暗兼听而明。
展开
-
Kotlin协程核心理解
1、协程基本概念,和进程线程的关系,协程的关键API总结2、挂起函数的作用和执行流程3、Android常见的协程使用场景写法4、几种协程调度器的适用场景总结5、如何取消协程原创 2023-10-29 16:07:48 · 661 阅读 · 0 评论 -
AudioManager#abandonAudioFocus之后仍然泄漏?
记录使用AudioManager#requestAudioFocus()之后调用abandonAudioFocusRequest反注册,仍然内存泄漏问题。因为存放OnAudioFocusChangeListener的Map的key是用AudioManager对象的toString()拼接listener.toString()构造的。原创 2023-09-05 22:10:51 · 532 阅读 · 0 评论 -
Gradle开启R8反混淆对不上问题解决记录
记录使用Android-SDK/tools下的proguardgui工具,在开启R8编译后,根据mapping.txt混淆没效果问题。原创 2022-06-25 12:40:18 · 1627 阅读 · 0 评论 -
OKHttp源码学习笔记(一)
OKHttp源码的学习笔记,记录一下。原创 2021-11-30 22:13:26 · 212 阅读 · 0 评论 -
java虚拟机之运行时内存分区理解
一.jvm内存区域的划分二. 对象的四种引用类型 1.强引用 2.软引用: SoftReference 3.弱引用: WeakReference 4.虚引用: PhantomReference 5. 四种类型引用特性总结原创 2019-07-20 16:39:52 · 375 阅读 · 0 评论 -
从源码角度学习ThreadLocal原理
1.ThreadLocal基本介绍相信使用java语言做开发的同学,肯定多或多或少了解过ThreadLocal,简单来说就是一个“以当前Thread对象作为key的key-value存储结构,能实现多线程的读写安全”。那么他究竟是怎么实现的呢,它的实现源码并不是很长,下面直接从源码上来分析。先看一个使用ThreadLocal存取数据的例子:1.1 直接使用无参构造函数创建对象//使用无参构造函数创建ThreadLocal实例,默认值为nullfinal ThreadLocal<Integer原创 2020-05-17 20:50:50 · 171 阅读 · 0 评论 -
Service组件StartService()方式启动流程分析
1.前言AMS是Android四大组件工作的核心服务类,Activity和Service的启动过程均由其完成。2.ContextImpl->startService(): @Override public ComponentName startService(Intent service) { warnIfCallingFromSystemProcess(...原创 2020-03-29 15:49:52 · 650 阅读 · 0 评论 -
Activity启动基本流程分析
1.概述2.Activity启动流程源码分析原创 2019-12-13 00:35:22 · 613 阅读 · 0 评论 -
布局优化之ViewStub源码分析
1.前言 对于Android的单线程模型来说,把控好主线程中的操作时是至关重要的。布局复杂了,很容易引起卡顿,或者某些情况下界面展示慢的情况,我们都知道ViewStub能实现懒加载,减少布局渲染时间,那么它究竟用了什么方法来实现的,这里做一个学习记录,加深印象。2.如何优化布局 ViewStub是不可...原创 2019-10-31 23:34:58 · 673 阅读 · 0 评论 -
Android中Activity四种启动方式
一,任务栈的理解 参考自:https://developer.android.com/guide/components/tasks-and-back-stack.html 1.闲扯两句 一个Android应用是包含若干个Activity的,每个 Activity 均应围绕用户可以执行的特定操作设计,并且能够启动其他 Activity。 这些Activity之间可以借助In...原创 2017-08-05 22:49:29 · 1219 阅读 · 0 评论 -
com.android.dex.DexIndexOverflowException: Cannot merge new index 65730 into a non-jumbo instructio
今天编译工程,生成apk的时候遇到一个没见过的问题,查了很多也是了很多问题,最后解决了,虽然不知道内部的原因,不过在此做一个记录,希望能帮到遇到同样问题的开发者。 报错提示: Error:Error converting bytecode to dex: Cause: com.android.dex.DexIndexOverflowException: Cannot merge ...原创 2017-05-01 01:19:00 · 1137 阅读 · 0 评论 -
国内优秀的Android开发者博客整理
国内优秀的Android开发者博客整理转载 2017-10-08 15:41:31 · 424 阅读 · 0 评论 -
jvm类加载机制学习基础(一)
一.类加载机制理解 二.什么情况下会触发类的加载?三.类加载会经历哪些阶段?四. 类加载时类成员的加载顺序五. 类加载器的双亲委派模型原创 2020-12-25 21:06:12 · 1684 阅读 · 2 评论 -
从源码角度学习EventBus
最近在EventBus的源码,看完基本流程,做一些记录EventBus的几个主要流程(暂未考虑线程的threadMode):1.EventBus类结构分析2.注册流程分析3.post方法实现分析4.三种Poster和ThreadMode 5.解注册做了什么?6.EventBus现有的不足与完善思路7.小结原创 2019-05-04 13:30:40 · 187 阅读 · 0 评论 -
从源码分析Activity,Window和View的关系
从源码角度分析Activity,Window和View的关系,总结学习经验,让您更加理解Android的GUI设计原理。原创 2019-08-18 19:55:47 · 1204 阅读 · 0 评论 -
Android常用开源库(框架)整合
Android开源框架整理原创 2017-01-10 20:31:22 · 793 阅读 · 0 评论 -
Android中在子线程中如何更新UI
Android中更新UI的两种方式:一,使用handler机制实现 1.handler的用法举例 2.非主线程中使用Handler二,使用AsyncTask异步线程实现 1.AsyncTask的作用 2.AsyncTask的用法举例原创 2016-05-22 01:02:25 · 1427 阅读 · 0 评论 -
Android面试题:对JNI和NDK的理解
JNI和NDK是面试经常被问到的热点问题,在这里做一个记录。 1.阐述你对JNI的理解 JNI的全称是Java Native Interface(Java本地接口)是一层接口,是用来沟通Java代码和C/C++代码的,是Java和C/C++之间的桥梁。通过JNI,Java可以完成对外部C/C++编写的库函数的调用,相对的,外部C/C++也能调用Java中封装好的类和方法。 Java的优点是原创 2017-06-04 12:31:03 · 10669 阅读 · 0 评论 -
深入理解Android中的Context
转发来源:http://www.jianshu.com/p/94e0f9ab3f1d Context 都没弄明白,还怎么做 Android 开发?Activity mActivity =new Activity()作为Android开发者,不知道你有没有思考过这个问题,Activity可以new吗?Android的应用程序开发采用JAVA语言,Activity本质上也是一个对象,那上面的写法转载 2016-08-06 15:07:52 · 573 阅读 · 0 评论 -
Android中Intent的详细用法
文章转自:查看原文请点击这里 大家好,今天跟大家谈谈Intent的用法。 Intent在安卓中主要用于打开另外一个页面,这个页面可能是一个activity也可能是一个应用,也可能是其它…… 且看下面介绍,总结摘抄网友一些经典例子1.无参数Activity跳转 Intent it = new Intent(Activity.this, Activity2.class); startAc转载 2016-10-03 22:14:18 · 842 阅读 · 0 评论 -
Android测试
黑盒测试: 是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。白盒测试: 又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。单元测试: 又称模块测试,是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。功能测试: 根据产品特性、操作描述和用户方案,测试一个产品的特性和可操作行为以确定它们满足设计需求。压力测试: 主体向被观察者布置一定量任务和作业,借以观察原创 2016-10-26 18:24:07 · 511 阅读 · 1 评论 -
Android中网络操作的模板代码
使用HttpURLConnection方式发送Get请求使用HttpURLConnection方式发送Post请求使用HttpClient方式发送Get请求使用HttpClient方式发送Post请求原创 2016-10-22 09:42:15 · 427 阅读 · 0 评论 -
android事件处理机制
前言基于监听的事件1监听的处理流程2内部类作为事件监听器类3外部类形式作为事件监听器类4使用匿名内部类作为事件监听器类5Activity作为事件监听器6绑定到组件事件属性基于回调的事件1回调机制与监听机制2基于回调事件的传播流程3基于回调触摸事件处理Handler消息传递机制1Handler类简介总结转载 2016-11-21 15:27:30 · 3993 阅读 · 0 评论 -
Android的BaseActivity的
BaseActivity的设计原创 2016-12-30 19:59:50 · 487 阅读 · 0 评论 -
OKHttp源码分析
1.Android为我们提供了两种HTTP交互的方式2.OkHttp是一个高效的HTTP库3.简单使用代码4.总体设计5.OKHttp中重要的类6.请求流程图7.详细类关系图8.同步与异步的实现9.拦截器有什么作用10.缓存策略11.HTTP连接的实现方式(说说连接池)12.重连机制13.Gzip的使用方式14.安全性15.平台适应性16.总结后续转载 2017-01-02 18:10:53 · 389 阅读 · 0 评论 -
Material Design使用之SnackBar
AndroidMaterial design原创 2016-11-22 23:34:56 · 845 阅读 · 0 评论 -
Android序列化遇到的问题
一,问题提出 最近在开发App时使用了Parcelable接口实现序列化,主要是为了能够实现在不同的场景传值,并且传递的是自定义的构造类型,还包含ArraList数据的传递,遇到的问题如下: //这是我要从网络获取的物流查询信息(JSON格式){ "EBusinessID": "1270755", "ShipperCode": "ANE", "Succe原创 2016-12-03 00:44:56 · 592 阅读 · 0 评论 -
Android中的asset和raw文件夹
assets目录和raw的区别和联系原创 2017-01-10 17:31:13 · 604 阅读 · 0 评论 -
Android事件分发机制实例分析
Android事件分发机制Android事件传递原理原创 2017-01-20 23:26:53 · 391 阅读 · 0 评论 -
Android四大组件之Service(一)
Service和IntentService的使用1.Service的适用场景 2.Service的注意要点3.Service的生命周期及使用方法4.IntentService的使用及与Service的差异原创 2017-03-08 15:07:57 · 325 阅读 · 0 评论 -
Android中添加Module依赖注意问题
在开发中经常会以添加Module依赖的方式拓展其他的模块,这样的方式给我们的开发提供了很大的方便,但是也增加了编译的时间成本。但是直接在build.gradle中添加Module依赖往往会遇到Manifest文件合并有错误的情况,这时候就需要我们对被加入依赖的Module进行一些修改。原创 2017-04-05 20:34:25 · 4938 阅读 · 0 评论 -
AndroidStudio中修改api帮助文档本地路径问题
AndroidStudio中修改api帮助文档本地路径问题原创 2017-05-02 23:26:37 · 3140 阅读 · 3 评论 -
Android中的回调机制
Android中的回调机制使用java的回调机制已经很久了,就Android开发来说,回调机制在异步任务上使用的很频繁,但是其本质上的原理是什么,很好奇,但是一直无从下手,先分析使用java回调产生的几种现象:1.当需要知道一个耗时任务完成的结果时,不用去轮询查看进度或者等待到任务完成了,而是从阻塞等待、主动检查变成被动接收任务的结果了。比如:下载一张图片,完成时从UI上给一个反馈;...原创 2016-08-06 11:05:32 · 1004 阅读 · 0 评论