Android
文章平均质量分 82
legendCoder
真正的强者,不是流泪的人,而是含泪奔跑的人
展开
-
Android SDK开发之生成AAR包、JAR包并生成本地&远程Maven仓库
前言:公司开发离不开模块化和团队合作,我们经常会用到其他小伙伴开发好的Sdk,如果我们也想开发Sdk供别人使用,这就涉及到sdk的打包等过程。今天就抽空跟大家分享一下我在sdk打包过程中遇到的坑!开发打包工具:AndroidStudio仓库:Github言归正传,我就直接进入Sdk的打包过程讲解(前提是在lib module的基础上,创建方式就不赘述了)一.在Lib的gradle文件中加入...原创 2020-03-09 16:09:43 · 1792 阅读 · 0 评论 -
Handler消息机制之深入理解Message.obtain()
前言:在我们日常开发工作中,难免经常会在线程间进行消息传递,而这个过程最常用的实现方式就是Handler消息机制。当然,这并不我们今天的重点,今天我们要重点关注的是消息传递的中间体:Message。我们怎么去获取Message对象?可能大多数同学直接通过 new Message() 的方式创建一个新的对象;对性能和效率有了解的同学可能就会通过 handler.obtainMessage() 或 M...原创 2018-03-07 17:20:42 · 14135 阅读 · 1 评论 -
Android多线程之Java 8中ThreadLocal内部实现机制详解
前言:ThreadLocal是线程内部的存储类,通过它可以实现在每个线程中存储自己的私有数据。即数据存储以后,只能在指定的线程中获取这个存储的对象,而其它线程则不能获取到当前线程存储的这个对象。ThreadLocal有一个典型的应用场景,即我们在前文中说到的Android线程间通信中的Looper。每一个线程都有一个私有的Looper对象去处理当前线程的消息队列,有不清楚的同学,可以去上篇文章查看...原创 2018-03-15 17:01:36 · 778 阅读 · 3 评论 -
Java编程中this和static关键字的用法详解
前言:在平时的编码过程中,相信大家都会频繁地使用到this或static关键字。但可能你仅仅是了解它的用法,而对其内部机制知之甚少。今天我们就一起来探讨一下它们的内部机制。一.this关键字的详解 首先我们来总结一下this常见的应用场景,下面我们定义一个User类,基本包含了我们常见的this的用法,如下所示:public class User { private Str...原创 2018-03-02 17:18:24 · 1279 阅读 · 0 评论 -
Android多线程之IntentService工作机制详解
前言:IntentService在我们平常的开发过程中是非常常见的,我们都习惯于用它去处理一些耗时任务,但是对于它的内部机制,你真的了解?下面我们通过几个常见的面试题,来对IntentService一一剖析。想要了解更多关于Android多线程知识,请移步 Android多线程专栏。常见面试问题:你对IntentService了解么?说一下他的用处和原理?IntentService和S...原创 2018-03-17 16:43:52 · 1196 阅读 · 0 评论 -
Android多线程之线程池Executor详解
前言:前面说过,Android系统延续了Java的单线程设计模型,因此在开发过程中经常会去开辟新的线程,去处理与UI操作无关的任务。线程是操作系统调度的最小单元,同时线程又是一种受限的系统资源,不能无限制的产生,它的创建与销毁都会产生较多的系统开销。因此,为了方便线程的管理,Android提供了线程的管理机制-Executor线程池。这里简单复习一下,Android在UI线程进行耗时任务出现A...原创 2018-03-12 12:40:18 · 2487 阅读 · 0 评论 -
Android消息机制 & Android线程间通信机制
前言:由于Android系统本身决定了其自身的单线程模型结构。在日常的开发过程中,我们又不能把所有的工作都交给主线程去处理(会造成UI卡顿现象)。因此,适当的创建子线程去处理一些耗时任务是非常关键的。同时Android中非UI线程不能对UI组件进行操作,因此,熟练的掌握并应用线程间消息通信是很有必要的。接下来,我们从Android线程间通信机制和Android消息机制两个方面对以上内容进行介绍。...原创 2018-03-06 14:38:05 · 2889 阅读 · 1 评论 -
Android滑动冲突之完美实现RecycleView+下拉刷新+上拉加载+粘性Header
前言:在日常的开发中,我们可能遇到各种各样的需求,今天我们主要来一起探究RecycleView+下拉刷新+上拉加载+粘性头部,同时避免滑动冲突的联合实现过程。看到这里,你可能心中暗想,没图说个JB!!!客官别急,下面我们就来看一下最终实现的效果: 上面就是我们最终要实现的效果,现在我们先来对它进行拆分和分析,如下图所示: 从上图可以看出,这是最原始的状态。大致可分为导航栏、广告栏、In...原创 2018-05-07 14:58:25 · 2359 阅读 · 0 评论 -
Android源码分析之OrientationHelper详解
前言:在Android的日常开发中,经常会与RecycleView打交道,如果你只是进行简单的列表展示,可能你不会用到OrientationHelper工具类。但是,如果你有更深层次的需求,对OrientationHelper和LayoutManager的理解和应用就必不可少了。本文,将从源码的角度,对OrientationHelper各参数及方法进行剖析。OrientationHelper源...原创 2018-06-01 10:15:52 · 3150 阅读 · 0 评论 -
Oppo市场认领应用之OppoSignVerify.apk签名流程
前言:由于之前在oppo市场上提交过应用,但是账号密码都忘记了。因此这里需要进行应用认领,也就是对OppoSignVerify.apk进行签名并提交审核的过程。准备资料:原应用的jks签名文件、OppoSignVerify.apk、原签名文件使用的别名和密码。环境:电脑安装好jdk环境签名流程:将OppoSignVerify.apk和签名的jks文件拷贝到jdk的bin目录下。命令行切...原创 2019-01-17 16:41:04 · 3614 阅读 · 0 评论 -
AndroidQ(10)黑暗模式适配
前言:作为一个Android程序员,每年最期待就是Google的发布会啦!!这不,今年的AndroidQ如期而至。这里简单介绍一下Android的新特性:AndroidQ全局暗黑模式隐私权限的更新AndroidQ新版的手势导航(其实就是仿IOS)系统日程UI的优化(还有其他系统UI上的优化)Google组件(jetpack)的介绍每年的Google大会一结束就是程序员忙碌工作的开端...原创 2019-09-03 10:59:12 · 13444 阅读 · 6 评论 -
android解决genymotion模拟器无法下载虚拟机问题
genymotion下载虚拟机时出现Unable to create virtual device,Server returned HTTP status code 0原创 2016-05-13 13:34:42 · 6889 阅读 · 1 评论 -
Android自定义View之进度条(带进度提示框)
Android自定义水平进度条,带当前进度值的提示框原创 2017-10-21 07:07:47 · 13881 阅读 · 4 评论 -
android端快速生成二维码和进行二维码扫描
android端快速即成微信扫一扫功能,并且根据自己的需求快速生成二维码原创 2016-06-08 23:14:14 · 23849 阅读 · 12 评论 -
如何优雅的实现recycleview加入顶部headerview,实现一起滑动效果
上次使用recyclerviewheader实现了在recycleview的顶部成功加入了headerview,但是随着开发的深入,发现其使用局限性越来越大,代码层次感也不够清晰,感觉太冗余,经过深思熟虑之后,决定使用另一种优雅的方法,直接修改adapter,将headerview绑定到第一个布局,实现效果相当完美,代码层次感也出来了,话不多说,直接上代码:继上一篇通过加入recyclervi原创 2016-05-18 17:12:33 · 4754 阅读 · 2 评论 -
android面试笔试常见面试题
一.View事件分发机制dispatchTouchEvent->onTouch(返回true,事件已被消费,不会继续往下执行。返回false)->onTouchEvent->onClick().二.ViewGroup事件分发机制(1) 事件从Activity.dispatchTouchEvent()开始传递,只要没有被停止或拦截,从最上层的View(ViewGr原创 2016-05-11 11:55:27 · 696 阅读 · 1 评论 -
Android屏幕适配解决方案
众所周知,我们编写的程序要在不同的设备中运行,使客户有完美的体验效果,就需要对不同分辨率的设备作不同的是配方案,接下来以手机和平板为例进行是配方案,以新闻客户端中新闻阅读为例(1)编写再手机和平板中的不同布局文件手机布局:RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns原创 2015-11-04 19:04:42 · 410 阅读 · 0 评论 -
AndroidStudio使用Android Design Support Library方法
使用条件:sdk更新到对应版本1.引用这个库:在 build.gradle 文件中加上这段代码: compile 'com.android.support:design:22.2.0 。2.可以使用控件包括:TextInputLayout(EditText)FloatingActionButton (Button)Snackbar (Toast)Ta原创 2015-10-14 22:40:07 · 1493 阅读 · 0 评论 -
从0开始搭建rxjava+retrofit+mvp+dagger2整合基础框架(rxjava+retrofit网络层搭建)
古语有云,没有规矩,就不成方圆。其实做什么事都一样,做什么事都要有自己熟悉且大家都认同的一套规矩,这样既能提高自己的做事效率,也方便他人的理解。在移动开发中,mvp是新兴的一种软件开发模式,是经过时间的考验并且大家都认同的解耦框架。它不仅能让我们的代码逻辑更加清晰,不同层间分工不同又相互协作,服务于我们的项目。mode层负责本地数据和网络数据的处理,presenter层负责业务逻辑的处理,view层原创 2016-12-20 12:00:16 · 3878 阅读 · 0 评论 -
阿里巴巴Java开发手册-命名规约
Java日常开发规范之命名规范及规则。转载 2017-05-21 21:58:28 · 4950 阅读 · 0 评论 -
利用RxJava和 RxBinding实现倒计时按钮、关键词搜索和按钮防抖效果
前言:最近在进行Android项目开发的时候,遇到了点击按钮获取验证码并且按钮自带倒计时功能的场景、通过输入框进行关键词搜索的应用场景、为防止按钮短时间多次点击的防抖场景。相信这不仅是我遇到的问题,相信在大多数项目中都会遇到这些使用场景。今天我们就来对这些场景进行统一的分析和处理,同时比较传统实现方式和利用RxJava实现方式的异同点,并且通过RxJava去优雅的实现这些功能。废话不多说,接下来我们原创 2017-06-11 22:48:21 · 1360 阅读 · 0 评论 -
Android获取View的宽度和高度
前言:可能很多情况下,我们都会有在activity中获取view 的尺寸大小(宽度和高度)的需求。面对这种情况,很多同学立马反应:这么简单的问题,还用你说?你是不是傻。。然后立马写下getWidth()、getHeight()等方法,洋洋得意的就走了。然而事实就是这样的吗?实践证明,我们这样是获取不到View的宽度和高度大小的,可能很多同学又会纳闷了,这是为什么呢?一直不都是这样获取大小的嘛!疑问解原创 2017-09-15 16:08:47 · 12961 阅读 · 0 评论 -
Clipping Views安卓裁剪工具的使用,使用Android5.0新技术绘制圆角矩形,圆形控件。
最近由于项目中腰经常使用到圆角的图形,以前是直接在drawable文件夹下定义图形的背景样式,由于android系统推出了原生的裁剪方法,因此潜心研究了一下Clipping Views,在这里跟所有小伙伴们分享一下具体使用方法,接下来我将从每个具体方法进行讲解: (1)首先是裁剪矩形,系统提供了两个构造方法对view进行举行裁剪: 第一种是四个参数的构造方法,前两个参数表示裁剪矩形的左上方点的坐原创 2016-06-02 00:22:49 · 2714 阅读 · 0 评论