Android集结号

《安卓开发框架》种类小说>>>

写给 Android 开发者的模糊使用手册

点击打开链接
毫无疑问,混淆是包装进度中最要害的流水生产线之一,在没有异样原因的图景下,所有app 都应当打开混淆。
首先,那里说的的混淆其实是归纳了代码压缩、代码混淆以及财富收缩等的优化进程。依靠
ProGuard,混淆流程将主项目以及凭借库中未被应用的类、类成员、方法、属性移除,那促进规避
64K
方法数的瓶颈;同时,将类、类成员、方法重命名为无意义的差不离名称,扩充

Android彻底组件化demo发表


(本文提议的组件化方案已经开源,参见Android彻底组件化开源项目)
今年三月份始发,小编起来承担对“获得app”的android代码举办组件化拆分,在动手在此之前小编翻看了诸多组件化可能模块化的稿子,尽管有一部分取得,不过很少有小说能够交给2个全体且实用的方案,半数以上稿子都只停留在组件…

Android OpenGL ES 2.0 完全入门(三):2D
纹理的剪裁、翻转、旋转、缩放


本身在2018年二月份读书了 OpenGL 的一些基本概念,整理了二个 demo
和两篇小说,并在今年5月份复习改进了一番。不久前作者越来越向铁蕾兄学习了各个常用
2D
纹理变换的贯彻思路(以及本文中的其余总计性文字),由于铁蕾兄实在太忙,无暇急忙整理成文,由此笔者就在此地为她代笔了
🙂

最健全总括 Android WebView与 JS
的交互方式(含实例德姆o)


前言 现行反革命众多App里都放到了Web网页(Hyprid
App),比如说很多电商平台,Taobao、京东、聚划算等等,如下图 京东首页
上述功效是由Android的WebView完结的,当中涉嫌到Android客户端与Web网页交互的落实明日笔者将健全介绍Android通过WebVie…

Android
存款和储蓄路径你打探多少


Android 存储路径你领会多少

高仿微信录制摄像, 涂鸦水印添加, 基于 ffmpeg
录像编辑


效益首要涵盖 5 点:

  1. 遵照 ffmpeg 的录制录制及合成;
  2. 自定义拍戏按钮, 长按放大并且出示拍片进程;
  3. 自定义 view, 达成手绘涂鸦;
  4. 自定义可触摸旋转缩放位移的神采文字 view;
  5. 基于 ffmpeg 的图纸和录像合成处理.
[初探Android中Window与DecorView](https://link.jianshu.com?t=https%3A%2F%2Fjuejin.im%2Fentry%2F59bf4716f265da06560452ef)

Android中View能够说是极致首要的多少个地点之一,包涵事件分发,衡量,绘制等等,都以万分常见的情景。那么我们要想好好精通那一个知识,就得一语破的精通Andorid整个View从上大功告成所经历的一多元工作。本文分析的源代码均出自Android
API 24。

【Android】状态栏颜色的适配


除了 Mi UI 其他厂商也有定制,Flyme,EMUI,Color OS 以及金立的氢
OS,Smartisan OS 等等,每款定制 ROM 都有其万分之处,不过个人已经屡见不鲜了
Mi UI。
MI UI 1个很好的体验正是情景的字体能够变色,紫酱色变海洋蓝,红色变浅莲红。

本人一行代码都不写完成Toolbar!你却还在封装BaseActivity?


初稿地址:
https://juejin.im/post/590f09ec128fe100584ee6b0
前言 距离 上篇文章的刊马上间已经亡故八个多月了,那五个月时间里本人没写小说但平素在创新着本身的
MVPArms 框架,让他逐步朝着 可配置化集成框架 发展 就在前段时间小编…

Android 热修复 – 微信
Tinker


简易便捷集成微信热修复 Tinker

那不是沉浸式状态栏


前言 首先请我们看几张图:
以上的效用,一般大家统称为沉浸式状态栏。其实,那种叫法不是很可信,而且也从没沉浸式状态栏这一说,唯有沉浸形式。以上两种景况,能够称为透明状态栏大概状态栏着色。
① 、二种状况举行Android开发时,有两种办法都会对事态栏实行安装:Translucen…

高级UI特效仿直播点赞效果—一个绝色炫酷的点赞动画


Android下载文件(一)下载进程&断点续传


从接触Android开发到现在也快两年了,一路走过来能够说是站在巨人的肩头上前进,真的很谢谢为开源世界作出贡献的人。话说回来,搞了这么久的支付却直接在用别人的劳动成果也不是回事,所以笔者主宰写几篇文章分享自个儿对Android下载文件的了解,并在终极整合并开源一个框架,也是对自家在And…

Android匿名共享内部存款和储蓄器(Ashmem)原理


阅读从前,不妨先考虑两个标题,在Android系统中,APP端View视图的多少是怎么着传递SurfaceFlinger服务的啊?View绘制的多寡最后是依据一帧一帧展现到显示屏的,而每一帧都会占据一定的储存空间,在APP端执行draw的时候,数据很显明是要绘制到APP的进度空间,…

选择 RecyclerView 实现 Gallery 画廊效果,并决定 Item
停留地点


RecyclerView
作为贰个列表滑动控件,我们都领会它既可以横向滑动,也足以竖直滑动,能够实现线性布局管理,瀑布流布局管理,还有
GridView 布局管理。其实大家能够操纵其 Item
的停留地方,并使其达成画廊效果。若是大家领会 SnapHelper
的话,臆想大家就…

Android Studio 3.0
新职能解析和旧项目适配


下周一,谷歌(Google) 终于在经历大八个月的磨擦锤炼之后正式颁发 Android Studio 3.0
版本,给周边安卓开发人士一份知足的答卷。如既往一样,每一遍新版开发工具的公告,很多严俊点的情人仍担心稳定性、是不是留存坑等难题,选择隔岸观火,等一段时间再立异进步。
经过查阅官网对新…

unity3d与android交互


简述 实现unity3d导出到android
studio工程并打包为library,供其余工程导入module直接动用。最后效果:
点击ZoomIn、ZoomOut的按钮,通过android端调用unity中方法,进行放大放小;
触摸unity中的3D立方体,调用androi…

玩转APK:实现Android
APK瘦身99.99%


摘要: 怎样瘦身是 APK 的要害优化技术。APK
在安装和翻新时都亟需经过网络下载到设备,APK
越小,用户体验越好。本文作者通过对 APK 内在机制的详细分析,给出了对 APK
各组成成分的优化措施及技术,并落到实处了3个为主 APK 的最小化进度。

开源整理:有趣的Android动画交互设计


诸君同学,中午好,今日给我们推荐多少个口碑不错且在Github上开源的代码库,如若想让投机的App在互相动画方面变得更有趣,学习一下那么些开源项指标代码将会对您有着裨益。
https://github.com/googlesamples/android-topeka
Topeka是…

MIUI 系统 BUG,Android
调用相机崩溃?将拍录适配方案展开到底!


提起 Android 调用系统相机拍录上传图片恐怕是显得图片,想必任何一个人支付
Android
的对象都不会目生,基本这些作用已经包涵各样应用了,前些天,小编就来给大家聊聊网上并不多见却又每每很操蛋的
Android 7.0 相机适配…

省市区三级联合浮动选用器


透过多少个 APP 的支付,发现差不离每一个 APP
都有如此三个必要,那就是省市区三级地址的取舍,一般都务求近乎于 iOS
的滚轮实现,在 github
上面找了部分开源控件完结了弹指间,发现会产出一些难点,所以就打算自个儿包裹三个,直接嵌入数据源,不须求团结再手动设置数据了,一行代码解决1个都市政委员会大选择功用。

有了这个 Chrome
插件,效用提高10倍


Chrome
浏览器深受周边程序员的热爱,把她称为一场浏览器革命毫不为过。而它的插件能够极大地提升生产成效,作者把温馨常常采用的觉得没错的插件分享给我们,同时欢迎我们推荐更加多更幽默的插件。
0、Proxy SwitchyOmega Proxy SwitchyOmega 是科…

一些关于加速 Gradle
创设的私家经历


现阶段多数的 Android 项目都以依据 Grale 了,因为 Gradle
确实给大家带来了许多有利,不过,在应用了 Gradle
后,最大的缺憾正是编写翻译起来太慢了。消除慢的题材唯有有两种格局

升级硬件配置,选取 CPU 和内部存款和储蓄器和硬盘等更优的硬件
在软件方面,裁减不供给的耗费时间,丰裕利用现有机器的习性。
本文的重中之重经历围绕着什么样压缩不供给的耗费时间操作和怎么足够利用机器质量进行。

RecyclerView
使用攻略(刷新篇)


继《RecyclerView
使用攻略(助力篇)》之后,平素没有更新上下拉刷新的效率完结,主要依旧受限于个人现有的技术实力,总认为没有通超过实际际打磨的,就不敢有登台的自信。虽说以后早已引用到祥和的品类上了,但依旧得继续跟进优化的。

品类要求探讨 – RecycleView
分页加载达成分析


因为品种需求,需要达成 RecycleView
分页加载效用,看许多篇章首要都是一直封装好,拿来给人家用,而没有申明是具体怎么落实,就融洽写了一篇分析的。

Android布局优化技术


一.一体化规格:减弱布局层次,加速渲染速度
尽量防止RelativeLayout嵌套RelativeLayout 二.重用
标签能够在二个搭架子中引入此外多个搭架子,重用共同的布局文件。
比如说共同的标题栏common_title.xml <…

Android彻底组件化方案执行


花色发展到自然水平,随着人口的加码,代码越来越臃肿,这时候就不可能不开展模块化的拆分。在笔者眼里,模块化是一种指点意见,其核心境想就是分而治之、下降耦合。而在Android工程中怎么着执行,近年来有三种途径,也是两大流派,2个是组件化,三个是插件化。
组件化是多少个完完全全吗?去了头和手臂还是可以够…

Android中View的绘图流程


View的绘图流程是从ViewRootImpl的performTraversals方法初步,它通过measure、layout和draw八个经过才能最后将3个View绘制出来。
壹 、measure,即衡量的情致,measure方法是在View中,它是final类型,意味着and…

android强大的SpannableStringBuilder


SpannableStringBuilder和SpannableString的分别类似与StringBuilder、String,即是SpannableStringBuilder能够凑合,而SpannableString不可拼接。
SpannableStringBuilder和…

Android优化方案之–Fragment的懒加载实现


在Android应用中,ViewPager是大家不可防止使用的二个控件,因为它可以使我们在挤占较少空间的同时,增强内容的充分性,同时以其内部流淌着谷歌(Google)的血液,所以它大概成了每四个App的标配控件。不过,假诺ViewPager的每多个Fragment都要求通过网络拉取数据加载,而ViewPager是暗中认可加载前两项的,所以在很不难造成互联网丢包可能互连网堵塞等难题,所以Fragment使用懒加载是不行有须要的。

Android
中直播录制技术研讨


不久前各样录像直播 app
四处都是,各类霸屏,当然大家也是内需经验的,关于摄像直播的软件那里就不介绍了,在不是技术的人来看,直播是一种前卫,是一种娱乐情势,但是作为贰个搞技术的,大家除了看望,更器重的是读书技能,其实
Android
中的录制技术没什么说的,因为网上的资料很多,然则此前的录制技术大多数都出现在了录像播放,正是主流的摄像播放器,那几个最根本的3个技巧正是录像的编解码,这么些也会在后续小说中详尽介绍摄像的处理技术。不过未来直播的技术是在事先的摄像技术上又有了3个渴求便是录制摄像,今后录制很多是借助牛逼的硬件录像头。但是除此之外那些技能,还有任何的大家使用移动设备也能够去消除这么些标题。那个一而再也会商量怎么样运用设备去录像录制。

Android 开发中怎么着动态加载 so
库文件


自个儿想对于静态加载 so 库文件,大家都已经很熟谙了,那里就不多说了。在
Android 开发中调用动态库文件(*.so)都以透过 jni
的方式,而静态加载往往是在 apk 或 jar 包中调用so文件时,都要将对应 so
文件打包进 apk 或 jar 包。 动态加载的长处 …

RecycleView开源项目BTucsonVAH分析


读书源码对更好的精通和动用开源软件有可观的鼎力相助

谈谈 WebView
的使用


座谈 WebView 的应用 -(从零初始搭建 android 框架体系(5))

MVP架构开发,一篇让您从看懂到会使用


现行反革命网上关于mvp架构的稿子有过多,不过对于部分不是专程清楚那个架构的开发者,不是很谈得来,所以,小编要写一篇博客,通过自己的全力,让我们可以更好的明亮她,并动用他。下边是小编那片文章要上课的始末。

让大家从第贰部先河,一步步走进mvp。

5 个 Android
开发中相比常见的内部存储器泄漏难点及消除办法


在Android程序支付中,当一个指标已经不必要再使用了,本该被回收时,而其余3个正值接纳的靶子具备它的引用从而导致它不能够被回收,那就导致本该被回收的目的不可能被回收而滞留在堆内部存款和储蓄器中,内存泄漏就发出了。

自定义粘性下拉刷新


原创 二零一七年02月04日 19:51:35 编辑 删除
在android中自定义的下拉刷新很常用,尤其是在刷新页面更新数据的时候,b相比炫酷的下拉刷新能够授予多个页面相比好的相互体验;
下边先来看…

android中带索引的列表—–索引的尖端应用


在Android中索引无处不在 比如通讯录 方便寻找消息的显得页等
上面介绍二个实用的索引demo

RecyclerView
优雅封装


对 Android 中 RecyclerView
的高雅封装,能够完成低耦合的下拉刷新,上拉加载越多,支持类似 ListView
的多 HeaderView、FooterView。扩大性强,能够自定义下拉、上拉个性化
View。

玩转仿探探卡片式滑动作效果果


玩转仿探探卡片式滑动效果

三个传说讲完
Https


以传说的款型向您介绍网络安全中的常见难点

Android
中基于物理特点的动画简介


依照物理个性的卡通讯赖于物工学定律,那能在动画中表现出惊人的现实感。

就好像支付宝首页——RecyclerView
多布局结构达成


大家都领悟,RecycleView 默许只可以因此 setLayoutManager()
方法钦定一种布局结构,那么像支付宝首页那样复杂的多布局景况如何处理吧?在
ListView 中,我们也遇上过这种状态,是因此 getItemViewType
结合其余格局,通过判断项目来加载区其他布局。在 RecycleView
中也同样应用,今日我们第1介绍 RecycleView 多布局完毕,个中布局嵌套了
GridView,有个别坑须求专注,制止沦为。

Android
开发时,那些亲近的工具或网站!


在其实 Android
开发进度着实会有为数不少近乎的工具或网站出现,本文是自身要好的有的分享。

干货 |
Android高级动画(2)


Android高级动画进阶,矢量动画。

2017 Android 最周密试总结 –
这一个面试题你一定必要


涉嫌到了 Android 的整整,引用了成都百货上千财富,也足以用作学习纲要。

Google官方推出使用开发架构指南


虽说说 Android 的架构选择直接都很随便,MVP、MVC、MVVM 各有拥趸。但
Google近日要么生产了一份有关选择架构的进行指南,并提交了13分详尽的步调和局地教导提出。希望大家都能看一看,学习一下,构建尤其出色易用的
APP,也为 Android 生态的一字不苟做一点进献。: )

Android 自定义——点赞效果 (仿
照片墙)


因此自定义控件,意欲效仿 Instagram 的点赞效果。

Android Gradle
常用使用境况达成方式的总括


Gradle 作为一款灵活多变的营造插件,与 Android Studio
的组合,可以化解过去应用 Eclipse 开发 App 时所遭受的重重题材。同时,基于
Groove 那样一款 DSL
语言的台本天性,记住种种语法显著又是一件比较不方便的业务。 事实上,Gradle
插…

从零初叶的 Android 新类型 2 – Gradle


深信我们的门类用上 gradle
都已经很久了,但用得如何呢?本篇作品介绍了依靠管理,版本号管理,签名体贴,Java8
援救,Apk Splits、module aar 等极品实践

前言

差不离各样品种都会有多样八种的工具类,在支付中通过它们可更直接惠及地贯彻效益。上面将介绍demo中逐一工具类的使用,而具体的兑现请下载demo查看代码。


介绍

1. Log打印

demo中提供了LogUtil工具类(出自ZhaoKaiQiang),和日常的Log一样包括Verbose、Debug、Info、Warn、Error、Assert多少个等级,还协助将json或xml文本格式化后输出。
使用:
1)控制是不是打字与印刷。正式打包上线时可设为false:

LogUtil.init(true);

2)打印

//比如打印Error级日志
LogUtil.e(TAG, message);

//将jsonString格式化后打印出来
LogUtil.json(TAG, jsonString);

//将xmlString格式化后打印出来
LogUtil.xml(TAG, xmlString);

其一Log工具类3个一点都不小的好处是,你能够长足地跟踪到调用打印的具体地方。如图:

图片 1

Log跟踪1

点击MoviePresenter即可定位到输出打字与印刷的地点

图片 2

Log跟踪2

2. 崩溃打字与印刷

demo中提供了CrashLogUtil工具类,用于在程序崩溃时,输出相当日志到手提式有线电话机本地文件中,方便在没连接电脑时翻看极度音信。
接纳方法:
1.Application中伊始化

CrashLogUtil.getInstance().init(this);//初始化崩溃打印

2.可钦点越发新闻所出口的公文(地方)

File dirTemp = FileUtil.generateDirectory(FileUtil.getExternalCacheDir(), "temp");
File fileOutput = FileUtil.generateFile(dirTemp, fileName);
//指定输出文件
CrashLogUtil.getInstance().setFileOutput(fileOutput);

不点名的话,文件默许就保存在/storage/emulated/0/Android/data/com.xxx.xxx/cache/temp下。
次第崩溃时,即可到对应的地点下查看卓殊新闻,如图:

图片 3

查阅崩溃日志1

图片 4

查看崩溃日志2

3. 部手提式有线电话机系统项目

demo中提供了SystemTypeUtil工具类,用于拍卖与手提式有线电电话机系统项目相关的风浪。
部分无线电话的系统是依据原生Android系统改造的(如HTC,金立),所以在稍微作用的完毕上要求做同盟处理,如设置情形栏中图像和文字的颜料形式、跳转到权限管理页面。

  • 判定手提式有线电话机种类

boolean flag;
flag = SystemTypeUtil.isEMUI();//是否为华为手机
flag = SystemTypeUtil.isMIUI();//是否为小米手机
flag = SystemTypeUtil.isFlyme();//是否为魅族手机
  • 跳转到权限管理页面

//跳转,兼容不同手机系统类型
SystemTypeUtil.goToPermissionManager(context);
  • 设置情况栏中图像和文字的水彩方式(深色方式或亮色格局)

boolean isDark = true;//true表示深色模式,false表示亮色模式
Window window = getWindow();
boolean flag = SystemTypeUtil.setStatusBarLightMode(window, isDark);//返回true表示设置成功

深色方式效用图:

图片 5

深色格局

亮色情势效能图:

图片 6

亮色情势

4. android 6.0权力申请

android6.0后(targetSdkVersion>=23)对中国“氢弹之父”感权限,app须要向用户建议授权申请。
demo中提供了一个比较简单PermissionUtil工具类,用于6.0版本的权能申请。github上有不少高star的6.0权力开源库,大家能够活动查阅。

此处说下一般的报名流程:
1)在 AndroidManifest.xml 添加权限申明。
2)使用 checkSelfPermission 检查有个别权限是还是不是早已报名。
3)权限未申请,使用 requestPermissions
申请权限,然后会回调onRequestPermissionsResult。
4)在 onRequestPermissionsResult 回调中判断权限是或不是申请成功。
5)倘诺申请破产,则采取 shouldShowRequestPermissionRationale
判断用户是不是勾选了 “不再升迁”。勾选了的话,则弹出1个 Dialog
引导用户到安装界面授予权限。没勾选的话,能够怎么都不做,也得以弹出弹出一个Dialog 指点用户到安装界面授予权限。

5. 网络状态

demo中提供了NetworkUtil工具类,用于查询互联网状态

//当前网络是否可用,返回true表示可用,false表示不可以用
NetworkUtil.isNetWorkAvailable(context);

//当前网络是否为wifi网络,返回true表示是,false表示不是
NetworkUtil.isWifiConnected(context);

//当前网络是否为手机移动网络,返回true表示是,false表示不是
NetworkUtil.isMobileConnected(context);

...

6. File相关

demo中提供了FileUtil工具类,用于拍卖File相关的操作

  • icroSD存款和储蓄卡是或不是能用

FileUtil.isSDCardAvailable();
  • 创制文件夹

/**
* 创建一个文件夹, 存在则返回, 不存在则新建
*
* @param String parentDirectory 父目录路径
* @param String directory  目录名
* @return 文件,null代表失败
*/
FileUtil.generateDirectory(parentDirectory, directory);

/**
 * 创建一个文件夹, 存在则返回, 不存在则新建
 *
 * @param File parentDirectory 父目录
 * @param String directory  目录名
 * @return 文件,null代表失败
 */
 FileUtil.generateDirectory(parentDirectory, directory)
  • 开创文件

/**
 * 创建一个文件, 存在则返回, 不存在则新建
 *
 * @param File catalog 父目录
 * @param String name    文件名
 * @return 文件,null代表失败
 */
 FileUtil.generateFile(catalog, name);

/**
* 根据全路径创建一个文件
*
* @param filePath 文件全路径
* @return 文件,null代表失败
*/
FileUtil.generateFile(filePath);
  • 去除文件

/**
* 删除文件/文件夹
* 如果是文件夹,则会删除其下的文件以及它本身
* @param file file
* @return true代表成功删除
*/
FileUtil.deleteFile(file);
  • 总计文件大小

/**
 * 计算文件/文件夹的大小
 * @param file 文件或文件夹
 * @return long 文件大小
 */
FileUtil.calculateFileSize(file);
  • 取得系统提供的文本夹路径

//返回"/data"目录
FileUtil.getDataDirectory();

//返回"/storage/emulated/0"目录
FileUtil.getExternalStorageDirectory();

//返回"/system"目录
FileUtil.getRootDirectory();

//返回"/cache"目录
FileUtil.getDownloadCacheDirectory();

//返回"/data/user/0/com.xxx.xxx/cache"目录
FileUtil.getCacheDir();

//返回"/data/user/0/com.xxx.xxx/files"目录
FileUtil.getFilesDir();

//返回"/storage/emulated/0/Android/data/com.xxx.xxx/cache"目录
FileUtil.getExternalCacheDir();

/**
 * @param String type 所放的文件的类型,传入的参数是Environment类中的DIRECTORY_XXX静态变量
 * @return 返回"/storage/emulated/0/xxx"目录
 *         例如传入Environment.DIRECTORY_ALARMS则返回"/storage/emulated/0/Alarms"
 */
FileUtil.getExternalStoragePublicDirectory(type);

/**
 * @param String type 所放的文件的类型,传入的参数是Environment类中的DIRECTORY_XXX静态变量
 * @return  返回"/storage/emulated/0/Android/data/com.xxx.xxx/files/Alarms"目录
 *          例如传入Environment.DIRECTORY_ALARMS则返回"/storage/emulated/0/Android/data/com.xxx.xxx/files/Alarms"
 */
FileUtil.getExternalFilesDir(type);

7. Activity栈管理

demo中提供了ActivityStackManager工具类,用于存放管理Activity栈。
运用流程:
1.在activity创造时调用pushOneActivity(Activity
activity)推入栈,可放于Activity基类中

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mStackManager = ActivityStackManager.getInstance();
    mStackManager.pushOneActivity(this);
}

2.在activity销毁时调用popOneActivity(Activity
activity)弹出栈,可放于Activity基类中

@Override
protected void onDestroy() {
    mStackManager.popOneActivity(this);
    super.onDestroy();
}

3.当你想要退出某些Activity时,可调用exitActivity(Class cls)

mStackManager.exitActivity(CollectActivity.class);

4.当你想要退出整个应用(全数Activity)时,可调用exitApplication()

mStackManager.exitApplication();

还提供了别样办法,具体请查看demo代码

8. SharedPreferences

demo中提供了PreferenceUtil工具类,用于SharedPreferences的数额插入、读取等操作。

  • 获取SharedPreferences

SharedPreferences sp = PreferenceUtil.getPreference(context, spName);
  • 布署数据

//int类型
PreferenceUtil.putInt(sp, key, value);
//String类型
PreferenceUtil.putString(sp, key, value);
//boolean类型
PreferenceUtil.putBoolean(sp, key, value);
//float类型
PreferenceUtil.putFloat(sp, key, value);
//long类型
PreferenceUtil.putLong(sp, key, value);
  • 读取数据

//int类型
PreferenceUtil.getInt(sp, key, defaultValue);
//String类型
PreferenceUtil.getString(sp, key, defaultValue);
//boolean类型
PreferenceUtil.getBoolean(sp, key, defaultValue);
//float类型
PreferenceUtil.getFloat(sp, key, defaultValue);
//long类型
PreferenceUtil.getLong(sp, key, defaultValue);

//读取所有数据,返回Map
PreferenceUtil.getAll(sp);
  • 清空数据

PreferenceUtil.clearAll(sp);

9. Toast

demo中提供了ToastUtil工具类,方便吐司。
使用流程
1.Application中起头化

ToastUtil.init(this);//初始化吐司

2.在要吐司的地方调用show

ToastUtil.show("hello world");

ToastUtil.show(R.string.appName);

10. 密度单位转换

demo提供了DensityUtil工具类,用于密度单位的更换

  • px转dp

int dp = DensityUtil.px2dp(context, px);
  • dp转px

int px = DensityUtil.dp2px(context, dp);
  • sp转px

int px = DensityUtil.sp2px(context, sp);
  • px转sp

int sp = DensityUtil.px2sp(context, px);

11. 高斯模糊

demo中提供了BlurUtil工具类,用于对Bitmap做高斯模糊处理,能够选用Java原生情势和RenderScript方式。

  • Java原生格局

//使用Java实现的高斯模糊效果(性能较低,模糊半径0-100,越大越模糊)
Bitmap bitmapAfter = BlurUtil.javaBlur(bitmapBefore, 15, true);
  • RenderScript方式

/**
* 使用RenderScript实现的高斯模糊效果(性能较高,模糊半径0-25,越大越模糊)
* 需在module下的build.gradle中加入
* renderscriptTargetApi 19
* renderscriptSupportModeEnabled true
*/
Bitmap bitmapAfter = BlurUtil.rsBlur(MyApplication.getInstance(), bitmapBefore, 15);

图片 7

高斯模糊效果

12. 加密

demo中提供了HashCoderUtil工具类,用于md5加密和sha1加密。

  • md5加密

String encrpt = HashCoderUtil.md5Crypt(password.getBytes());
//加盐值
String encrpt = HashCoderUtil.md5Crypt(password.getBytes(),salt);
  • sha1加密

String encrpt = HashCoderUtil.sha1Crypt(password.getBytes());
//加盐值
String encrpt = HashCoderUtil.sha1Crypt(password.getBytes(),salt);

13. 其他

demo中还提供了1个CommonUtil,负责一些比较杂碎的服从,例如

  • 取得装备唯一ID号

String deviceId = CommonUtil.getDeviceUniqueId(context);
  • 创制/删除桌面飞快方式

//创建
CommonUtil.creatShortcut(context);
//删除
CommonUtil.delShortcut(context);
  • 扩充View的入手范围

//扩大view上下左右10个单位触摸的范围
CommonUtil.expandViewTouchDelegate(view,10,10,10,10);

别的,BlankJ提供了2个各类工具类的开源项目,我们各取所需呢。
https://github.com/Blankj/AndroidUtilCode/blob/master/README-CN.md


详尽代码请看demo,地址https://github.com/LJYcoder/DevBase
demo的内容流程,请看《安卓开发框架(MVP+主流框架+基类+工具类)—
开篇》

Post Author: admin

发表评论

电子邮件地址不会被公开。 必填项已用*标注