![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
【Android开发】
文章平均质量分 97
Dawish_大D
路漫漫其修远兮,技如逆水行舟,不进则退!
展开
-
两张图看懂Android开发中MVC与MVP的区别
看了很多文章,没有很好的文章能简明扼要的说清楚Android开发中MVC和MVP的区别。MVC很早就出来了,之前广泛用于JavaWeb开发中,MVC也可以用来开发Android,但是有些水土不服!1、MVC结构示意图 ————- 点击打开大图 ————-2、MVP结构示意图 ————- 点击打开大图 ————-好用的在线UML工具:https://www.processon.com/2、MVP与原创 2017-08-13 02:06:23 · 22737 阅读 · 10 评论 -
ExecutorService+LruCache+DiskLruCache用一个类打造图片加载库
打造自己的图片加载库!原创 2017-07-08 18:28:57 · 668 阅读 · 0 评论 -
HTTP、TCP、UDP、Socket解读
1、导读记得上大学时上过《计算机网络基础》专门课,当时真是单纯善良无知,觉得我以后又不搞网络这一块的东西,没必要好好学习计算机网络这们课程,只要考试通过就行了。但是工作后的我发现,不管是我们是不是做软件开发,都会多多少少接触接触到计算机网络,因为计算机网络无处不在。平时生活中我们要接触到路由器,交换机,dns,ping,修改dns等等这些基本的操作,作为软件开发者,我们要接触到tcp、udp、htt原创 2017-09-16 22:54:22 · 1284 阅读 · 0 评论 -
Android核心知识点精华文章收藏
Android知识点精华文章收藏收藏一些介绍android核心知识点的优秀文章,做一下笔记,有兴趣的同学也可以共同参考:《通俗理解Android事件分发与消费机制》 – 伍歌歌 Android开发艺术探索《安卓自定义View教程目录》 – GcsSloop《git 命令常用总结》 – NewPanderKing《图解 Android 事件分发机制》 – Kelin《Android 消息处原创 2017-02-14 22:54:56 · 1108 阅读 · 0 评论 -
优雅的使用ActivityLifecycleCallbacks管理Activity和区分App前后台
一、ActivityLifecycleCallbacks接口介绍API 14之后,在Application类中,提供了一个应用生命周期回调的注册方法,用来对应用的生命周期进行集中管理,这个接口叫registerActivityLifecycleCallbacks,可以通过它注册自己的ActivityLifeCycleCallback,每一个Activity的生命周期都会回调到这里的对应方法。之前我们原创 2017-08-11 14:23:10 · 24886 阅读 · 5 评论 -
Android APP一段时间无操作显示屏保
Android TV 视频播放器的屏保原创 2015-11-29 14:36:31 · 22427 阅读 · 19 评论 -
Socket长连接Android端心跳机制实现
前面用golang写的socket服务端请移步:http://blog.csdn.net/u010072711/article/details/760821761. 把socket链接和心跳功能都放在一个Service中,为什么要放在Service中? 一般我们这种socket几乎是跟app的生命周期一样长,甚至更长。不管在不在Service中去完成操作,我们都得开异步线程,虽然Service并原创 2017-07-25 22:36:27 · 18247 阅读 · 11 评论 -
Android视频播放软解与硬解的区别
硬解,用自带播放器播放,android中的VideoView软解,使用音视频解码库,比如FFmpeg一、硬解码硬解:就是调用GPU的专门模块编码来解,减少CPU运算,对CPU等硬件要求也相对低点。软解需要CPU运算,变相加大CPU负担耗电增加很多。硬件解码是将原来全部交由CPU来处理的视频数据的一部分交由GPU来做,而GPU的并行运算能力要远远高于CPU,这样可以大大的降低对CPU的负载,CPU原创 2016-09-02 14:36:42 · 35220 阅读 · 6 评论 -
apk打包流程
1、导读.apk文件其实就是一个压缩文件,把文件的后缀改成.zip就可以用windows解压软件解压了。 这是一个apk文件改成zip文件解压后的样子:lib 文件夹里面存放的是so动态链接库,so动态链接库是不需要做处理做apk打包一些列压缩处理的。META-INF 签名文件夹,里面存放三个文件,有两个是对资源文件做的SHA1 hash处理,一个是签名和公钥证书。res 资源文件夹,里原创 2017-08-16 08:27:57 · 2077 阅读 · 1 评论 -
java多线程同步(wait、notify)生产者消费者简单示例
一、为何写最为一个Android开发者,如果做得不够深入可能为不会去处理多线程同步的问题,稍微简单点可能使用一个线程池就可以搞定了,有关线程池的介绍可以参考我的另一篇文章:ExecutorService+LruCache+DiskLruCache用一个类打造简单的图片加载库 只是前段时间研究Android音视频硬解码,看到开源项目中用到了线程同步,就是在视频的YUV数据的暂存,和解码为视频并展示,原创 2017-07-16 21:19:27 · 2313 阅读 · 1 评论 -
Android AOP三大金刚简介
原文地址:http://www.jianshu.com/p/be8a573f5810 相关文章:http://www.jianshu.com/p/dca3e2c8608a 大神要不是去了简书要不就是有自己的博客,CSDN日不就已?AOP是什么这里不多作解释了,个人理解总结下来就是相对于各个垂直深入的业务逻辑,每个业务逻辑深度的某个层面他们有需要共同的特征,此时对这种特征进行统一的处理,也就是所谓转载 2017-05-23 22:49:18 · 1002 阅读 · 0 评论 -
Android自定义View--Flyme6的Viewpager指示器
最新更新的Flyme6整体效果不错,动画效果增加了很多了,看了看flyme6的Viewpager指示器,觉得有点意思,就模仿写了一下,整体效果如下: github地址:https://github.com/Dawish/FlymeTabStripGradleallprojects { repositories { maven { url 'https://jitpack.i原创 2017-01-22 13:37:45 · 1420 阅读 · 3 评论 -
Android使用Rxjava异步递归读取内存卡中所有的视频文件
Rxjava是一个异步调用库,可以很灵活地使用操作符来满足各种的异步操作需求。 RXjava入门引导文章请看:http://blog.csdn.net/job_hesc/article/details/46242117原创 2016-06-11 20:38:38 · 7000 阅读 · 0 评论 -
使用ip地址操作ADB命令
在我们平时的调试设备可能一般都是使用usb连接的方式,有时候觉得连接一根数据线很麻烦,干脆使用ip地址的方式来调试更方便,前提你的电脑跟手机是在同一局域网里面!,下面是详细步骤。 第一步:使用 USB 线将设备连接到主计算机。第二步: 输入adb命令 adb tcpip 5555设置当前设备以监听端口 5555 上的 TCP/IP 连接。默认的端口号是5555,要是有多个设备连接就会有多个原创 2017-02-19 20:48:27 · 13537 阅读 · 0 评论 -
大话AOP与Android的爱恨情仇
1. AOP与OOP的区别平时我接触多的就是OOP(Object Oriented Programming面向对象)、AOP(Aspect Oriented Programming面向切面)这两种编程方式,我用自己的语言来解释一下这两者的区别: OOP: 专业术语: OOP(面向对象编程)针对业务处理过程的实体及其属性和行为进行抽象封装,以获得更加清晰高效的逻辑单元划分。 面向对象侧重静原创 2017-08-10 15:09:32 · 3755 阅读 · 9 评论 -
Android IPC之Binder机制分析
原文链接: —Android IPC之Binder机制分析—更多精彩请点击: AIDL实现IPC详解——AIDL实现IPC详解一、 Android IPC方式选择1.1 IPC释意IPC:Inter-Process Communication,进程间的通信或跨进程通信。因为不同的进程是不能共享内存块的,所以进程之间的通信需要使用特别的方式。进程中的线程是可以共享内存的,就是多个线程可以操作或者可以原创 2017-09-02 13:11:25 · 1248 阅读 · 2 评论 -
【大揭秘】Android架构组件ViewModel来龙去脉
ViewModel是google官方的MVVM架构组件,目前已经集成到了最新的支持库中了,是MVVM架构的核心组件之一。不懂MVVM的请看之前的文章:(一)Android官方MVVM框架实现组件化之整体结构 网上看到的ViewModel的博文千篇一律,实在忍不了,自己写看了源码写了一篇,欢迎拍砖! ViewModel是存储UI相关数据并不会因为旋转而销毁的类。最为重要的就是Vi...原创 2018-04-22 00:12:57 · 15291 阅读 · 9 评论 -
Android玩转Bitmap随意裁剪支持碎片复用
Bitmap碎片复用任意操作开源库:https://github.com/Dawish/BitmapKit一、Bitmap庐山真面目Bitmap 并不是一个图片。最开始接触Android的人可能以为 Bitmap 就一个图片,比如我,哈哈哈,我最开始接触Android时就是如此认为。一句话总结: Bitmap 是一个实现了 Parcelable 接口的 final ...原创 2018-03-07 19:09:50 · 3285 阅读 · 1 评论 -
图文详解LinearLayoutManager填充、测量、布局过程
LinearLayoutManager并不是一个View,而是一个工具类,但是LinearLayoutManager承担了一个View(当然指的是RecyclerView)的布局、测量、子View 创建 复用 回收 缓存 滚动等等操作。一、回忆一下上一篇文章Android Render(三)supportVersion 27.0.0源码RecyclerView绘制流程解析已经说了 RecyclerV原创 2017-12-21 19:49:07 · 5754 阅读 · 0 评论 -
(二)Android官方MVVM框架实现组件化之ARouter串联各模块
作者: Dawish_大D 简书: http://www.jianshu.com/u/40e1f22c2c53 (一)Android官方MVVM框架实现组件化之整体结构 (二)Android官方MVVM框架实现组件化之ARouter串联各模块目前的项目结构图置顶:Demo的Github地址: https://github.com/Dawish/GoogleArchitectu原创 2017-11-28 22:46:57 · 2297 阅读 · 1 评论 -
(一)Android官方MVVM框架实现组件化之整体结构
目前的项目结构图置顶:Demo的Github地址: https://github.com/Dawish/GoogleArchitectureDemo一、google官方MVVM框架讲解我前面对比了MVC和MVP《两张图看懂Android开发中MVC与MVP的区别》,可以相对于MVC我们的MVP是有多优越,但是Android开发现在已经开始流行了MVVM,前不久google官方发布了MVVM的正式库。原创 2017-11-25 17:40:12 · 9395 阅读 · 0 评论 -
Android检测View的可见性
Android中我们经常会用到判断View的可见行,当然有人会说View.VISIBLE就可以了,但是有时候这个真是满足不了,有时候我们为了优化,在View滚到得不可见的时候或者由于滚到只显示了部分内容的时候不做某些操作,View.VISIBLE这个时候是满足不了的。1. onWindowVisibilityChanged检测滚到导致View可见或者不可见比如在 ScrollView(Recycle原创 2016-07-15 10:50:45 · 26316 阅读 · 9 评论 -
Android Render系列规划篇
了解Android Render 的原理和流程有助于我们自定义View、优化App性能,保证App高fps流畅运行,计划写一些列的Android Render博客。《Android Render之Activity》 讲解Android 窗口界面的构成和绘制关系。 主要有Activity 、PhoneWindow 、Window、WindowManager 、ViewRootImpl 和Decor原创 2017-10-09 15:34:57 · 3649 阅读 · 0 评论 -
Android Render(一)Activity窗口构成和绘制解析
一、Activity窗口构成这里我们会介绍到Activity、PhoneWindow、DecorView、ViewRootImpl、WindowManagerImpl、WindowManagerGlobal、ActivityThread和Surface,关于Activity窗口有很多方面可讲,我这里只侧重于Activity窗口的Render方面来讲解。先来两张张大家早已经烂熟于心的图:一个Activ原创 2017-10-13 14:48:40 · 1409 阅读 · 0 评论 -
Android Render(二)WindowManagerImpl的addview跟viewGroup的addview有什么不同?
首先我们要知道ViewManager接口:package android.view;public interface ViewManager{ //添加View 我们主要看在ViewGroup和WindowManagerImpl中的实现 public void addView(View view, ViewGroup.LayoutParams params); //更新Vi原创 2017-11-01 17:21:21 · 881 阅读 · 0 评论 -
Android Render(三)7.1源码硬件加速下draw绘制流程分析
分析从draw(Canvas canvas)和draw(Canvas canvas, ViewGroup parent, long drawingTime)两个方法入手:draw(Canvas canvas)和draw(Canvas canvas, ViewGroup parent, long drawingTime)方法从表面看来就是接受的参数不一样, 其实二期有一个先后顺序,从属关系,但是也要分原创 2017-11-01 17:22:58 · 1772 阅读 · 0 评论 -
Android Render(四)supportVersion 27.0.0源码RecyclerView绘制流程解析
阅读者三篇Android绘制文章,会让你对理解Android绘制有帮助: - Android Render(一)Activity窗口构成和绘制解析 - Android Render(二)7.1源码硬件加速下draw绘制流程分析 - Android Render(三)supportVersion 27.0.0源码RecyclerView绘制流程解析RecyclerView的supportVers原创 2017-11-06 21:46:00 · 868 阅读 · 0 评论 -
记一次阿里复试
一、bitmap ImageView优化,从渲染谈,不要说基础的。二、fresco源码解读,原理说明。三、Android View绘制原理,不要说自定义view的三个步骤,说底层的。四、说说内存优化。五、说说卡顿解决。六、Android5.0之前和之后的在View渲染上有什么区别。原创 2017-09-22 10:20:16 · 821 阅读 · 0 评论 -
Android圆角图片最简单的实现方法详解
在平时的开发中,我们在显示图片是有时候需要显示圆角图片,我们应该都知道圆角显示肯定是更加耗费内存和性能,会导致图片的过度绘制等问题。但是有时候产品的设计就是这样,我们开发也不得不做,本篇文章讲一下最基本的圆角图片实现方法。原创 2016-07-30 16:22:26 · 4874 阅读 · 5 评论 -
Android IPC之AIDL看这一篇还不够
一、AIDL是什么?如果你想深入学习基于Binder通信的知识,请看我之前的文章: Android IPC之代理模式 Android IPC之Binder机制分析AIDL(Android Interface Define Language) 是IPC进程间通信方式的一种.用于生成可以在Android设备上两个进程之间进行进程间通信(interprocess communication原创 2017-09-03 23:03:26 · 1082 阅读 · 0 评论 -
Android自定义View--用贝塞尔曲线实现一加多云天气
之前看到了一加天气,感觉做得还是很讨巧的,利用了传感器来控制动画效果,是使用Android手机的朋友还没有体验过,那就去试一下吧一加天气官方网站,下面是我简单地实现了一下的效果图: 代码很简单,就是用了五个二阶贝塞尔曲线,不断来回改变控制点的Y坐标不断重绘界面。package danxx.library.widget;import android.content.Context;import原创 2017-01-07 01:33:19 · 1973 阅读 · 0 评论 -
Android自定义View--用ViewGroup打造一个3D堆叠卡片容器
1. 功能描述目前只能支持三张图片,支持横竖屏模式,手指滑动翻页到下一张卡片,手指点击也可以切换到当前卡片,并且选中的卡片会在整个ViewGroup的最上层,会被放大,可以自定义放大动画的时长。最基本的Android自定义控件,大神就别看了。 来先看效果图吧: 支持竖屏模式 也支持横屏模式: 主要是想熟悉一下自定义控件的基本测量和布局方式,其实使用LinearLayout或者是Frame原创 2016-12-27 21:09:42 · 5795 阅读 · 5 评论 -
Android焦点分发基本流程
这篇文章使用一个demo来描述一下android焦点分发的基本流程,描述一下我们一个控件请求焦点到我们切换焦点的时候走的是怎么样一个流程,要是对android的焦点的基础不了解的请看我前面的文章:Android焦点分发基础 ,先对android焦点有一个感性得认识。 首先我需要先自定义FocusButton、FocusLinearLayout和FocusRelativeLayout三个控件原创 2016-04-04 12:58:38 · 4746 阅读 · 5 评论 -
Android焦点分析之View
View是Android中最基础的控件之一,几乎所有的控件都是继承View,像Button,TextView,ImageView等等都是继承了View,LinearLayout,FrameLayout,RecyclerView等等容器控件都是继承了ViewGroup,这些控件都会处理焦点,那么google是怎么处理和传递焦点的呢,这一系列的文章将会跟着源代码去学习Android的焦点处理。原创 2016-04-01 22:43:43 · 1067 阅读 · 0 评论 -
【Material Design学习研究 一】个人对Material Design的理解和看法!
Material Design其实就是一种UI设计风格的名称,翻译过来就是突出该突出的设计风格!自己用了Android5.0的新控件,按照Material Design设计风格写了一个App,后面将带着个App一起学习Material Design原创 2015-12-05 16:31:07 · 766 阅读 · 0 评论 -
ViewPager.setCurrentItem()出现Fragment already active异常
ViewPager.setCurrentItem()出现Fragment already active异常原创 2015-11-09 17:58:01 · 3650 阅读 · 0 评论 -
ViewStub用于ListView和GirdView
ViewStub用于ListView和GirdView优化内存占用。原创 2015-11-16 10:42:10 · 1258 阅读 · 0 评论 -
【Android自定义View 一】第一个自定义的控件
Android自定义控件学习原创 2015-12-08 17:22:04 · 914 阅读 · 0 评论 -
GridView和ListView在android 4.4调用notifyDataSetChanged后抢焦点的BUG
关于GridView和ListView在android 4.4调用notifyDataSetChanged后抢焦点的BUG原创 2015-11-11 13:54:09 · 2437 阅读 · 2 评论 -
Android程序中“再按一次退出”的实现
Android程序中“再按一次退出”的实现原创 2014-08-15 23:30:59 · 945 阅读 · 0 评论