android
文章平均质量分 75
narkang
一切的成功都是背后的努力和汗水
展开
-
ViewPager和WebView滑动冲突问题
最近项目开发中,许多地方用到了WebView,这样会出现一个问题就是WebView滑动和ViewPager滑动冲突,网上找了很多方案,终于借鉴这篇文章的思路解决了问题处理 WebView 与 ViewPager 滑动冲突具体原理都是参考的文章解决的。代码段只需要重写WebView下面方法就可以完成了,不需要与js交互。//最大递归深度int MAX_PARENT_DEPTH = 3;//在WebView的onTouchEvent事件为ACTION_DOWN时,查找父视图是否是可以滑动的视图(原创 2021-11-21 20:57:20 · 2839 阅读 · 0 评论 -
Framework系列-Binder通信流程(二)
涉及源码\frameworks\base\core\java\android\content\ContextWrapper.java\frameworks\base\core\java\android\app\ContextImpl.java\frameworks\base\core\java\android\app\ActivityManager.java\frameworks\base\core\java\android\os\ServiceManagerNative.java\framewo原创 2020-11-01 17:29:38 · 261 阅读 · 0 评论 -
Framework系列-Binder通信流程(一)
Binder是Android进程通信过程的机制,也是非常复杂的,整个通信过程涉及到用户态和内核态,从java层到Framework层,到驱动层,以前断断续续的看了不少文章,总是不能看到本质,所以不能表达出原理思想。最近看了几篇文章,写得挺好的,所以趁此将整个过程记录下来,方便后续复习。当然也有理解不到位的,不过大致方向应该没错,想了解更多的可以看后面的链接文章。分析的源码8.0涉及源码\frameworks\base\core\java\android\content\ContextWrapper.ja原创 2020-11-01 18:09:39 · 492 阅读 · 0 评论 -
Android 绘图时实现双缓冲
项目中Canvas绘制部分比较多,为了提升页面的流畅度,用到了Canvas双缓冲技术,对这块不太了解,正好看到了一篇文章,在这里记录下,方便后续学习转载地址一、双缓冲技术原理:在内存中创建一片内存区域,把将要绘制的图片预先绘制到内存中,在绘制显示的时候直接获取缓冲区的图片进行绘制。更具体一点来说:先通过setBitmap方法将要绘制的所有的图形绘制到一个Bitmap上也就是先在内存空间完成...转载 2019-12-19 13:15:12 · 1077 阅读 · 0 评论 -
VLayout全面解析
概述最近看了下VLayout,它主要用在超复杂界面布局,感觉确实比较好用,看了网上这篇文章,基本用法都已经写到了,索性就转载过来,方便后续复习。github地址VLayout简介vlayout全称VirtualLayout,它是一个针对RecyclerView的LayoutManager扩展, 主要提供一整套布局方案和布局间的组件复用的问题。它通过定制化的LayoutManager,接...转载 2019-12-01 21:53:51 · 3282 阅读 · 1 评论 -
UI进阶--Paint的高级使用
最近比较空闲点,学习了Paint的使用,自定义View中Paint是用得比较多的一个画笔对象,使用好它可以绘制各种牛逼的效果,所以还是有必要记录并学习下。一些常规基础的东西就不过多介绍了,还是直接记录一些进阶技巧。渲染渲染它是对于我们绘制区域进行按照渲染规则进行色彩的填充,在android中要使用它,需要借助Shader(着色器)来实现,定义图形的着色和外观,设置给画笔paint使用,下面来...原创 2019-11-09 12:38:56 · 269 阅读 · 0 评论 -
仿WanAndroid客户端Flutter版
作者:蓝胖子的猫 链接:https://juejin.im/post/5b1e446be51d45068f65d5e9 来源:掘金 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。前言谷歌在今年的I/O大会提了Flutter,觉得有可能是一个趋势。 在学习了基本的Dart语法以及Flutter常用Widget的基本使用之后就开始慢慢按捺不住了,决定模仿Fl...转载 2018-06-22 19:15:18 · 832 阅读 · 0 评论 -
Android 约束布局(ConstraintLayout)详解
本篇文章转载自Android 约束布局(ConstraintLayout)详解最近项目中用到了约束布局,正好看见了这篇文章,讲得还行,就转载过来了,以后方便新增新功能。本篇 ConstraintLayout 讲解版本:1.0.2前言ConstraintLayout 是一个 ViewGroup,它的出现是为了解决复杂布局时,布局嵌套(布局内的布局)过多的问题(嵌套布局会增加绘制界转载 2018-01-13 23:17:22 · 1060 阅读 · 0 评论 -
搭建自己的MVP框架
最近公司做的项目用到了MVP,期间查了很多资料,也看了github上别人搭的MVP框架,基本用到dagger2,也有的用到了别的技术,各种门类的都用,通过对比,选出了比较简易的搭建框架,用到的主要技术就是Retrofit2+RxJava2,期间也学了不少RxJava和Retrofit的高级用法,比如服务器返回的Response,token时效性,失败重试机制,compose的用法,感觉Rxjava和原创 2017-12-24 12:59:04 · 345 阅读 · 0 评论 -
Push failed: Failed with error: fatal: Could not read from remote repository.
问题:Push failed: Failed with error: fatal: Could not read from remote repository.解决:将SSH Executable 更换为Native(Android Studio的默认方式有bug)另外参考:http://stackoverflow.com/questions/24688700/android-studio-push转载 2017-12-24 12:49:42 · 371 阅读 · 0 评论 -
支付宝授权获取芝麻信用分数
貌似好久没写文章了,今天来记录下最近用支付宝SDK获取芝麻信用分数的过程,以及踩过的坑。个人感觉接芝麻信用分数时还是很简单的,基本都是服务端的任务,我们这边只需要将从支付宝授权获取的auth_code传给服务端,剩下的就是服务器的事了。但是还是有些小坑需要记录。如果以后需要做支付宝登陆的,可以看这里,还是很详细的 Android 集成支付宝第三方登录其实看官方的Demo也是很好的踩坑一当我把官方D原创 2017-10-22 22:59:57 · 11663 阅读 · 8 评论 -
Databinding参考入门文档
databinding参考文档: 1.http://blog.csdn.net/zhaizu/article/details/51491455 2.http://www.jianshu.com/p/eb29c691d370 3.https://academy.realm.io/posts/data-binding-android-boyar-mount/ 4.http://blog.csdn原创 2017-09-12 09:03:13 · 278 阅读 · 0 评论 -
Activity的启动模式以及栈管理
LaunchModeFlagsAMS栈管理原创 2018-08-17 13:19:23 · 696 阅读 · 0 评论 -
观察者模式以及在Android中的使用
《Android源码设计模式解析与实战》第12章观察者模式笔记介绍使用场景UML和简单实现Android源码中的使用1.) ListView中的使用2.)BroadcastReceiver中的使用3.)EventBus中的使用总结...原创 2018-09-06 22:08:38 · 1558 阅读 · 0 评论 -
Android运行时机制问题解决方案
概述在Android6.0之前,用户申请的权限默认是全部同意的,有时候一个应用安装可能会申请很多不必要权限,这样无疑会让个人隐私变得容易泄露。在Android6.0之后,应用许可提示可以自己定义了,权限机制分为普通权限和危险权限,对于普通权限在清单中注册直接会同意,而对于危险权限需要用户在代码中手动申请,然后在回调中处理同意和不同意的结果。关于运行时权限的使用可以看这里,讲得还是很清楚的。...原创 2018-09-12 21:53:58 · 251 阅读 · 0 评论 -
Drawable和Bitmap的转换
通常我们需要通过代码去设置图片,就需要设置图片Bitmap和Drawable的转换,下面整理了几种方式一、Bitmap转DrawableBitmap bm=xxx; //xxx根据你的情况获取BitmapDrawable bd=new BitmapDrawable(bm);//因为BtimapDrawable是Drawable的子类,最终直接使用bd对象即可。二、 Drawable转BitmapD原创 2016-12-11 11:37:53 · 706 阅读 · 0 评论 -
一点关于dagger2在项目中使用的总结
dagger是一款ioc注入框架,相比于butterknife只能进行控件和事件注入,它可以进行任意对象的注入,对于项目的解耦是非常方便的,在中大型项目中使用得比较多,相较于其它第三方库,这个库的入门槛还是比较高的,如果不熟悉它的使用,是很容易配置报错的,因为它里面有很多规则是需要遵守的,如果不按照它的要求来,导致的结果就是编译不通过。最近打算总结下关于它的基本使用,以及在项目中使用的建议。基...原创 2019-09-22 21:51:30 · 244 阅读 · 0 评论 -
RxJava执行流程和线程切换原理
RxJava在项目开发中用得还是比较多的,它能将复杂的嵌套调用转为链式调用,减轻代码的复杂性,方便于代码的后期维护工作。用得多了,自然想看下内部的实现原理,毕竟这么牛逼的框架,其内部的实现思想也是值得学习的,再者之前面试问到了RxJava的原理。所以这里就来记录下(代码基于2.x),也方便后续复习。基本使用Observable.just("1") .subscribe(object ...原创 2019-08-20 16:42:41 · 564 阅读 · 0 评论 -
Glide源码执行流程深入分析
一直想写关于Glide的文章,但是始终没写,它背后帮我们执行了非常多的逻辑,使我们调用起来非常简单。最近又深入学习了它的代码,趁此有机会记录下来,其实之前已经看过郭神的关于Glide的分析,写得非常详细,但是是基于3.x的,而我们最近使用都是4.x的,部分执行流程有所变化。所以还是打算自己整理一遍头绪,方便以后回顾,但是不会写得太详细,毕竟流程也非常多,只需要把关键点记录下来,然后对着源代码跟踪就...原创 2019-08-04 10:58:05 · 207 阅读 · 0 评论 -
Handler消息机制深入学习
Handler是Android消息机制中非常重要的一块,Android系统源码许多地方使用到了Handler,现在项目中许多框架底层也是通过Handler来封装的,而且面试也是必问的一块,之前面试吃过几次亏,因为了解得不够深入,所以作为Android开发程序员来说,这块是必须要掌握的,不仅是使用,而且包括源码,底层实现流程。之前就想写Handler的源码解析文章了,但是一直没有动手,因为里面有些...原创 2019-06-23 23:11:39 · 473 阅读 · 0 评论 -
OkHttp3入门介绍之Cookie持久化
最近项目需要用到cookie,来验证客户端的唯一性,所以踩了很多坑(就是浪费了很多时间),用的okttp默认不对cookie处理操作,所以接口一直返回未登录状态,所以后来网上找了一篇文章,写得很实用,特此转载下方便后续复习地址: https://blog.csdn.net/u012527802/article/details/81220301 https://www.jianshu.com/p/...转载 2019-06-06 16:15:24 · 1141 阅读 · 0 评论 -
Gradle常见插件开发方式
Gradle作为项目的构建方式,起着很重要的作用,而我们在开发中却基本很少深入的了解它,这篇文章就记录下在学习插件开发过程的笔记。插件开发的基础是task,对于task的学习,可以看任玉刚的这篇文章,基本的使用介绍得很清楚。Gradle插件分为脚本插件和对象插件,下面来分别看下两者的使用脚本插件脚本插件就是在普通的gradle中写一系列task,然后在别的gradle构建脚本中通过 appl...原创 2019-02-21 16:08:42 · 3380 阅读 · 0 评论 -
LeakCanary源码深入学习
说到内存泄漏检测工具基本都知道用LeakCanary,它可以用来检测Activity和Fragment是否发生内存泄露,并且自动弹出通知告知用户是否发生了内存泄漏,且最终以 UI 的形式向我们展示内存泄漏对象的引用链,以便我们能精确的定位到内存泄漏的代码。但是我们不能只局限于表面,也应该去学习其源码的实现,LeakCanary的强大不仅在于能够精确定位内存泄漏代码的具体位置,也在于里面设计的模块分...原创 2019-01-03 17:33:21 · 228 阅读 · 0 评论 -
okhttp源码深入学习
okhttp是现在比较流行的基础网络访问框架,因为有比他更加好用的Retrofit,okhttp用起来确实也很方便,基本可以满足我们日常开发的项目需求,如果实在满足不了,也可以做自己的定制。okhttp的源码也是面试中比较经常问到的,特别是拦截器这部分,好几次都问到了,当时只有很尴尬的回答不知道。作为一名有追求的程序员,也必须了解它的源码。其实好久以前就在看了,只不过当时能力有限,拦截器部分一直看...原创 2018-12-13 23:00:01 · 321 阅读 · 0 评论 -
View的滑动方式
在Android中滑动是实现自定义控件的基础,同时在开发中我们也会难免遇到View的滑动处理,不管哪种滑动处理,其基本思想都是类似的。当点击事件传到View时,系统记下触摸点的坐标,手指移动时系统记下移动后触摸的坐标并算出偏移量,并通过偏移量来修改View的坐标。下面来总结下android系统中常见的滑动方案。View的坐标系在介绍View的滑动时候,先要介绍下View的坐标系View的...原创 2018-11-04 21:53:15 · 186 阅读 · 0 评论 -
View事件分发笔记
view事件分发机制一直是面试的常问点,我面试了好几次经常问到,所以这次趁此机会总结下事件分发机制的流程,已经一些注意点,这篇文章是看《Android开发艺术探索》的总结事件的传递规则事件传递的对象是MotionEvent,当事件产生后,系统就会把这个事件传递给一个具体的View,而这个过程就是分发过程,由三个很重要的方法来完成。public boolean dispatchTouchEv...原创 2018-10-20 16:29:51 · 292 阅读 · 0 评论 -
Android样式的开发:shape篇
前言在网上看见几篇样式开发的文章,感觉写得挺好的,所实话这些东西知道,但是知道得不是这么全面,便想把它转载下来方便以后学习。文章地址http://keeganlee.me/post/android/20150830 转载自Keegan小钢一个应用,应该保持一套统一的样式,包括Button、EditText、ProgressBar、Toast、Checkbox等各种控件的样式,还包括控件间隔、文字大转载 2016-12-06 22:01:54 · 344 阅读 · 0 评论 -
注解的使用(二)
上一篇讲解了javapoet的使用,接下来本篇博文将详细记录下注解以及自定义注解的使用。在Android开发中,注解的有效使用,可以提高程序的开发效率,现在比较流行的框架: butterknife免去我们view控件的定义和初始化。 EventBus3方便我们实现组件通信 dagger模块解耦,依赖注入 基本都使用到注解,来提高程序编码效率百度百科定义:注解(Annotation): 也叫原创 2017-08-17 22:20:53 · 391 阅读 · 0 评论 -
Android内容提供者ContentProvider
Content Provider是什么今天我们来学习Android的一个核心组件—Content Provider。在Android系统中,为了安全考虑,一般情况下一个进程是无法直接访问另外一个进程的内存的,原因是Android是一个多进程系统,在这个系统中,应用程序(或者系统的部分)会在自己的进程中运行。系统和应用之间的安全性通过Linux的facilities在进程级别来强制实现的,比如会给应用原创 2016-12-04 21:23:22 · 438 阅读 · 0 评论 -
Android屏幕适配姿势
GitHub地址ScreenAdaptDemo为什么要屏幕适配? device_framentation.png统计 OpenSignal 友盟统计 碎片化 品牌机型碎片化 屏幕尺寸碎片化 操作系统碎片化 为了保证用户获得一致的用户体验效果,使得某一元素在Android不同尺寸、不同分辨率的手机上具备相同的显示效果,则需要我们进行屏幕适配。基础概念屏幕尺寸 屏幕尺寸是指屏幕对角线的转载 2016-12-03 20:56:05 · 339 阅读 · 0 评论 -
轻松自制flyme悬浮球
转载http://www.apkbus.com/blog-705730-62718.html前言去年用了一整年的MX4Pro,魅族留给我最大的印象就是悬浮球了(质量问题我就不说了),左右滑动切换应用、上拉返回桌面、下拉打开通知栏、轻触返回…,一切都那么丝滑。然而自从上半年换成了s7dege,我感觉怎么也习惯不了没有悬浮球的生活了。三星自己也有一个类似于悬浮球的功能,不过太过复杂,不易用,悬浮球本来就转载 2016-12-03 19:59:32 · 2171 阅读 · 0 评论 -
Android 开发者必备的书单
大家好,最近一段时间,Android 方面的书籍可谓是百花齐放,这几本书的作者都是在一线互联网公司奋斗的工程师,他们把多年的工作经验,身心耕植,汇聚成一本书。作为菜鸟的我们,只有一睹大神的风采了。所以借空余时间,这里列举了一些书,作为一个Android 开发工程师,这些书都是不可多得的好书,书中知识迟早是要掌握的。 我们都知道开发Android App 是用Java 语言的,当然你也可以使用其他语原创 2016-12-02 21:20:46 · 457 阅读 · 0 评论 -
Android APP启动时出现白屏或者黑屏怎么办?
1、为什么APP启动时会出现白屏或者黑屏?当打开一个Activity时,如果这个Activity所属的应用还没有在运行,系统会为这个Activity所属的应用创建一个进程,但进程的创建与初始化都需要时间,在这个动作完成之前系统要做什么呢?如果没有任何反应的话,如果程序初始化的时间很长,用户可能还以为没有点到相应的位置。但此时所启动的程序还没初始化完,既无法显示程序,又不能停在原处不做任何动作,怎么办转载 2016-12-02 20:59:34 · 651 阅读 · 0 评论 -
Android通知Notification全面剖析
通知通知是您可以在应用的常规 UI 外部向用户显示的消息。当您告知系统发出通知时,它将先以图标的形式显示在通知区域中。用户可以打开抽屉式通知栏查看通知的详细信息。 通知区域和抽屉式通知栏均是由系统控制的区域,用户可以随时查看。 图 1. 通知区域中的通知。图 2. 抽屉式通知栏中的通知。注:除非特别注明,否则本指南均引用版本 4 支持库中的 NotificationCompat.Builder 类。原创 2016-12-02 20:26:03 · 831 阅读 · 0 评论 -
Android Studio各种快捷功能及好用的插件
本篇引用于 http://www.jianshu.com/p/c439605a4364概述现如今开发越来越追求效率和节奏,节省出时间做更多的事情,除了开发技术上的封装等,开发工具的使用技巧也是很重要的,今天就根据自己的经验来给大家介绍一下Android Studio快速开发之道。Postfix completionPostfix completion 是IntelliJ IDEA很早就有的功能,该原创 2016-12-02 19:10:39 · 1033 阅读 · 0 评论 -
Android自定义控件
1)Android控件1)控件树在Android中每个控件都占有一块矩形区域,控件一般分两类,View和ViewGroup,ViewGroup作为父控件可以包含多个子控件,并管理其包含的View控件。通过ViewGroup整个界面上的控件形成了一个树形结构,也就是常说的控件树,上层控件负责下层控件的测量和绘制,并传递交互事件,通常在Activity中使用findViewById()方法,就是在控件树原创 2016-12-02 10:39:58 · 320 阅读 · 0 评论 -
Android样式的开发:Style篇
原文链接 http://keeganlee.me/post/android/20151031前面铺垫了那么多,终于要讲到本系列的终篇,整合所有资源,定义成统一的样式。 哪些该定义成统一的样式呢?举几个例子吧:1 .每个页面标题栏的标题基本会有一样的字体大小、颜色、对齐方式、内间距、外间距等,这就可以定义成样式; 2 .很多按钮也都使用一致的背景、内间距、文字颜色、文字大小、文字的对齐方式等,这转载 2016-12-10 19:18:46 · 280 阅读 · 0 评论 -
Android样式的开发:Property Animation篇
原文链接 http://keeganlee.me/post/android/20151026前篇文章说过,Android框架还提供了两种动画体系,前一篇已经总结了视图动画(View Animation)的用法,本篇则接着总结另一种动画体系——属性动画(Property Animation)的用法。视图动画只能作用于View,而且视图动画改变的只是View的绘制效果,View真正的属性并没有改变。比如转载 2016-12-10 18:58:24 · 237 阅读 · 0 评论 -
Android服务Service-AIDL(三)
1)概述本章是接着上篇没有写完的Bound式服务写的,上篇地址Android服务Service(二)。在此,重新回顾下AIDL基本概念,AIDL(Android Interface Definition Language)安卓接口描述语言,它专门用来处理进程通信,不像Messenger那样,它适合用来处理并发请求,如果你想service能够同时处理多个请求,那么就可以直接用AIDL。小小提下,Mes原创 2016-11-30 22:14:53 · 494 阅读 · 0 评论 -
Android服务Service(二)
1)前言本文是接着上篇没有介绍完的Android服务Service写的,主要是想对Bound式服务做一个总结,从学Android到现在,我很少用到Bound式服务,倒是Started式服务用得不少(可能太菜),借着这个机会,结合官方文档案例对Bound式服务做一个全面的了解。2)基本用法一个绑定服务,就是一个实现了类Service,并允许其它应用程序与其绑定及与之交互的的组件。提供一个绑定服务,你必原创 2016-11-29 23:32:18 · 349 阅读 · 0 评论