自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

劝学

第一:走自己的路;第二:不要八卦别人的做法;第三:把愤怒压到明天再发。

  • 博客(138)
  • 资源 (25)
  • 问答 (1)
  • 收藏
  • 关注

原创 SharePreference与MMKV对比

多进程时,需要解决数据同步的问题,采用文件互斥锁(同时只有一个线程拿到),而非pthead_mutex(Binder死亡通知方案-此通知不能自己处理,A、B进程互相注册对方死亡通知,A一直存在就有一个永久加锁的mutext,无法释放)。将一块物理内存(可随时读写的),通过文件操作符,同时映射到用户虚拟内存空间,和内核虚拟地址空间(struct vm_struct *area,属于逻辑地址,区别于物理地址,可通过转换器计算)的一段内存块(两者大小相同)。因此,加写锁时,需要先加写锁,再释放读锁;......

2022-08-04 03:32:00 1788

原创 再谈Android消息分发

线程内调用 Looper.prepare():创建自己的Looper对象和MessageQueue,新建Hander(Looper.myLooper)用于发送本线程的消息,通过Looper.loop来执行本线程消息分发,同时结束时执行Looper.myLooper().quit()退出当前线程,不然线程一直运行,这也是HandlerThread的使用原理。Handler消息分发,优化判断msg.callback是否为null,如果不是先执行它,再执行handlerMessage。..............

2022-08-03 17:25:45 1418

原创 Kotlin基础知识点

本文来自刘兆贤的博客_CSDN博客-Java高级,Android旅行,Android基础领域博主,引用必须注明出处!Kotlin越来越流行,新的知识点和应用技巧,也十分吸引人,尤其是协程,其他还有规避回调的代码写法(类似RxJava)。下面是经典写法,比较符合kotlin语法class Test { public static long plus(int i1, int i2) { return i1 + i2; } publi...........

2022-05-13 23:48:53 1186

原创 四年直播小结

IPTV:Internet Protocol Television,交互式网络电视传输过程:将加密的视频以IP单播或组播的方式,发送给终端设备,通过DRM(Digital Rights Management数字版权管理)授权或密钥服务端,向终端传送授权或密钥,使终端能够解密视频,进行播放。视频方面:通过RTMP(Real Time Message Protocol ,TCP传输,效率低有延时但质量高,可以直接在网页端使用,需要CDN)或RTSP(UDP传输-亦可使用TCP拉流,效率高但会丢数据,适合

2022-04-28 21:06:52 5750

原创 Java基础之排序算法

本文来自http://blog.csdn.net/liuxian13183/,引用必须注明出处!新年第一篇,总结下基础的算法,包含二分排序、快速排序和分治排序1、分治排序,将数组分成一个个小数据块,每块小于3个元素,分别排序后再进行合并。 private int[] fenzhi(int[] attr) { if (attr.length > 2) { i.........

2021-01-12 17:09:28 1147

原创 LeetCode之两数相加、反转链表、少箭射球、二叉树

本文来自http://blog.csdn.net/liuxian13183/,引用必须注明出处!以前也有刷一些题目,但是没有记录,不方便回头看解题思路,今天开始就记录一下。452、https://leetcode-cn.com/problems/minimum-number-of-arrows-to-burst-balloons/思路:先排序,以数列首个数字从小到大排列,使用低位和高位循环匹配,不符合的需要再用一支箭头即结果+1,于是解出此题。 public stat...........

2020-11-24 16:51:05 962

原创 HashMap是如何实现的?

本文来自http://blog.csdn.net/liuxian13183/,引用必须注明出处!最近因XX需要,研究HashMap的内部实现,原因你懂的。经常三天时间,终于可以写下一些东西。数据结构:数组+链接。即每个数组中的单个元素,都是一个链表,该元素的下标由key的hash与数组长度决定,该链接的key的hash都相等。特点:它和HashTable大致相同(除了非线程安全和允许空键、空值),不保证排列顺序一直不变; 不要设置扩容因子过大......

2020-11-17 18:09:48 1020

原创 Mat监测内存泄露

本文来自http://blog.csdn.net/liuxian13183/,引用必须注明出处!Mat最早在Elicpse,到今未在AndroidStudio上,找到类似的功能,最近在排查内存泄露问题,因此又拿出来用了。步骤如下:1、将应用进程杀掉,以免出现数据冗余,影响出现实验结果2、将应用打开,到相关要实验的页面,模拟相关功能,测试相关流程,再关闭页面,重复几次。3、获取类GC数据的hprof文件,adb shell am dumph...

2020-06-28 20:19:36 1589

原创 Android初级第十讲之WebView的故事

Webview是谷歌提供一种加载网页的方式,随着H5的出现,越来越多的活动页面出现在Webview上,也出现React Native和Weex这样的H5框架。因此关于它,我们专门辟出来一节来讲讲。缓存模式(5种)LOAD_CACHE_ONLY: 不使用网络,只读取本地缓存数据LOAD_DEFAULT: 根据cache-control决定是否从网络上取数据。LOAD_CAC...

2019-11-25 10:29:07 886

原创 Java高级之内存初始化时机

本文来自http://blog.csdn.net/liuxian13183/,引用必须注明出处!研究内存的初始化时机,有助于设计“降低应用内存消耗”方案!public class A { private Object mObject = new Object();// or static private st...

2019-06-19 15:24:36 2154

原创 Java高级之单例的合理用法

本文来自http://blog.csdn.net/liuxian13183/,引用必须注明出处!单例,目的是共用一份“类”的引用,去操作其内部业务;故单例,应该用于多线程。如果是单线程,建议直接使用“类”作成员变量,来操作其内部业务。优势:不需要多次初始化“类”对象,共用一份“类”的引用。劣势:使...

2019-06-18 21:50:54 1261 1

原创 Android动画实战

本文来自http://blog.csdn.net/liuxian13183/,引用必须注明出处!从表现形式来看,Android开发的功能,除了底层和基础的功能之外,剩下的就是炫酷功能的实现。底层功能通常用C语言使用、Java层调用,基本功能有各种各样的控件,而炫酷功能的实现,往往一千个设计师就会有一千种设计要求。动画包含Frame和Tween两种。Frame指(序列)帧动画...

2019-04-19 10:29:04 1299

原创 Python学习之路

                                                                           本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处!      Python的应用领域越来越广泛,除了做传统的爬虫工具,还可以用来做大数据分析,最近还有超越Java语言的趋势,因此学一学Pytho...

2018-08-10 16:49:30 1018

原创 Android沉浸式的实现

本文来自http://blog.csdn.net/liuxian13183/,引用必须注明出处! iOS上没有沉浸式的工作量,因为iPhone手机本身就自带此特性,Android去开发这个特性,工作量最终算下来,花了将近一周时间。 先理解一个概念fitsSystemWindow=true,表示把页面的背景推到状态栏...

2018-07-27 17:45:44 938

原创 Android高级之WindowManager源码剖析

 本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处!PopupWindow上套PopupWindow,报错:unable to add window ,is your activity running ?经查在windowManager执行addView操作时出错[java] view plain copy@Override  public voi...

2018-06-04 09:43:27 3790

原创 Android系统消息分发体系

Handler、Looper、Message、MessageQueue之间的关系(基于Android API 26)安卓系统设计的消息分发体系,不仅在应用层广泛应用;而且在底层也是使用这个体系,与Binder一起进行消息分发,因此熟悉这个体系是十分必要的。1、ActivityThread初始化时,执行它的main方法,通过Looper.prepareMainLooper方法,初始化...

2018-04-03 00:53:25 1885

原创 Android初级开发第九讲--动画

      本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! Android中动画的应用,在应用管理软件、购物软件、追星软件等比较广泛;比如常见的进度条设计,此处尤其指圆形的那种。比如清理小火箭,从下向上飞出;比如清理软件提示,由深色渐变成浅色。这些都是动画的应用场景。 Android动画分为两种,一种叫帧动画,就像flash一样,学名Fra...

2017-11-22 15:42:17 1294

原创 Android最新打包方式-支持V2

本文来自http://blog.csdn.net/liuxian13183/,引用必须注明出处!签名机制:V1:7.0以前默认,使用META-INF目录下三个文件,MANIFEST.MF,CERT.MF,CERT.RSA来保证apk不被修改。MANIFEST.MF:记录apk资源中除META-INF,所有文件的Base64编码的SHA1值。防止apk资源被修改。CERT.MF:记录MANIF...

2017-11-09 15:57:53 2849

原创 AI将带我们去何方?(下-展望篇)

本文来自http://blog.csdn.net/liuxian13183/,引用必须注明出处! 说这么多严肃的话题,稍微来点轻松的,这是昨天李开复先生的微博。朱先生讲人类为生活本能而劳累着,但依然拥有希望,因为人类是美好的,明天是美好的,人性存在;李先生调笑到,其实我是AI,我不会累,潜台词是因为AI会帮我减少人类本能的劳动,甚至帮我自动发微博。AI确实强大,但李先生却从未提过AI的危险性

2017-08-04 11:05:35 2667 1

原创 AI将带我们去何方?(中-论述篇)

本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 现在人们生活中已经出现很多半AI的制成品,电视、空调、手机、各种车、飞机等各种需要使用电或油等能源来驱动的设备,成为收集人类行为和喜好的终端设备,给人们的“听、看、住、行”等领域或感官带来长远的扩展,使人类的组织和沟通更加缜密和细致,生活变得丰富多彩,但无论如何,选择权在人类手中,我愿意关就关,愿意

2017-08-04 11:01:04 2677

原创 AI将带我们去何方?(上-前言篇)

本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! AI即人工智能,对科幻着迷的博主对此认知颇深,打算从科幻电影入手,先讲下未来的AI将给人类带来哪些变化,哪些思考。 从最初的《星际航行》中的各种星球、地形等的介绍,其中的Data即是AI的一个结果,存储大量信息、力量大、对人类好感、趋向人类情感的进化、舍己为人等行为和特征,具备定位和

2017-07-26 23:15:02 5811 14

原创 Git教程(二)-如何上传和同步自己的git项目

本文来自http://blog.csdn.net/liuxian13183/,引用必须注明出处!Git接触并使用多年, 工作中使用较多,它的分布式存储,使每个人的电脑均为服务器的策略非常棒;再加上使用Rsa加密,使得项目可以被自己管理,大众任意提交Pr进行完善,最后自己合并分支,使得Git成为当今计算机界最为流行的版本管理工具。关于Git的日常应用,有的同事喜欢用Git...

2017-07-18 11:42:39 11780

原创 Java高级之注解、反射

本文来自http://blog.csdn.net/liuxian13183/,引用必须注明出处!Java的注解、反射等机制的产生,让动态代理成为可能,一般通过全限定名+类名,找到类,可以invoke它的构造方法以及其他方法,可以获取它的参数(Field)名称和值。注解一般用在代码的注释上、代码审查上(有没有按标准写,比如inspect)、代码注入(hook,asbect.........

2017-07-12 16:14:56 2247

原创 Java中级之线程池源码剖析

本文来自http://blog.csdn.net/liuxian13183/,引用必须注明出处!线程池伴随着线程的产生而产生,主要用于线程复用,减少内存泄露。线程池中使用Thread作为执行体,使用Runnable接口作为执行者,一个个执行者以任务的方式在执行体里完成。任务以下指一个实现Runnable接口的Worker对象,任务放在Thread中被执行原理:corePoolSize:活......

2017-07-10 20:39:08 1895

原创 Android进程中通信的方式

第一、使用进程共享的方式,往往使用android:process=remote,这样开启一个新的进程,使得所有进程都可以访问这个进程,使服务可以在多进程共享;Zygote进行fork的作用是,在单线程条件下,将父进程的资源和内存拷贝到子进程,而Binder是多线程操作的,容易造成死锁;1、数据拷贝1次(一、应用进程到内核传递数据指针二、该块数据在应用进程中申请内存三、从内核到应用层,再次传递指针,即只有第1次发生数据拷贝,为什么不直接映射同一物理空间,因为多线程资源有同步问题);三者运行在三个独立进程中。.

2017-03-30 22:11:23 5196

原创 Android常用构建工具介绍

本文来自http://blog.csdn.net/liuxian13183/,引用必须注明出处!本篇包含:Freeline、JFrog、Jenkins的介绍。Freeline:Instant Run为我们提供了增量更新的方式,支持 gradle2.0和Android4.0以上版本,让构建项目变的快速,同时由于multiDex出现...

2017-01-22 11:48:27 2963 3

原创 Git教程及问题解析

本文来自http://blog.csdn.net/liuxian13183/,引用必须注明出处!Git教程最近用Git比较多,做出教程一份,供大家参考。1、安装Git,并配置环境变量2、配置用户名,邮箱3、切到工作目录下,下载源码,先执行git init 初始化一个环境,然后 4、修改并推送到本地,最后推送到远程 5、...

2017-01-20 13:55:56 2555 1

原创 Android中级第十二讲之DNS问题

本文来自http://blog.csdn.net/liuxian13183/,引用必须注明出处!网络请求经过客户端请求,发送数据包、代理(转发)、隧道(信道)、网关(DNS),最终到服务器。我们都知道网址要通过DNS解析成IP才能到达服务器,也就说IP变化其实到达的是不同的服务器;而这里就涉及到三个问题,第一DNS怎样解析为IP,第二怎样防止IP被篡改,第三IP是否需要缓存。......

2016-12-19 20:40:29 3628

原创 Android高级之十三讲-组件化、插件化、热修复

本文来自http://blog.csdn.net/liuxian13183/,引用必须注明出处!组件化与插件化:前者对功能进行拆分后,独立开发,打成一个包发布;后者对功能拆分,使用主包+分包,可以分别独立发布。热更新:两种方式,一种是multidex,一种是修改指针;前者需要重新启动,后者无需重新启动。指下载patch包,修复错误的一种方式。...............

2016-12-14 23:25:36 5024 2

原创 Android初级第八讲之应用如何保活

本文来自http://blog.csdn.net/liuxian13183/,引用必须注明出处!一般情况下应用保活的场景在于:后台要不断定位描述一条清晰轨迹、IM通信需要及时收到消息提醒等。所谓保活就是避免被应用杀死,前台应用自然不用说,主要是后台应用。我们知道Android的应用优先级是-16到15,系统进程一般拥有-16到-1的优先级,而普通应用只拥有0-15的优......

2016-12-14 21:59:20 6169

原创 Android高级之十三讲之安全方案

本文来自http://blog.csdn.net/liuxian13183/,引用必须注明出处!Android是开源的,内部API相对比较透明,因此App的威胁会多一些,了解一些安全知识,有助于用户体验和产品稳定性。1、App组件方面,慎用android:export=true(Activity、Service、BroadcastReveiver如果组件有超过一个intent-fi......

2016-12-14 21:31:51 4554

原创 Android高级之十二讲之内存、电量、卡顿、流量

本文来自http://blog.csdn.net/liuxian13183/,引用必须注明出处!安卓应用的内存往往是有限的,从开始的8M到16M,24M,32M,48M,64M等逐步变大,但内存的变大是由于分辨率的提高导致,并不意味着内存的可使用量随之增加,而不及时回收(即使Java有自己的垃圾回收机制),容易造成内存过高,引起手机变卡,体验流畅性下降)。-------......

2016-12-09 18:12:15 3522

原创 Java算法之字符串反转分析

本文来自http://blog.csdn.net/liuxian13183/,引用必须注明出处!在日常的开发工作中,算法不会显得那么重要,然而在数据量达百万级别的时候,差距会非常大,今天带大家研究下常见的字符串反转算法。public class StringReverse { public static String reverse1(String or...

2016-11-29 10:59:33 2229

原创 研究微信即时通讯的服务端、朋友圈、红包、推送等方案

本文来自http://blog.csdn.net/liuxian13183/,引用必须注明出处!即时通信:前端获得消息发送到服务端,服务端处理后通过推送的方式,发给接收方;Android使用长连机制,联通网络长连十几分钟,电信仅五六分钟,因此需要根据测试的芯片类型,为了保活,可能要三四分钟就要去连一次,叫心跳机制;IOS通过APN机制推送。即时通讯是在一种平等、开放情况下...

2016-11-27 13:41:45 7120 1

原创 Android高级第十一讲之不同系统间的区别

本文来自http://blog.csdn.net/liuxian13183/,引用必须注明出处!Android系统不断的升级,从基础到中级再到高级,逐步升级是软件工程敏捷开发的一个重点,在每个版本中升级不同功能,以满足越来越丰富的用户需求,作为一名开发者,熟悉各个版本之间的异同,有助于做产品适配、安全等各方面业务。2.3,加入陀螺仪等一些传感器支持和前后相机支持(Android变...

2016-11-07 22:13:09 2557

原创 Android源码剖析之Framwork层后记篇(硬件消息传递、apk管理、输入法框架、编译过程)

本文来自http://blog.csdn.net/liuxian13183/,引用必须注明出处! 既然写到后记篇,就代表本系列到此为止,暂时告一段落;其他一些Manager随后有时间再补,就像源码的一些翻译一样,有时间总会补上的,同时也希望大家一如既往的喜欢,直言不讳的提出宝贵意见。 后记将讲述输入模块和编译系统内容,以及对整个系统的总结。

2016-09-01 12:06:18 2707 3

原创 Android源码剖析之Framwork层消息传递(Wms到View)

本文来自http://blog.csdn.net/liuxian13183/,引用必须注明出处!前面讲过Wms、Ams与Activity的一系列交互,包括创建过程、消息传递、窗口展示等,紧接上篇介绍最终的实现者-窗口和View,上篇对窗口已经有了比较多的介绍,本篇我们再对View再更深一步的了解。首先明确下View的功能,主要用来展示画布即交互的图片背景等,而且承接各......

2016-08-30 18:02:57 3091

原创 Android源码剖析之Framework层进阶版(Wms窗口管理)

本文来自http://blog.csdn.net/liuxian13183/,引用必须注明出处!上一篇我们主要讲了Ams,篇幅有限,本篇再讲讲Wms,即WindowManagerService,管理窗口的服务。主要负责窗口的创建、删除、状态等与手机交互的事情,与Ams配合使用,在SystemServer中创建,用来保持窗口层级关系方便SurfaceFlinger绘制屏幕,和传递...

2016-08-26 18:57:37 2956 1

原创 Android源码剖析之Framework层实战版(Ams管理Activity启动)

本文来自http://blog.csdn.net/liuxian13183/,引用必须注明出处!讲到实战,就不得不拿两个例子来说明,本篇想拿的是应用最广泛的两个:Ams和Wms,一个管理activity,一个管理窗口,而前面我们已经讲了不少,本篇不再赘述。关于Ams对activity的管理,无非这几个方面:启动哪个activity、物理按键对activi...

2016-08-24 18:03:26 5346 1

原创 Android源码剖析之Framework层升级版(窗口、系统启动)

本文来自http://blog.csdn.net/liuxian13183/,引用必须注明出处!看本篇文章之前,建议先查看:Android源码剖析之Framework层基础版前面讲了framework的整体层次和基础定义与服务,接下来我们讲讲窗口的创建,底层与应用层界面的交互和管理。一、窗口的创建 上一篇我们讲了三种窗口的类型,本篇接着讲窗口的创建过程,拿Activity创建窗口为例此步骤优先...

2016-08-22 19:14:35 2702

puttygen.exe

如题

2017-07-18

AndroidMvvm

相对完事的mvvm例子

2017-06-29

Android Mvvm例子

如关键字

2017-06-29

等比例缩放(最大宽高是屏幕宽或高)的ImageView

如题,解决首次加载,图片高于屏幕高,或者宽于屏幕宽的情况

2017-05-19

Mock搭建资源

支持定义完接口,而后端未开发好前提下,自行开发接口,加速移动端开发进程

2016-10-13

反编译工具

可以反编译国内所有流行App,不可作恶!

2016-09-22

Cordova源码

cordova,hybird

2016-06-17

常见的加密方法

常见的MD5、SHA、RSA和DES、AES加密

2016-06-16

Android的AIDL例子

包含客户端和服务端两个例子,讲述AIDL的原理、规范以及使用方法

2016-05-05

Android Service和webp讲解源码 

有关weby的使用,以及后台进程与应用线程间的区别应用

2015-06-18

用Eclipse插件将文件批量编码

利用此插件可以批量将文件由原格式转成UTF-8,GBK,GB2312,GB18030,并且支持互转

2014-07-03

Sina、Alipay、QQ、Qihoo第三方网页登录和部分代码

市面上比较多的是QQ和新浪微博的第三方登录,奇虎360的比较少,但好做些,支付宝第三方登录的例子很少,所以提供这个例子,希望能给大家带来一定帮助。

2014-06-06

自定义权限

自定义权限,你可以通过这个来设计你的组件,是否可以让别人来使用。

2014-05-16

WheelViewDate

参考Iphone上日期效果,使用scroller,封装好的Dialog,可以直接拿来用!

2014-04-09

Xmpp服务器与客户端

Android推送例子,0.5版本,有需要的可以下载下来研究研究

2014-03-31

Android Apk反编译工具

android反编译,android的apk反编译工具,适合大家一起学,可以把android生成的apk转为java代码,希望对大家有用。 一、更改apk文件的后缀名,如:LianyunHelper3.0.11.apk改成LianyunHelper3.0.11.zip 二、用zip解压缩LianyunHelper3.0.11.zip文件 三、从解压缩的文件夹中取出classes.dex文件并放到dex2jar.bat所在目录 四、运行cmd命令,进入dex2jar.bat所在的目录,输入dex2jar.bat classes.dex即可生成classes.dex.dex2jar.jar文件 五、用jd-gui工具打开classes.dex.dex2jar.jar文件,即可看到源码 六、将AndroidManifest.xml文件放到AXMLPrinter2.jar所在目录,运行cmd命令,进入 AXMLPrinter2.jar所在目录,输入java -jar AXMLPrinter2.jar AndroidManifest.xml > AndroidManifest.txt。

2013-11-20

Android自定义权限

Android自定义权限解释小例子,如果你需要,赶快来下载吧

2013-11-07

json解析之fastjson包

解析json更快,更便捷,alibaba自己封的json包,fastjson

2013-05-31

Android定位全实现

如果你只需要获得定位的经纬度,或者所以省市,或者所在街道,那么你找对地方了!由于google地图在中国已经不吃香,故定位采用百度地图。

2013-02-26

Android对焦拍照功能实现

点击屏幕,对焦,拍照功能全实现!部分资料来自网络,对焦功能自己想出的实现方法,所以1分下载吧,评价还你1分!

2013-02-26

安卓API的Demo

如果你觉得自己安卓水平还不错,想提高,那就把这些demo里自己喜欢的,建一个项目,都给写出来,日后作为自己的源码来源。

2013-01-11

Android工程师开发必备软件集合

一份不错的,全新的,软件开发工具及下载网址集合!

2012-07-30

一份简历模版

简历模版

2012-06-11

集合对象排序

经常遇到下拉菜单需要排序的事情,或者取以一定规律排列的数据,这时候一个关键的问题就是排序问题。

2012-05-22

JAVA预赛试题的相关内容

如果想在JAVA中从基础走的更远,请仔细阅读!

2009-11-02

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

TA关注的人

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