android
文章平均质量分 52
feixiangsmile
这个作者很懒,什么都没留下…
展开
-
Android Universal Image Loader 源码分析
转于:http://a.codekk.com/detail/Android/huxian99/Android%20Universal%20Image%20Loader%20%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%901. 功能介绍1.1 Android Universal Image LoaderAndroid Universal Image L转载 2016-11-28 20:38:54 · 628 阅读 · 0 评论 -
【译】对RxJava中.repeatWhen()和.retryWhen()操作符的思考
原文链接: RxJava's repeatWhen and retryWhen, explained原文作者: Daniel Lew译文出自: 小鄧子的简书译者: 小鄧子状态: 完成译者注:为了方便因Lambda(译文)还不够了解的同学进行阅读,本篇译文替换了原文中全部Lambda表达式。第一次见到.repeatWhen()和.retryWhen()这两个操作符的时候就非常困惑了。不得...转载 2018-06-16 12:18:50 · 2222 阅读 · 0 评论 -
RxJava2 浅析
原文地址:http://blog.csdn.net/maplejaw_/article/details/52442065 Observable在RxJava1.x中,最熟悉的莫过于Observable这个类了,笔者刚使用RxJava2.x时,创建一个Observable后,顿时是懵逼的。因为我们熟悉的Subscriber居然没影了,取而代之的是ObservableEmitter,俗称发射器。此外,...转载 2018-06-15 21:00:05 · 347 阅读 · 0 评论 -
RXJava1到RXJava2的迁移注意事项
Rxjava1和RxJava2 并不能共存,并且RxJava1在本篇文章写的时候,官方已经说明,即将不进行维护。一、首先,导入包是不同的,RxJava2 导入包一般多了一个reactivex,如下import io.reactivex.Observable;所以,在迁移的时候,build.gradle中的依赖肯定需要修改,在文件中的导入也需要修改二、有些方法,在RxJava2中有所改变1、新增Fl...原创 2018-06-15 20:59:10 · 1163 阅读 · 0 评论 -
android studio 通过config实现多模块的配置
在android stuido的应用下,捡来config.gradle文件(与project的build.gradle同级目录),具体看下图在project的 build.config中添加apply from: "config.gradle"如下图:在应用的build.gradle中使用如下:另外,android studio3+版本,使用gradle3后,有关命令也有所改变,例如api(相当...原创 2018-06-15 20:07:21 · 2532 阅读 · 0 评论 -
android gradle依赖:implementation 和compile的区别
2017 年google 后,Android studio版本更新至3.0,更新中,连带着com.android.tools.build:gradle 工具也升级到了3.0.0,在3.0.0中使用了最新的Gralde 4.0 里程碑版本作为gradle的编译版本,该版本gradle编译速度有所加速,更加欣喜的是,完全支持Java8。当然,对于Kotlin的支持,在这个版本也有所体现,Kotlin插...转载 2018-06-15 14:08:39 · 1516 阅读 · 0 评论 -
Android WebView使用全面解析(加载网络资源、本地HTML,JS交互)
转自:http://blog.csdn.net/u012810020/article/details/52708557简述: WebView是什么?有什么用途?我们先来看一下官方介绍: A View that displays web pages. This class is the basis upon which you can roll your own w转载 2017-12-25 22:23:40 · 5383 阅读 · 0 评论 -
android开发中常用的开源项目
//日历插件https://github.com/Bigkoo/Android-PickerView//轮播插件(Simple and convenient banner, loop viewpager with 3D effects )https://github.com/saiwu-bigkoo/Android-ConvenientBanner//图片加载htt原创 2017-12-24 22:05:33 · 190 阅读 · 0 评论 -
解决android studio引用远程仓库下载慢(JCenter下载慢)
转自:http://blog.csdn.net/linglingchenchen/article/details/62236723第一种方法使用开源中国的maven库阿里云的(速度飞快):http://maven.aliyun.com/nexus/content/groups/public/替换项目根目录下build.gradle中的 repositories转载 2017-10-29 18:25:17 · 387 阅读 · 0 评论 -
最简单的Dagger2入门教程
在上一篇博客中总结了依赖注入的原理与实现方式。 依赖注入的原理 依赖注入就是将调用者需要的另一个对象实例不在调用者内部实现,而是通过一定的方式从外部传入实例,解决了各个类之间的耦合。那么这个外部,到底指的是哪里,如果指的是另一个类,那么,另一个类内部不就耦合了。能不能有一种方式,将这些构造的对象放到一个容器中,具体需要哪个实例时,就从这个容器中取就行了。那么,类的实...转载 2018-06-17 18:06:47 · 262 阅读 · 0 评论 -
Dagger2详解-从代码分析其原理
Dagger2基本概念请移步官方文档,或者我的翻译。架构方面请关注GitHub(MVP+Retrofit+Dagger2+Okhttp)及我的文章Android UI框架快速搭建实践Dagger2是Dagger1的分支,由谷歌公司接手开发,目前的版本是2.0。Dagger2解决问题的基本思想是:利用生成和写的代码混合达到看似所有的产生和提供依赖的代码都是手写的样子。如果我们将Dagger2和1比较...转载 2018-06-20 14:12:20 · 265 阅读 · 0 评论 -
android 项目迁移到 AndroidX
使用 Android Studio 迁移现有项目借助 Android Studio 3.2 及更高版本,您可以通过从菜单栏中依次选择Refactor > Migrate to AndroidX,快速迁移现有项目以使用 AndroidX。如果您有任何尚未迁移至 AndroidX 命名空间的 Maven 依赖项,那么当您在gradle.properties文件中将以下两个标记设置为...原创 2019-07-25 12:54:45 · 3471 阅读 · 0 评论 -
Android 底部导航栏(底部Tab)最佳实践
本文目录.png当开始一个新项目的时候,有一个很重要的步骤就是确定我们的APP首页框架,也就是用户从桌面点击APP 图标,进入APP 首页的时候展示给用户的框架,比如微信,展示了有四个Tab,分别对应不同的板块(微信、通讯录、发现、我),现在市面出了少部分的Material Design 风格的除外,大部分都是这样的一个框架,称之为底部导航栏,分为3-5个Tab不等。前段时间开始了一...转载 2018-07-31 22:13:34 · 1237 阅读 · 0 评论 -
android 的TabLayout的使用(TabLayotu选中时改变字体大小)
本文不介绍TabLayout的基本使用方法,只对个性化使用做些说明。现在是凌晨,太困,所以写的不太详细,见谅。并且联合ViewPager使用的时候1、不自定义选项卡的布局<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.an...原创 2018-07-31 00:15:49 · 2849 阅读 · 1 评论 -
eventbus 的使用和注意事项
此文不介绍EventBus的基础使用,只说明使用的时候注意事项,这里记载我使用的时候遇到的问题1、后注册,先发消息,那么使用粘性事件2、可能有多处接受粘性事件,但是不同的事件不要使用同一个类来发送(事件存储在Map里,而key是类class),因为粘性事件使用后需要remove掉,而在remove的时候是通过class来进行删除的(粘性事件存在了map里,class做为key,所以根据map...原创 2018-07-30 23:52:42 · 676 阅读 · 0 评论 -
一种高效的android双击退出(可扩展多击)
参考Google,安卓手机中在查看安卓系统版本的地方,三击或者多击会出现彩蛋,可以借鉴其源码进行实现。//利用数组来存储时间 long[] mHits = new long[3]; @Override public void onClick(View v) { // arraycopy 拷贝数组 /* 参数解读如下: ...原创 2018-07-22 16:41:27 · 248 阅读 · 0 评论 -
Android自定义控件三部曲文章索引
转自:https://blog.csdn.net/harvic880925/article/details/50995268一、自定义控件三部曲之动画篇1、《自定义控件三部曲之动画篇(一)——alpha、scale、translate、rotate、set的xml属性及用法》2、《自定义控件三部曲之动画篇(二)——Interpolator插值器》3、《自定义控件三部曲之动画篇(三)—— 代码生成a...转载 2018-06-28 10:20:58 · 193 阅读 · 0 评论 -
android知识点
作者:Allens_Jiang链接:https://www.jianshu.com/p/d75f1aeda79d一:四大组件 && FragmentAndroid - Activity切换动画Android基础 - Service(服务)Android基础 - ContentProviderAndroid基础 - BroadcastReceiverAndroid基础 - Fragm...转载 2018-06-27 20:23:55 · 173 阅读 · 0 评论 -
简单好用的RecyclerView适配器
前言给大家推荐个好用RecyclerView适配器,也就是在百篮应用里用到的适配器。为了大家学习方便,这里简单的写下如何使用这个适配器,不做代码具体的分析,有兴趣的可以自己看下源码。当然用过类似的BRAVH可能会觉得已经都这么好的工具了为何还有使用本文的适配器。我觉得有2个优点: 1. 相比BRAVH更轻量。看过源码就知道,一共用了20多个类就做到了与BRAVH基本...转载 2018-06-27 18:09:14 · 678 阅读 · 0 评论 -
Android 获取软键盘的删除delete事件
TextWatcher,android软键盘删除delete键,自定义输入法输入内容原创 2017-08-05 17:15:21 · 14840 阅读 · 5 评论 -
android 官方demo地址
android官方demo地址都放在了github上: https://github.com/googlesamples原创 2017-07-28 18:25:04 · 3081 阅读 · 0 评论 -
Android Studio快捷键、配置 Android Studio、cmake配置Android原生项目、cmake命令
本文件来自官方文档https://developer.android.google.cn/studio/intro/keyboard-shortcuts.html另有:配置 Android Studiohttps://developer.android.google.cn/studio/intro/studio-config.html向您的项目添加 C 和 C++ 代码(注:介转载 2017-04-25 22:26:11 · 1567 阅读 · 0 评论 -
ffmpeg编译 (3.3版本) 以及 命令行工具的集成
详细的说明请参考资源文件:http://download.csdn.net/detail/feixiangsmile/9827932?locationNum=9&fps=1此文件主要内容为:ffmpeg的编译过程详解,ffmpeg命令行工具在android 上的移植,通过ndk-build或者cmake方式在android studio2.2,ndk14(官网下载android stu原创 2017-05-24 16:03:09 · 1837 阅读 · 7 评论 -
Android开发学习之路--Android Studio cmake编译ffmpeg
原文地址:http://blog.csdn.net/eastmoon502136/article/details/52806640最新的Android studio2.2引入了cmake可以很好地实现ndk的编写。这里使用最新的方式,对于以前的android下的ndk编译什么的可以参考之前的文章:Android开发学习之路–NDK、JNI之初体验。1.ffmpeg编译 进转载 2017-04-18 16:48:20 · 796 阅读 · 0 评论 -
Android获取状态栏高度、标题栏高度、编辑区域高度的获取
版权声明:^_^ 尊重原创,共享知识,转载请注明"_程序猿大人_"http://blog.csdn.net/a_running_wolf目录(?)[-] 一Activity界面区域划分 二状态高度的测量 1通过系统尺寸资源获取 3借助应用区域的top属性 4借助屏幕和应用区域高度转载 2017-01-30 10:41:13 · 461 阅读 · 0 评论 -
开源代码AVLoadingIndicatorView、AndroidProcesses、mp4parser
1、开源代码 AVLoadingIndicatorView是一个实现了各种各样加载效果的库,每一种效果都很精美。https://github.com/81813780/AVLoadingIndicatorView 2、获取运行的app列表方式 开源代码: https://github.com/jaredrummler/AndroidProcesses3、对MP4原创 2016-12-18 17:00:52 · 1229 阅读 · 0 评论 -
【译】用Fragment解决屏幕旋转(状态发生变化)状态不能保持的问题
这篇文章解决了在StackOverflow上一个经常被提到的问题。在配置发生变化(Configuration changs)时,什么是最好的保存活动对象方法,比如运行中的线程,Sockets,AsyncTask。要回答这个问题,我们要先讨论一些开发者在Activity生命周期中使用长时间后台任务时遇到的共同困难。然后,我们将介绍常见的两种能解决问题但有不好的方法。最后,我们会用一个转载 2016-11-27 23:04:34 · 420 阅读 · 0 评论 -
从源代码分析Universal-Image-Loader中的线程池
一般来讲一个网络访问就需要App创建一个线程来执行,但是这也导致了当网络访问比较多的情况下,线程的数目可能积聚增多,虽然Android系统理论上说可以创建无数个线程,但是某一时间段,线程数的急剧增加可能导致系统OOM。在UIL中引入了线程池这种技术来管理线程。合理利用线程池能够带来三个好处。第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,转载 2016-11-27 17:18:43 · 466 阅读 · 0 评论 -
从源代码分析Android-Universal-Image-Loader的缓存处理机制
讲到缓存,平时流水线上的码农一定觉得这是一个高大上的东西。看过网上各种讲缓存原理的文章,总感觉那些文章讲的就是玩具,能用吗?这次我将带你一起看过UIL这个国内外大牛都追捧的图片缓存类库的缓存处理机制。看了UIL中的缓存实现,才发现其实这个东西不难,没有太多的进程调度,没有各种内存读取控制机制、没有各种异常处理。反正UIL中不单代码写的简单,连处理都简单。但是这个类库这么好用,又有这么多人用,那么非转载 2016-11-27 21:15:57 · 381 阅读 · 0 评论 -
Android最简单的基于FFmpeg的例子(四)---以命令行的形式来使用ffmpeg
http://www.ihubin.com/blog/android-ffmpeg-demo-4/编译环境Mac OS X Capitan 10.11.3NDK-r10e (64-bit)FFmpeg 3.0简介在前面编译FFmpeg类库编译ffmpeg时,编译脚本中使用了参数 –disable-ffmpeg,所以是不会生成ffmpeg工具的,即使生成了,在转载 2017-04-20 20:57:00 · 865 阅读 · 0 评论 -
Android PopupWindow的使用和分析
Android PopupWindow的使用和分析 PopupWindow使用 PopupWindow这个类用来实现一个弹出框,可以使用任意布局的View作为其内容,这个弹出框是悬浮在当前activity之上的。 PopupWindow使用Demo 这个类的使用,不再过多解释,直接上代码吧。 比如弹出框的布局:xml version="1转载 2017-07-10 20:14:06 · 338 阅读 · 0 评论 -
JAVA字符串格式化-String.format()的使用
常规类型的格式化String类的format()方法用于创建格式化的字符串以及连接多个字符串对象。熟悉C语言的同学应该记得c语言的sprintf()方法,两者有类似之处。format()方法有两种重载形式。format(String format, Object... args) 新字符串使用本地语言环境,制定字符串格式和参数生成格式化的新字符串。format(Locale转载 2017-08-05 16:26:33 · 659 阅读 · 0 评论 -
如何更新及替换ViewPager中的Fragment
ListView的工作原理在了解ViewPager的工作原理之前,先回顾ListView的工作原理:ListView只有在需要显示某些列表项时,它才会去申请可用的视图对象;如果为所有的列表项数据创建视图对象,会浪费内存;ListView找谁去申请视图对象呢? 答案是adapter。adapter是一个控制器对象,负责从模型层获取数据,创建并填充必要的视图对象,将准备好的转载 2017-08-02 22:27:27 · 2948 阅读 · 0 评论 -
MPAndroidChart对Y轴上的刻度宽度的设置以及其他说明
在使用MPAndroidChart绘制曲线图的时候,如果数据是动态加载的,那么y轴上的刻度值会根据计算出来的数值进行动态显示,从而会造成在数据动态添加的过程中,由于数据的位数可能会变大,就会使y轴线刻度值宽度变大,那么整个图也就跟着变化。如何做到 y轴上的刻度值宽度总是固定不变,以至于使Y轴线固定在某个位置不会变化呢?下面提出一种解决方案在MPAndroidChart的源文件中找到Vi原创 2017-07-23 19:12:56 · 22030 阅读 · 2 评论 -
BRVAH官方使用指南
brvahBRVAH是一个强大的RecyclerAdapter框架,它能节约开发者大量的开发时间,集成了大部分列表常用需求解决方案。为什么会有它?请查看「Android开源框架BRVAH由来篇」该框架于2016年4月10号发布的第1个版本到现在已经一年多了,经历了700多次代码提交,140多次版本打包,修复了1000多个问题,获得了7000多star,非常感谢大家的使用以及反馈。本转载 2017-07-20 18:33:18 · 826 阅读 · 0 评论 -
Android 使用PLDroidPlayer播放网络视频 根据视频角度自动旋转
现在市面上有几个比较主流好用的第三方框架Vitamio ( 体积比较大,有商业化风险 github:https://github.com/yixia/VitamioBundle/)ijkplayer(B站下开源的框架 体积大 配置环境比较麻烦 github:https://github.com/Bilibili/ijkplayer )PLDroidPlayer(七牛根据ijkplayer二转载 2017-07-20 17:57:53 · 817 阅读 · 0 评论 -
android中RecyclerView的使用并结合DiffUtil的运用
RecyclerView的使用,以及运用DiffUtil实现部分更新原创 2017-06-26 20:21:06 · 1483 阅读 · 0 评论 -
listview divider分割线不能显示问题
在android应用中,listview是经常使用的控件之一,对于此控件的分割线divider,可以通过静态布局(android:divider和android:dividerHeight)或者动态java编码设置(通过设置setDivider()和setDividerHeight()),但是,有一点需要注意:当我们设置好后如果再通过动态代码修改的,需要同时设置这两项,并且分割线高度不能为0,否则原创 2017-07-04 16:13:14 · 2884 阅读 · 0 评论 -
关于定制日期选择器DatePicker
本文转载两篇有关定制datepicker的相关文章:第一篇:DatePickerDialog的月份为英文转成数字 (转自:http://blog.csdn.net/zuohenghengl/article/details/52777021 )在项目中,发现使用日期选择器的时候,不同手机系统日期选择框显示的日期不同,有的是中文的,有的是英文!之前以为是系统语言的问题,后面发现转载 2017-07-11 17:02:38 · 1170 阅读 · 0 评论 -
android对网络变化的更改
在android5之前的版本中一直如下操作新建BroadcastReceiver新建NetworReceiver,继承BroadcastReceiver,在onReceive()方法中,首先通过getSystemService()方法得到了ConnectivityManager的实例,这是一个系统服务类,专门用于管理网络连接的。然后调用它的getActiveNetworkInfo()方法...转载 2019-10-03 10:49:09 · 1073 阅读 · 0 评论