需求是这样的 开发者接入sdk,接入成功之后提供apk,拆包对里面的sdk内容进行更替,得以实现不同渠道接入不同的SDK 实现步骤拆解如下: apk接入jar包 将其他渠道的jar包通过dx.jar 转化成 dex 将d…
分类:Android
Android 消息机制 - Handler 实现原理深入剖析
Android 的消息机制Handler,是在开发过程中都会用到的,它可以轻松的从子线程切换到主线程,大部分的时候我们将Handler会用在更新UI的操作.那么Handler是如何做到不同线程通信的呢? 如何切换线程的呢…
设计模式几种类型
设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。 设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的…
Bitmap获取缩略图
前言 回顾了下以前写的调用相机和相册的功能,准备把它们整合下,想起曾经用魅族在获取大图时OOM的问题,决定重看一遍当初的解决方式。在获取缩略图步骤上发现了系统已经提供了工具类ThumbnailUtils,当然减少内存消耗…
Recyclerview使用
首先是布局文件中使用 RecyclerView <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:to…
OkHttp源码之socket连接池
在整个okhttp中,相对来说最耗资源的应该属于socket连接了,所以为了节省tcp的连接释放以及TLS协议的握手等时间,socket连接池是必不可少的。研究它的连接池,我们重点关注以下两点: socket复用有何标准…
简单解读equals()与“==”、hashcode()的关系
一、”==”和equals方法究竟有什么区别? ==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只…
windowIsTranslucent和Activtiy切换动画冲突
解决办法 <style name="Animation.Activity.Translucent.Style" parent="@android:style/Animation.Translucent"> &…
Tinker源码分析(七):dex合成流程
本系列 Tinker 源码解析基于 Tinker v1.9.12 前面讲到了 Tinker 安装补丁的流程,现在就详细地来看下 dex 合成的代码。代码入口就在 DexDiffPatchInternal.tryRecov…
Android面试题Java篇
前言 一年之计在于春 金三银四已经要到来,2019的新的开始,作为一个开发人员,你是否面上了自己理想的公司,薪资达到心中理想的高度? 面试:如果不准备充分的面试,完全是浪费时间,更是对自己的不负责。 今天给大家分享下我整…
LayoutInflater源码分析(二)
上一篇LayoutInflater源码分析(一)我们分析了LayoutInflater的from()方法,这节我们来分析一下inflate()方法。 view = LayoutInflater.from(parent.g…
大表哥带你一步一步用Builder模式实现自定义相机(拍照+录制,附源码)
1.前言 1.1 初衷 在我们做很多项目的过程中,经常会遇到很多需要自定义的相机的需求,这个时候,很多人第一步都是网上查资料,包括我也是这样,但是我没有发现有比较靠谱没有Bug的开源项目,虽然这个需求也不是很难,但是由于…