- 博客(108)
- 资源 (7)
- 收藏
- 关注
原创 java.lang.IllegalStateException: Fragment already added
原有函数: private var tag = false private var backMusicDialogFragment: BackMusicDialog? = null // DialogFragment private fun addFragment() { supportFragmentManager.let { if (null == backMusicDialogFragment) {
2020-09-10 11:42:34
4883
原创 RecyclerView_onBindViewHolder 被调用的时机
1,问题onBindViewHolder是RecyclerView数据更新的统一处理位置,那么它被调用的入口在哪?2,方案场景:初次加载、滑动方案:debug模式下,查看调用链3-1,初次加载场景,入口以及调用链RecyclerView.onLayout() // 初始化场景,入口RecyclerView.dispatchLayout()RecyclerView.dispatchLayoutStep2()LinearLayoutManager.onLayout..
2020-05-20 18:13:35
13237
原创 View的事件分发_ACTION_MOVE的坑
0,,参考Android 8.0.0 源码1,问题通常 在dispatchTouchEvent或onTouchEvent的方法 返回 true时,当前的View 就会按照 「ACTION_DOWN -> ACTION_MOVE -> ACTION_MOVE -> 无数个ACTION_MOVE -> ACTION_CANCEL 或 ACTION_UP」的顺序...
2020-04-25 08:47:14
1296
原创 Handler 实际应用 - 获取View的宽高
0,参考:Android_8.0.0 源码分析 view.post() 为什么能够 获取 View的宽高1,核心内容 /** * main 在主线程调用 */ public static void main() { LogUtil.v("1"); new Handler(Looper.getMainLoop...
2020-04-25 08:07:51
299
原创 责任链模式_简要实现
0,意义首页业务上有多个弹框,为了避免嵌套需要实现方式。又不想引入RxJava,就自己做了一个简要的实现1-1,实现public class ChainManager { private OnSubmit head; /** * 会依次执行 OnChain中的内容 * * @param chainArray 一个个的回调 */...
2020-03-02 10:40:10
205
原创 OkHttp3 超时设置
目录1,AsyncTimeout2-1,耗时段介绍「从上往下」2-2,4个超时设置「OkHttpClient.Builder」2-3,耗时操作之间的关联okhttp Timeout 超时设置与用法解释1,AsyncTimeoutAsyncTimeout.enter 案例1,首次创建 Watchdog + AsyncTimeout作为static量,避免重复创建2,单线...
2020-03-01 23:38:06
10004
1
原创 Android源码_View事件分发
0,参考Touch事件传递流程详细剖析收不到ACTION_MOVE事件Android源码1-1,测试Demo的xml样例(A、B继承Framelayout;C继承View,未修改任何参数)<LinearLayout><A100> <B110> <C111> </C111> <C112&...
2019-10-30 10:09:00
204
原创 Android源码_View启动的measure、layout、draw
1,已知内容1,Activity加载View的流程,首先创建出DecorView2,由ViewRootImpl依次调用DecorView的measure、layout、draw方法可参考:Android源码_Activity加载View2,提问1,measure、layout、draw功能的输入、输出有哪些?2,measure、layout、draw功能的执行顺序(父与子之...
2019-10-28 14:46:06
178
原创 Android源码_Activity加载View
0,主体简介从ActivityThread到开始加载Activity时,如何将View加载出来1,时序图2,细节点2-1),setContentView中的layoutResId是如何加入DecorView的 public void setContentView(int layoutResID) { ... if (mContentP...
2019-10-25 18:11:52
276
原创 Android源码_Activity启动
0,主体简介参考:Android6.0 系统源码从ActivityThread到Activity启动的onCreate、onStart、onResume生命周期1,时序图2,细节点暂无3,总结ActivityThread.handleLaunchActivity代表了Activity class创建、attach、onCreate等三个主生命周期的执行...
2019-10-22 14:45:01
156
原创 Android_国密_SM2、SM3、SM4
因业务要求,RSA、AES、MD5等加密方式,要合规,需要替换成,SM2、SM3、SM4。因此,个人整理资料,实现了一份。一:参考https://github.com/gotoworld/hsd-cipher-sm -- 代码主体https://blog.youkuaiyun.com/wkernel/article/details/71193413 -- 对应关系https:/...
2019-05-31 18:17:33
10032
4
原创 Android_指纹支付_安全问题_前后端交互逻辑
具体代码不详细介绍,可以自己去看这些资料,只详细介绍最终的客户端和服务器端交互逻辑。/********************************************1,参考****************************************/////////////////////// 重点参考资料https://github.com/gaoyangcr7/Biom...
2019-03-11 20:40:59
1420
原创 Android_接入微信demo(分享、支付、登录)_签名无效
解决的问题:接入微信时,从官网下载的demo,运行后提示签名无效。解决的方案:1)自己申请一个账号,使用自己的包名和签名,然后再写个人测试程序2)直接使用微信的demo,测试实际效果方案1,需要申请账号,走复杂的流程;以及写个人测试程序得花费一定的时间,还会走一些坑;百度搜出来的基本上都是这种方案2,方便快速,但会遇到一些坑。本篇,主要走的是此方案。接下来直接进入主题...
2019-03-07 09:56:48
1229
原创 Android Studio发布aar到Jcenter,插件找不到
参考:https://www.jianshu.com/p/5be222e98efc?from=jiantop.com // gradle使用https://github.com/nuuneoi/JCenter/blob/master/installv1.gradle // 依赖gradle位置 目标: 之前实现了Android Studio发布aar到Jcenter,具体...
2018-09-07 07:52:43
388
原创 Java的UML类图(二)
参考:http://www.cnblogs.com/samchen2009/p/3315999.html 前言 本文依次逐个介绍 “实现”、“继承”、“依赖”、“引用”、“聚合”、“组合”;每一个以案例的形势进行表述1,实现:Realization实现就是实现定义的接口协议,通常使用implements关键字 案例Apublic interface WindowManager { ...
2018-07-04 19:42:05
348
原创 Java的UML类图(一)
参考:http://www.cnblogs.com/samchen2009/p/3315999.html 1,总图案:2,逐个介绍2) 实现:Realization实现就是实现定义的接口协议,通常使用implements关键字6) 继承:Inherritance继承在Java中体现为 extends 实体类或抽象类7) 依赖:Dependency依赖表示,某个类使用其它类的 常量或静态方法或作为局...
2018-07-04 19:23:44
5996
原创 Android中Looper原理
参考:https://www.zhihu.com/question/34652589// Handlerhttps://blog.youkuaiyun.com/rock_joker/article/details/76735333// Linux pipe/epollhttps://www.cnblogs.com/coder2012/archive/2013/07/22/3204730.ht...
2018-06-27 17:35:05
4916
2
原创 图片压缩
参考框架:https://github.com/Curzibn/Lubanhttps://github.com/zetbaitsu/Compressor个人实现(kotlin语言)https://github.com/yline/as_x_modlestudy/blob/master/System/AppOther/Manager/src/main/java/com/manager/compres...
2018-06-07 19:43:43
444
原创 初入数据库分库分表
参考:1, https://www.cnblogs.com/langtianya/p/4997768.html 分区分表分库2, https://blog.youkuaiyun.com/mingover/article/details/71108852 切分方案3, https://www.cnblogs.com/try-better-tomorrow/p/4987620.html 分表的实现+集群1,分区...
2018-05-14 19:33:12
183
原创 ThreadLocal源码分析以及解决常见面试问题
参考:http://www.cnblogs.com/dolphin0520/p/3920407.html 参考用例https://www.cnblogs.com/ablejava/p/5914090.html 根本原因分析 1,常规使用 static final ThreadLocal<Long> longLocal = new ThreadLocal<>(); ...
2018-05-05 14:47:11
359
原创 Android JNI实现Base64加密
最近,有需求要求在客户端对传输的数据进行加密一次,但使用Java实现的加密,容易被破解;因此,将加密的部分下沉到C层实现。 此前并没有写过Jni相关的内容,因此有三个任务 1) 实现 Java调用C层代码 2) 实现 C调用Java层代码 3) 实现 Java调用C层进行Base64加密和解密1,工程配置1)环境1) Android Studio 3.02) 安装...
2018-04-25 14:51:43
2431
原创 单个对象内存占用
1,对象的内存布局对象头:8的倍数,储存hash码、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等实例数据:对象的内容对其填充:将实际数据填充为8的倍数2,对象的访问定位1)句柄:储存对象的句柄地址,句柄中包含了对象实例数据与类型数据各自的具体地址信息2)直接指针:储存的是对象地址直接指针速度更快,但需要频繁被修改;句柄速度较慢,但reference本身不需要修改...
2018-04-17 16:03:42
147
原创 Java_集合_HashMap(6)
1,储存方式public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable{ static final HashMapEntry<?,?>[] EMPTY_TABLE = {}; tran...
2018-03-19 19:10:53
389
原创 Java_集合_PriorityQueue(5)
1,储存方式PriorityQueue的储存方式和ArrayList相同,都是通过 变长数组实现的。唯一不同的则是,每次储存数据都会进行一次排序,从而保证储存内容是有序的ArrayList储存方式:http://blog.youkuaiyun.com/u014803950/article/details/796138852,自增方式 public boolean add(E e) { r...
2018-03-19 17:09:19
146
原创 Java_集合_ArrayList(4)
1,储存方式public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable{ private static final Object[] EMPTY_ELEMENTD...
2018-03-19 17:00:07
243
原创 Java_集合_EnumSet(3)
1,储存方式public abstract class EnumSet<E extends Enum<E>> extends AbstractSet<E> implements Cloneable, java.io.Serializable{ final Class<E> elementType; final Enum[]...
2018-03-19 16:06:15
157
原创 Java_集合_HashSet(2)
问题:储存方式,如何实现自增,如何查询数据,如何获取整体大小由于HashSet比较简单,就贴单个简化源码public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java.io.Serializable{ private transient Has...
2018-03-19 15:25:16
176
原创 Java_集合_前言(1)
做Android有一段时间了,项目经验积累了不少,但基础没有跟上来。印象很深的是,老大问我两个问题: 1,hashMap和hashtable的区别是什么,除了线程安全和不安全,还有什么。 2,ArrayList如何实现自增的,自增的规律是什么,里面是如何储存数据的。 于是,趁着休息时间,把原先的书捡起来,重新补一下基础。整体来说,需要学习的有List、Queue、Set和...
2018-03-19 14:40:33
194
原创 Android_混淆_常用混淆(3)
1,整体分类#-----------------------------------实体类-----------------------------------------# TODO ADD2#-----------------------------------第三方包-----------------------------------------# TODO ADD3#------...
2018-03-16 18:58:29
459
原创 Android_混淆_常用规则(2)
1,Proguard手册很多人不知道,Proguard其实是有官方手册的,而且就在Studio的SDK目录下,我的位置: D:\study_adt_studio\sdk\tools\proguard\docs初步打开index.html --> Manual --> Uasge(如图)2,常用混淆规则(原文+注释)考虑到手册比较多,因此搬移了一些常用的贴在blog里。具体可打开...
2018-03-16 17:32:10
233
原创 Android_混淆_基本介绍(1)
前言: 项目进行有一定规模了,需要加上混淆了。但是之前,工程没有加过混淆,担忧加上会引入不可控的BUG,所以趁这次机会对混淆进行一次系统的学习,写了些笔记。该模块结束了,这里就将笔记整理一下。 笔记有三篇,分别为:基本介绍(1),混淆规则(2),常用混淆(3)。不多说,开始第一篇1,开启混淆android { buildTypes { debug { mini...
2018-03-16 17:09:14
214
原创 Java二进制的加减乘除
引子 某天研究 fail-fast机制的时候,去看了看hashCode的实现方式,然后发现每个对象的实现都不一样;于是研究一个String的;于是看到公式:s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]于是很不解,这个公式很明显会溢出(超过2^32),尝试了几次发现系统会输出hashCode为负数的值,就默默地去回顾一下二进制的加减乘除准备工...
2018-02-23 13:00:39
10226
原创 PHP入门之局域网多站点访问、带参数请求、Json数据、Xml数据
1,局域网多站点访问1,有一个yline.php文件,本地建立了两个站点,localhost和yline;本地浏览器打开方式:1)localhost:80/test/yline.php2)yline:8080/yline.php2,局域网默认访问的是80端口,所以需要配置以下几点,才能访问多个1)监听端口2)多站点配置,修改对应的
2017-06-26 09:46:40
448
原创 PHP入门之wordpress(安装、登陆、SMTP插件、Avatar插件)
0,前提wordpress官方网站:https://cn.wordpress.org/准备工作:1)安装好WAMP,并定好www目录2)打开WAMP程序,保持它正在运行1,安装WordPress1)下载好安装包、解压 ==> 放到"www"直接目录下 ==> 访问:127.0.0.1/wordpress,出现:2)点击开始
2017-06-24 08:51:02
1044
原创 PHP入门之异常处理、数据库操作、之后方向制定
1,异常处理1,PHP异常处理机制和Java一样案例:// 常见结构; return 在 finally执行完成才执行try{ echo "try" . "\n"; throw new Exception('wrong'); // return;} catch (Exception $ex){ echo "catch" . "\n"; $msg =
2017-06-22 13:02:50
882
原创 PHP入门之文件、时间、GD图形图像
1,文件1,读取文件内容1)函数方式$content = file_get_contents('./test.txt'); // 将整个文件全部读取到一个字符串中$content = file_get_contents('./test.txt', null, null, 100, 500); // 通过参数控制读取内容的开始点以及长度2)读取行数
2017-06-22 12:50:02
263
原创 PHP入门之字符串、Cookie和Session简介
一,字符串(详情见,代码注释)/* ---------------------定义--------------------- */$strA = 'hello world A';$strB = "hello world B";$strC = Fuckhello world CFuck;echo $strA . "--" . $strB . "---" . $strC . "\n";/*
2017-06-21 18:38:56
284
原创 PHP入门之数组+函数+类与面向对象
1,数组1,初始化$arr = array(); // 新建空数组$demo = array( '1' => 'B', '2' => 'Fuck');// key->value形式数组$sample = array( 'C', 'D');// 0->value形式数组 $fruit = array( "苹果", "香蕉", "菠萝");//
2017-06-16 10:32:53
294
原创 PHP入门之运算符+变量+常量
PS:该文建立在有C语言的基础上; 算是自己学习的笔记运算符:1,运算符(和C语言一样的,不重复)符号Php意义C意义/ 商整除=复制赋值赋值(基本数据类型复制赋值,其它引用赋值)$c = &$a引用赋值----
2017-06-14 16:56:19
518
异步线程AsyncTask
2015-05-04
计时器三种实现(Thread)
2015-05-03
ExpandListView
2015-03-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人