进阶类
文章平均质量分 91
亮亮在江湖
One is never too old to learn!
展开
-
Android 实现WebSocket长连接
最近项目中引入了实时刷新和接收服务器数据的功能,考量后通过WebSocket长链接来实现。接下来了解一下webSocket 的特点:1、建立在 TCP 协议之上,服务器端的实现比较容易。2、与 HTTP 协议有着良好的兼容性。默认端口也是80和443,并且握手阶段采用 HTTP 协议,因此握手时不容易屏蔽,能通过各种 HTTP 代理服务器。3、支持双向通信,实时性更强。4、数据格式比较轻量,性能开销小,通信高效。5、可以发送文本,也可以发送二进制数据。6、没有同源限制,客户端可以与任意服务器原创 2022-04-01 12:05:00 · 9835 阅读 · 2 评论 -
JAVA线程池实现类ThreadPoolExecutor分析
线程池的优点:1、重用线程池的线程,减少线程创建和销毁带来的性能开销2、控制线程池的最大并发数,避免大量线程互相抢系统资源导致阻塞3、提供定时执行和间隔循环执行功能Android中的线程池的概念来源于Java中的Executor, Executor是一个接口, 真正的线程池的实现为ThreadPoolExecutor.Android的线程池 大部分都是通 过Executor提供的工厂方法创建的。ThreadPlloExecutorThreadPoolExecutor是线程池的真正实现, 它的构造原创 2020-07-27 21:16:13 · 323 阅读 · 0 评论 -
2020年进阶掌握知识点
Android技术难点: 1:IPC进程间通信 (https://blog.csdn.net/lou_liang/article/details/88738981) 2:View的事件体系以及工作原理 (https://blog.csdn.net/lou_liang/article/details/88739035) 3:Android消息机制 / 线程和线程池 (https...原创 2019-04-08 13:56:41 · 977 阅读 · 0 评论 -
Java多线程---锁的种类都在这
java锁分类 ---原文1、悲观锁 / 乐观锁悲观锁 :每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,Java中synchronized和ReentrantLock等独占锁就是悲观锁思想的实现。乐观锁:每次去拿数据的时候都认为别人不会修改不上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,使用版本号机制和CAS算法实现。两种锁的使用场景乐观锁适用于多读场景,省去了锁的开销,加大了系统的整个吞吐量。但如果是多写的情况,一般会经常产生冲突,这就会..转载 2020-06-24 23:02:31 · 1579 阅读 · 0 评论 -
Android MediaPlayer和SurfaceView播放音视频
Android支持的媒体格式列表,可见:Supported Media Formats文档在播放网络上的视频流时,Android原生的MediaPlayer支持两种协议,HTTP和RTSP,这两种协议最大的不同是,RTSP协议支持实时流媒体的播放,而HTTP协议不支持。因为VideoView的底层实现是MediaPlayer,因此VideoView也支持以上两种协议(1)获得MediaPlayer实例:MediaPlayer mp = new MediaPlayer();MediaPlayer原创 2020-06-10 23:34:28 · 821 阅读 · 0 评论 -
有关ConcurrentHashMap原理总结
jdk1.7 时性能分析如图所示,是由 Segment 数组、HashEntry 组成,和 HashMap 一样,仍然是数组加链表Segment 是 ConcurrentHashMap 的一个内部类,主要的组成如下:staticfinalclassSegment<K,V>extendsReentrantLockimplementsSerializable{ privatestaticfinallongserialVersionUID=22...原创 2020-05-23 22:22:14 · 324 阅读 · 0 评论 -
java反射原理解析
反射通过3种方式获取字节码对象对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性 (1)对象.getClass() Object类的getClass()方法,判断两个方法是否是同一个字节码文件 (2)类名.class 静态属性class锁对象 (3)class.forName() class类中静态方...原创 2020-05-23 14:31:15 · 227 阅读 · 0 评论 -
Retrofit使用拦截器添加Cookie
最近忙于公司的项目,一直没有更新博客,趁着空余的时间想做一个小项目,也顺便巩固下Android知识点,思来想去借助着鸿洋的玩Android 开放API,从头到尾的开发一遍,看看自己写的和别人的差距有多少。 做到获取收藏接口的时候,发现请求的数据需要传递Cookie信息,就是指用户在登录成功后,服务端会返回Cookie,里面包含用户的登陆状态信息等,这样用户在访问自己...原创 2020-04-13 22:57:34 · 1179 阅读 · 1 评论 -
Android主流网络框架对比
一、Volleygoogle推出的异步网络请求框架和图片加载框架。特别适合数据量小,通信频繁的网络操作。android绝大多数都属于这种类型,但是对于数据量比较大的操作,比如:下载,就不太适用了。来源:http://a.codekk.com/detail/Android/grumoon/Volley%20%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90原创 2017-12-23 19:51:00 · 351 阅读 · 0 评论 -
Android指纹解锁,更好的接入到应用中
话说现在Android指纹解锁在不少的app中投入使用,代替了手动输入登录密码的繁琐,达到快速跳转到主界面的需求。话不多说上一张北京银行app的指纹登录截图:查阅了文档后发现Android从6.0开始支持指纹验证了,首先你得手机的支持指纹这个功能,而Android手机厂商的手机硬件都是由各自生产的,并不能包保证就具有指纹的功能,那么我们还是要既做指纹登录还是要做密码输入登录,接下来做个demo...原创 2019-01-17 14:24:05 · 2301 阅读 · 1 评论 -
Android 刘海屏适配全攻略
这里主要是介绍一下Android P中刘海屏的适配以及Android P之前的适配。为什么要分开呢?因为Android P之前官方还没提供API来进行适配,都是由各家厂商来提供适配方案的。2.Android P中的刘海屏适配2.1 Google对刘海屏的支持介绍Google将刘海屏命名为屏幕缺口了,这一小节内容摘自Android官方介绍:屏幕缺口支持Android P 支持最新的全...转载 2019-01-08 16:44:45 · 1630 阅读 · 0 评论 -
RecyclerView与ListView 对比浅析:缓存机制
一. 背景PS:相关知识:ListView与RecyclerView缓存机制原理大致相似,如下图所示:滑动过程中,离屏的ItemView即被回收至缓存,入屏的ItemView则会优先从缓存中获取,只是ListView与RecyclerView的实现细节有差异.(这只是缓存使用的其中一个场景,还有如刷新等)二. 正文2.1 缓存机制对比1. 层级不同:RecyclerVi...转载 2019-03-05 19:14:12 · 277 阅读 · 0 评论 -
EventBus 3.0 源码分析
1.简介想必每个入了门的Android开发者都多少对EventBus有过了解,EventBus是一个Android事件发布/订阅框架,通过解耦发布者和订阅者简化 Android 事件传递。EventBus使用简单,并将事件发布和订阅充分解耦,从而使代码更简洁。一直以来很受开发者的欢迎,截止到目前EventBus的安装量已经超过一亿次。足以看出EventBus有多么的优秀。目前网上已经有不少...转载 2019-03-18 16:32:55 · 195 阅读 · 0 评论 -
刘海屏适配方略
适配刘海屏的两种情况 1.沉浸式状态栏:适配方案就是将窗口布局下移,预留出状态栏的空间。 2.全屏显示模式:不做适配的话状态栏会呈现一条黑边。适配方案是首先判断系统版本,是Android P及以上就按照官方的API来适配,否则根据手机厂商的适配方案进行适配1、 针对沉浸式状态栏3种方案适配--可以成功的避开状态栏(危险区域) //方法一:利用fitsSystemWindow...原创 2019-04-08 15:36:16 · 591 阅读 · 0 评论 -
Android调用Tbs打开不同的附件
最近项目中加入了附件的功能,查阅后发现Tbs腾讯浏览服务可以更快捷的满足需求。tbs支持的46种文件格式,23种视频格式。下面贴上主要的代码:MainActivity.classdatas.add(new AttachBean(".doc","doc文件","http://www.hrssgz.gov.cn/bgxz/sydwrybgxz/201101/P020110110748901...原创 2019-08-05 21:51:41 · 998 阅读 · 2 评论 -
仿滴滴打车地图选点(包含地图选点,离线地图,导航路线)
根据项目的需要今天做一个百度地图得功能: 1、百度地图状态改变监听,用户拖动地图(可以设置只能在半径范围内活动)可以实时展示经纬度 2、接入全国各省市离线地图,下载离线地图后无网络情况下实时显示位置 3、设置导航路线,从当前位置到目的地调用第三方地图导航效果图:下面开始讲一下项目中主要知识点,文章末尾附上demo,便于更多的同学运用集成百度地图api使用百度地图...原创 2019-08-31 17:21:41 · 3297 阅读 · 1 评论 -
手机系统自带相机相册上传服务器
本篇文章主要实现点击系统自带的相机,相册获取到图片,进行裁剪上传到服务器。以及6.0动态权限的获取。首先:private static final int CAMERA = 1; //相机private static final int PICTURE = 2; //相册第一步:设置相机相册点击事件,包括设置6.0动态权限的获取。case R.id.user_pop_photograph: /...原创 2018-02-23 17:29:20 · 601 阅读 · 0 评论 -
Android的四种跨进程通信
由于android系统中应用程序之间不能共享内存。因此,在不同应用程序之间交互数据(跨进程通讯)就稍微麻烦一些。在android SDK中提供了4种用于跨进程通讯的方式。这4种方式正好对应于android系统中4种应用程序组件:Activity、Content Provider、Broadcast和Service。其中Activity可以跨进程调用其他应用程序的Activity;Content转载 2017-12-26 21:25:01 · 381 阅读 · 0 评论 -
MVC,MVP,MVVM与架构经验谈
和MVC框架模式一样,Model模型处理数据代码不变在Android的App开发中,很多人经常会头疼于App的架构如何设计:我的App需要应用这些设计架构吗?MVC,MVP等架构讲的是什么?区别是什么?本文就来带你分析一下这几个架构的特性,优缺点,以及App架构设计中应该注意的问题。1.架构设计的目的通过设计使程序模块化,做到模块内部的高聚合和模块之间的低耦转载 2017-12-24 14:04:14 · 657 阅读 · 0 评论 -
android-skill-summary
Android 技能总结,各种基础和进阶内容的资料收集。本文主要是整理本人所收藏的Android开发知识,覆盖面不是很全,欢迎大家提交PR进行完善,有空时我会持续完善。整理起来好累,。还有掘金的书签还没整理出来,等待收录。本收录侧重于进阶内容,对于基础知识没有概括很细致,因为最开始原始累积开发经验阶段我大多是在一些视频网站学习,查阅大牛博客,通过搜索引擎解决问题,没有保存一些基础知识的链接转载 2017-11-27 15:42:47 · 281 阅读 · 0 评论 -
GitHub上最火的Android开源项目持续更新中.....
github最大的痛点在于,拿到开源项目不会用,导入各种报错,readme看不懂,推荐给大家一个链接,所有的 项目都亲测没有问题并且全部配置了详细的步骤和配套视频进行解说,欢迎大家star。项目地址:https://github.com/open-android/Android欢迎关注微信公众号、长期为您推荐优秀博文、开源项目、视频微信公众号名称 : Android干货程序转载 2017-11-27 15:41:14 · 861 阅读 · 0 评论 -
优秀的Android开源项目收集
转载请注明出处 http://blog.csdn.net/u011071427/article/details/52996833 本文出自Allen李的博客网络上开源的Android项目实在是太多了,我在这里收集了一些我认为不错的开源项目供大家参考文档目录(快速导航)第三方库视图控件开源Android项目实用网址第三方库项目名称项转载 2017-11-27 15:37:41 · 252 阅读 · 0 评论 -
Android5.0,6.0,7.0新特性整理
背景Android5.0(Android Lollipop)是谷歌公司2014年10月发布的全新安卓系统,至今已经两年多。然而由于国产手机对安卓ROM的深度定制或修改,以及手机厂商、芯片制造商、运营商之间错综复杂的关系,我们更新最新安卓版本往往需要1年左右时间的等待。2015年5月发布了Android6.0(Android Marshmallow),2016年8月发布了Android7.0转载 2017-11-27 15:07:51 · 605 阅读 · 0 评论 -
Android项目中加入弹幕功能
大家好,最近的项目中需要实现弹幕的功能,于是乎就寻找了不少的材料,翻看了郭神写的弹幕博客,以及在github上查阅了哔哩哔哩开源的效果库。整合写了下有关弹幕的文章。详细的有关弹幕知识可以查看:http://m.blog.csdn.net/article/details?id=51056646 哔哩哔哩开源的效果库:https://github.com/Bilibili/DanmakuFla原创 2017-12-12 00:00:17 · 2887 阅读 · 6 评论 -
生成专属二维码
项目的需要,最近做了一个自动生成二维码,希望对大家有帮助。请看效果图首先就是要添加依赖集成Zxing compile 'com.google.zxing:core:3.2.1'接下来输入你想输入的东西,点击生成二维码mGetQr.setOnClickListener(new View.OnClickListener() { @Override public void onClick...原创 2018-03-16 18:48:55 · 2692 阅读 · 0 评论 -
Android开源实战:SearchView搜索框(含历史搜索记录)
前言Android开发中,类似下图的搜索功能非常常见搜索功能今天,我将手把手教大家实现一款 封装了 历史搜索记录功能 & 样式 的Android 自定义搜索框 开源库,希望你们会喜欢。示意图已在Github开源:地址:SearchView,欢迎 Star !目录示意图1. 简介一款封装了 历史搜索记录功能 & 样式 的Android自定义搜索框已在Github开源:地址:Sear...转载 2018-05-17 15:41:06 · 4715 阅读 · 0 评论 -
关于RetrofitUtil网络框架封装,让你事半功倍
上一篇文章讲解了Retrofit基础实例,接下来对它进行框架的封装,让调用更加的简单,高效。请看一下工程的结构。一、首先NetKitCallBack中定义了回调的接口包含成功,警告以及错误的提示public void success(T data);public void warning(T data, Integer status, @NonNull String message, Stri...原创 2018-11-14 18:22:39 · 1252 阅读 · 0 评论 -
自定义LayoutManager实现抖音的效果
抖音.gif时下最火的莫过抖音了,实现这个效果应该很简单嘛,用ViewPager就可以了。但是等你通过ViewPager来实现的时候,手机内存不够用的情况就会显现出来。有没有更好的方式呢???自然是有,每个人都会用RecyclerView吧,我们就用RecyclerView来实现这个效果,关于内存的回收利用就交给RecyclerView就好了。那么我们怎么通过RecyclerView来实...转载 2018-10-31 13:55:40 · 1171 阅读 · 1 评论 -
目前最精准的Android开源计步器
作者:码农一颗颗链接:http://www.jianshu.com/p/cfc2a200e46d昨天逛简书看到的文章,记得很久前也有朋友咨询计步器怎么实现,如何保活之类的,刚好看到了文章,然后下载了demo体验了一哈,顺便看了下代码,也算是补充了一下自己的知识面。因为是取得系统计步数,也是相当的精准,今天有意跑了一天,和微信运动做了下对比。 两者差距大概在20步,可以说...转载 2018-10-23 21:51:43 · 14370 阅读 · 5 评论 -
仿QQ锁屏状态下消息提醒
最近项目开发中需要手机屏幕唤醒功能,查阅资料后整理了demo,当锁屏状态下收到通知,唤醒屏幕。主要思路为通过MyService服务发送一条广播,然后判断如果为锁屏状态就启动锁屏消息的activity.此时有震动和铃声提示,显示倒计时。下面请看效果图:实现步骤:1:在服务中发送广播由于写这个demo,没有引入第三方推送,我就用Service来代替,大致就是说,开启一个后台服务,在退出AP...原创 2018-10-11 16:01:18 · 1118 阅读 · 0 评论 -
Android键盘操作遇到的问题解决方案
Android 键盘相关常见问题有:限制输入框内字数,超过字数不让输入,并且提示 点击外部区域键盘自动收起 如何获取键盘高度 键盘与面板的切换冲突下面将对上述问题各个击破。1. 限制输入框内字数,超过字数不让输入,并且提示etReply.setFilters(new InputFilter[]{new InputFilter() { @Override pub...原创 2018-09-26 14:44:27 · 871 阅读 · 0 评论 -
weex 轮播图
<indicator><indicator> 组件通常用于显示轮播图指示器效果,必须充当 <slider> 组件的子组件使用。子组件<indicator> 组件没有任何子组件。样式<indicator> 组件有一些私有样式,如下: item-color {color}:indicator指示点未被选中时...原创 2018-08-20 15:36:52 · 1727 阅读 · 0 评论 -
Android优秀框架整理
1. Retrofit 一句话介绍:Retrofit是一款类型安全的网络框架,基于HTTP协议,服务于Android和java语言上榜理由:Retrofit以21.8k的stars量雄踞github中android子标题榜首,第一当之无愧。官网地址 http://square.github.io/retrofit/github https://github.com/square/...原创 2018-08-10 11:49:51 · 666 阅读 · 0 评论 -
Android中关于闹钟提醒的解决方案
效果图来看分析和讲解之前,先看看效果吧,效果图如下:设置界面 闹钟提醒界面 AlarmManager对于AlarmManager里的方法我就不逐一介绍了,如果都介绍讲完估计就天黑了。AlarmManager这个类提供对系统闹钟服务的访问接口。 在API 19 以前,AlarmManager的常用方法有三个: * set(int type,long startTime,Pend...转载 2018-08-06 09:40:57 · 10432 阅读 · 3 评论 -
Android仿QQ登录下拉历史列表
最近项目开发中做到注册登录时,产品要求登录历史列表类似于QQ登录,经过一番的思考着手开始撸代码,下面是两张效果图。demo中包含了Sqlite数据库增删改查,对存储的账号进行按照最新的时间排序,最多存储5条数据。首先创建MyHelper建表:public class MyHelper extends SQLiteOpenHelper { public MyHelper(Context c...原创 2018-05-16 17:08:25 · 3537 阅读 · 3 评论 -
Android缩略图切换大图,包含RecyclerView和Viewpager联动
最近产品提出了需要做个缩略图展示大图,结合viewpager和recyclerview使用,下面上效果图: 这里包含了显示在线网络图片,点击缩略图条目跳转到另一个页面展示大图,PhotoView双击放大缩小,单击消失,滑动viewpager页面联动底部的recyclerview条目以及点击底部条目上面的大图跟随着切换位置。下面请看主要代码讲解:picList = new ArrayLi...原创 2018-05-21 17:07:31 · 2660 阅读 · 0 评论 -
Android 进程保活探究
本文转载于:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2016/0418/4158.html关于 Android 平台的进程保活这一块,想必是所有 Android 开发者瞩目的内容之一。你到网上搜 Android 进程保活,可以搜出各种各样神乎其技的做法,绝大多数都是极其不靠谱。前段时间,Github还出现了一个很火的“黑科技”转载 2017-12-19 21:13:22 · 212 阅读 · 0 评论