自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(108)
  • 资源 (7)
  • 收藏
  • 关注

原创 FragmentVisible

1

2022-10-26 15:52:22 237 1

原创 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 4710

原创 RecyclerView_onBindViewHolder 被调用的时机

1,问题onBindViewHolder是RecyclerView数据更新的统一处理位置,那么它被调用的入口在哪?2,方案场景:初次加载、滑动方案:debug模式下,查看调用链3-1,初次加载场景,入口以及调用链RecyclerView.onLayout() // 初始化场景,入口RecyclerView.dispatchLayout()RecyclerView.dispatchLayoutStep2()LinearLayoutManager.onLayout..

2020-05-20 18:13:35 12626

原创 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 1219

原创 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 250

原创 责任链模式_简要实现

0,意义首页业务上有多个弹框,为了避免嵌套需要实现方式。又不想引入RxJava,就自己做了一个简要的实现1-1,实现public class ChainManager { private OnSubmit head; /** * 会依次执行 OnChain中的内容 * * @param chainArray 一个个的回调 */...

2020-03-02 10:40:10 166

原创 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 9538 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 166

原创 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 141

原创 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 219

原创 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 127

原创 Android_国密_SM2、SM3、SM4

因业务要求,RSA、AES、MD5等加密方式,要合规,需要替换成,SM2、SM3、SM4。因此,个人整理资料,实现了一份。一:参考https://github.com/gotoworld/hsd-cipher-sm -- 代码主体https://blog.csdn.net/wkernel/article/details/71193413 -- 对应关系https:/...

2019-05-31 18:17:33 9225 4

原创 Android_指纹支付_安全问题_前后端交互逻辑

具体代码不详细介绍,可以自己去看这些资料,只详细介绍最终的客户端和服务器端交互逻辑。/********************************************1,参考****************************************/////////////////////// 重点参考资料https://github.com/gaoyangcr7/Biom...

2019-03-11 20:40:59 1314

原创 Android_接入微信demo(分享、支付、登录)_签名无效

解决的问题:接入微信时,从官网下载的demo,运行后提示签名无效。解决的方案:1)自己申请一个账号,使用自己的包名和签名,然后再写个人测试程序2)直接使用微信的demo,测试实际效果方案1,需要申请账号,走复杂的流程;以及写个人测试程序得花费一定的时间,还会走一些坑;百度搜出来的基本上都是这种方案2,方便快速,但会遇到一些坑。本篇,主要走的是此方案。接下来直接进入主题...

2019-03-07 09:56:48 1167

原创 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 328

原创 Java的UML类图(二)

参考:http://www.cnblogs.com/samchen2009/p/3315999.html 前言    本文依次逐个介绍 “实现”、“继承”、“依赖”、“引用”、“聚合”、“组合”;每一个以案例的形势进行表述1,实现:Realization实现就是实现定义的接口协议,通常使用implements关键字    案例Apublic interface WindowManager { ...

2018-07-04 19:42:05 311

原创 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 5887

原创 Android中Looper原理

参考:https://www.zhihu.com/question/34652589// Handlerhttps://blog.csdn.net/rock_joker/article/details/76735333// Linux pipe/epollhttps://www.cnblogs.com/coder2012/archive/2013/07/22/3204730.ht...

2018-06-27 17:35:05 4805 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 385

原创 初入数据库分库分表

参考:1, https://www.cnblogs.com/langtianya/p/4997768.html 分区分表分库2, https://blog.csdn.net/mingover/article/details/71108852 切分方案3, https://www.cnblogs.com/try-better-tomorrow/p/4987620.html  分表的实现+集群1,分区...

2018-05-14 19:33:12 135

原创 ThreadLocal源码分析以及解决常见面试问题

参考:http://www.cnblogs.com/dolphin0520/p/3920407.html 参考用例https://www.cnblogs.com/ablejava/p/5914090.html 根本原因分析 1,常规使用 static final ThreadLocal&lt;Long&gt; longLocal = new ThreadLocal&lt;&gt;(); ...

2018-05-05 14:47:11 311

原创 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 2295

原创 单个对象内存占用

1,对象的内存布局对象头:8的倍数,储存hash码、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等实例数据:对象的内容对其填充:将实际数据填充为8的倍数2,对象的访问定位1)句柄:储存对象的句柄地址,句柄中包含了对象实例数据与类型数据各自的具体地址信息2)直接指针:储存的是对象地址直接指针速度更快,但需要频繁被修改;句柄速度较慢,但reference本身不需要修改...

2018-04-17 16:03:42 119

原创 Java_集合_HashMap(6)

1,储存方式public class HashMap&lt;K,V&gt; extends AbstractMap&lt;K,V&gt; implements Map&lt;K,V&gt;, Cloneable, Serializable{ static final HashMapEntry&lt;?,?&gt;[] EMPTY_TABLE = {}; tran...

2018-03-19 19:10:53 343

原创 Java_集合_PriorityQueue(5)

1,储存方式PriorityQueue的储存方式和ArrayList相同,都是通过 变长数组实现的。唯一不同的则是,每次储存数据都会进行一次排序,从而保证储存内容是有序的ArrayList储存方式:http://blog.csdn.net/u014803950/article/details/796138852,自增方式 public boolean add(E e) { r...

2018-03-19 17:09:19 126

原创 Java_集合_ArrayList(4)

1,储存方式public class ArrayList&lt;E&gt; extends AbstractList&lt;E&gt; implements List&lt;E&gt;, RandomAccess, Cloneable, java.io.Serializable{ private static final Object[] EMPTY_ELEMENTD...

2018-03-19 17:00:07 167

原创 Java_集合_EnumSet(3)

1,储存方式public abstract class EnumSet&lt;E extends Enum&lt;E&gt;&gt; extends AbstractSet&lt;E&gt; implements Cloneable, java.io.Serializable{ final Class&lt;E&gt; elementType; final Enum[]...

2018-03-19 16:06:15 127

原创 Java_集合_HashSet(2)

问题:储存方式,如何实现自增,如何查询数据,如何获取整体大小由于HashSet比较简单,就贴单个简化源码public class HashSet&lt;E&gt; extends AbstractSet&lt;E&gt; implements Set&lt;E&gt;, Cloneable, java.io.Serializable{ private transient Has...

2018-03-19 15:25:16 146

原创 Java_集合_前言(1)

    做Android有一段时间了,项目经验积累了不少,但基础没有跟上来。印象很深的是,老大问我两个问题:    1,hashMap和hashtable的区别是什么,除了线程安全和不安全,还有什么。    2,ArrayList如何实现自增的,自增的规律是什么,里面是如何储存数据的。    于是,趁着休息时间,把原先的书捡起来,重新补一下基础。整体来说,需要学习的有List、Queue、Set和...

2018-03-19 14:40:33 165

原创 Android_混淆_常用混淆(3)

1,整体分类#-----------------------------------实体类-----------------------------------------# TODO ADD2#-----------------------------------第三方包-----------------------------------------# TODO ADD3#------...

2018-03-16 18:58:29 389

原创 Android_混淆_常用规则(2)

1,Proguard手册很多人不知道,Proguard其实是有官方手册的,而且就在Studio的SDK目录下,我的位置:     D:\study_adt_studio\sdk\tools\proguard\docs初步打开index.html --&gt; Manual --&gt; Uasge(如图)2,常用混淆规则(原文+注释)考虑到手册比较多,因此搬移了一些常用的贴在blog里。具体可打开...

2018-03-16 17:32:10 189

原创 Android_混淆_基本介绍(1)

前言:  项目进行有一定规模了,需要加上混淆了。但是之前,工程没有加过混淆,担忧加上会引入不可控的BUG,所以趁这次机会对混淆进行一次系统的学习,写了些笔记。该模块结束了,这里就将笔记整理一下。  笔记有三篇,分别为:基本介绍(1),混淆规则(2),常用混淆(3)。不多说,开始第一篇1,开启混淆android { buildTypes { debug { mini...

2018-03-16 17:09:14 185

原创 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 10070

原创 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 392

原创 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 985

原创 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 852

原创 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 226

原创 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 253

原创 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 269

原创 PHP入门之运算符+变量+常量

PS:该文建立在有C语言的基础上; 算是自己学习的笔记运算符:1,运算符(和C语言一样的,不重复)符号Php意义C意义/    商整除=复制赋值赋值(基本数据类型复制赋值,其它引用赋值)$c = &$a引用赋值---- 

2017-06-14 16:56:19 485

异步线程AsyncTask

Android的AsyncTask比Handler更轻量级一些 适用于简单的异步处理 首先明确Android之所以有Handler和AsyncTask 都是为了不阻塞主线程(UI线程) 且UI的更新只能在主线程中完成 因此异步处理是不可避免的 Android为了降低这个开发难度 提供了AsyncTask AsyncTask就是一个封装过的后台任务类 顾名思义就是异步任务 AsyncTask直接继承于Object类 位置为android os AsyncTask 要使用AsyncTask工作我们要提供三个泛型参数 并重载几个方法 至少重载一个 ">Android的AsyncTask比Handler更轻量级一些 适用于简单的异步处理 首先明确Android之所以有Handler和AsyncTask 都是为了不阻塞主线程(UI线程) 且UI的更新只能在主线程中完成 因此异步处理是不可避免的 Android为了降低这个开 [更多]

2015-05-04

计时器三种实现(Thread)

1:最基本的Handler+Thread的方式,因为最近准备着手了解线程和消息机制,所以这一个会比较详细。 2:handler.postDelayed()方法; 3:Thread+TimeTask的方式; 当然,也许还有其他的,我不知道罢了。

2015-05-03

ExpandLiatTwo

使用自定义控件,写了一个简单的ExpandListView

2015-03-30

ExpandListView

仿qq分组的界面;个人使用ecipse的编译平台; blog地址:http://blog.csdn.net/u014803950/article/details/44745805

2015-03-30

150318_进阶_写入文件到任意路径

保存文件到任意路径;http://blog.csdn.net/u014803950 blog地址

2015-03-18

SQL数据库demo

本demo是数据库基础,具体使用还需要自己修改,另外本demo可以直接运行

2014-10-15

Demo_TabHost_Fragment_141007

仅仅只有最简单的功能,展示TabHost_Fragment的基本方法, 没有延伸.

2014-10-07

空空如也

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

TA关注的人

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