
Android
文章平均质量分 69
刘某人程序员
心有菩提手有刀,欲成舍利却成妖!
展开
-
Gradle Kotlin DSL , 你知道它吗?
一.前言kotlin我相信大家实际上还是挺熟悉的,哪怕不熟悉,也没有关系,它跟Java是百分百兼容的,很多的语法是有点类似的,所以只要有Java基础,学习Kotlin并不是什么难事,再加上现在kotlin大热,Google多次在各种大会上力推,如果这个时候我们掌握了kotlin,肯定能给我们提升很大的帮助。而且Kotlin本身就是一门让人爱不释手的语言,写起来还是很赞的,不管你需不需要学习,进来看看,开阔下视野总是没错的。自Kotlin被Google转正之后,这门语言就备受我们Android开发者的.原创 2020-07-20 20:12:14 · 2941 阅读 · 4 评论 -
Android 组件化架构概要
组件化相信大家都很清楚他是什么,Android的一种开发架构,并且备受团队推崇,确实组件化在我看来对团队协作方面是帮助巨大的,随着应用开发的业务不断累积,我觉得我们更加应该关注架构的搭建,而不是一味的实现代码,这种重复工作以及无效时间就太多了,最近也阅读了很多关于架构的书籍,收获良多,所以今天的文章,就带领大家来领略一下组件化架构的美妙。我在慕课网的Android新课核心知识点如下:Andro...原创 2019-11-05 17:54:47 · 1508 阅读 · 2 评论 -
Android Vitamio 兼容 7.0 8.0 或者更高
说实话,这玩意还是很坑爹的,老项目使用了Vitamio这个视频框架,现在想改也没有什么精力了,然后去寻找一些解决办法,然而解决的办法并不多,而且方法都比较老,比较出现次数多的就是下面这两个错误了:1.Expecting an absolute path of the library: libstlport_shared.so2.No implementation found for void ...原创 2019-08-29 21:25:46 · 2932 阅读 · 7 评论 -
Android 监听来去电状态的实现
本文授权发布公众号【刘桂林】,星球【Hi Android】在Android中我们想要实现监听电话状态一般都会通过TelephonyManager来监听,他提供了一个PhoneStateListener的回调方式,当然,他也是提供了广播的通知方式,如果你想要实现此功能,那么这篇文章你可以看看,我将通过这两种方式来教你如何实现此功能。先来看下TelephonyManager的实现方式:来看...原创 2019-05-27 12:49:18 · 1312 阅读 · 0 评论 -
Android Zip 解压 与 进度 实现
本文授权发布公众号【刘桂林】,星球【Hi Android】关于Zip解压,其实在我们java中的java.util.zip包下有原生支持的读写,我们本篇文章将实现此功能,当然,我手写的代码大部分还是传授其原理和思路,需要大家自己去发散思维。首先我们明确一下需求:/sdcard/hello.zip 中 有一个 hello.txt 文本中有一句话,读取出来显示这里我先实现一下读取一个zip...原创 2019-05-27 12:47:25 · 3056 阅读 · 4 评论 -
Android PDF 的 读取 与 生成
本文授权发布公众号【刘桂林】,星球【Hi Android】Android 上 PDF 的读取 与 生成 , 一个小功能点,操作的也是File对象,这里涉及到IO操作,所以读写权限自行处理,我们先来看下读取PDF的几种方式:读取读取的话,搜了一圈的资料,大概是如下几种1.PdfRenderer加载,最原始的方式2.Pdf.js ,WebView加载3.第三方PDF库加载,如PDFVi...原创 2019-05-27 12:45:12 · 2789 阅读 · 0 评论 -
Android 如何生成专属分享卡
本文授权发布公众号【刘桂林】,星球【Hi Android】时下在使用手机App的过程中,我们发现专属分享卡已经很流行了,比如网易云的歌词分享,知识星球的邀请卡片,我们来看下我的星球的这张邀请卡:可以看到里面的内容一目了然,那么我们今天就来分享一下如何生成这样的卡片,也让你的应用更加时尚;实际上只需要通过View的截图功能就能实现这样的效果,我们首先需要先把这一块的布局写好:这里我们...原创 2019-05-27 12:42:09 · 1555 阅读 · 0 评论 -
封装MediaPlayer实现网易云音乐播放器
本文授权发布公众号【刘桂林】,星球【Hi Android】此文后续将出配套视频,星球成员免费观看本文将来实现一个音乐播放器,播放File和播放Url实际上是一致的,我会封装好所需文件便于你直接阅读代码和使用首先是流程与步骤:1.启动服务扫描所有的mp3文件形成播放列表2.封装MediaPlayer播放和操作3.歌曲封面动画和唱针动画的逻辑4.毛玻璃效果和封面5.歌曲控制 播放/...原创 2019-05-27 12:39:43 · 1187 阅读 · 0 评论 -
掌握RxJava的葵花宝典
本文授权发布公众号【刘桂林】,星球【Hi Android】各位少侠,老夫在黑木崖恭候大驾,欲练此功,必先哈哈。今天我们分享的是RxJava的知识点,让你快速掌握,所以我们会从0开始讲带RxJava的Api使用和设计理念等,本文较长,所以需要耐心看下去。目录一.RxJava相关资料二.RxJava的基本使用三.RxJava的调度器四.RxJava的操作符五.RxJava的订阅与...原创 2019-05-27 12:34:52 · 870 阅读 · 0 评论 -
Android 商城类应用实战之购物车附源码
本文授权发布公众号【刘桂林】,星球【Hi Android】本文为实战类项目,所以陈述的逻辑为实现流程 + 核心代码,主要实现的还是购物车的动画与结算,首先我们来看下整体的效果图:购物车一般都是后台存储的,这里因为是模拟数据,所以就不用存储了,直接将数据储存在内存中即可,也算是偷个懒儿~好了,我们一步步来ViewPager轮播首先我们要处理一下轮播,其实轮播还是比较简单的,就是一个V...原创 2019-05-27 12:15:04 · 6318 阅读 · 5 评论 -
Android 基于AccessibilityService智能安装Apk 仿 豌豆荚
本文授权发布公众号【刘桂林】,星球【Hi Android】今天我简单的来给大家分享一下基于AccessibilityService功能实现智能安装的功能,事实上这个功能在豌豆荚或者其他应用商店应该也是可以看到的,我们来看下截图:我们可以看到在豌豆荚的设置里有一个【自动安装应用】的功能,当我点击点击打开的时候就会弹出一个Window来告诉你,可以点击豌豆荚自动装来开启,这就是基本上的流程...原创 2019-05-27 11:45:42 · 1068 阅读 · 0 评论 -
Android 异步处理之IntentService源码分析
本文授权发布公众号【刘桂林】,星球【Hi Android】今天介绍一下IntentService,他和Service其实差不多,只是内部实现了一个HandlerThread,这点我们看源码其实就可以知道,IntentService的特性如下:启动的方式和正常的Service一致执行完任务之后自动停止多次启动以队列的形式等待执行使用起来还是比较简单的,来看下我写的这个例子:pub...原创 2019-05-27 10:26:44 · 370 阅读 · 0 评论 -
Android线程优化之线程池的详解
本文授权发布公众号【刘桂林】,星球【Hi Android】ThreadPoolExecutor还是有很多可讲的,但是我选择的还是着重讲解Android中的四个线程池,网上对ThreadPoolExecutor的例子太多了,也比较杂,大家可以去看看。Android中的线程池的概念来源于Java中的Executor,Executor是一个接口,真正的线程池的实现为ThreadPoolExecu...原创 2019-05-27 10:24:21 · 792 阅读 · 0 评论 -
Android 性能优化之内存泄漏,使用MAT&LeakCanary解决问题
本文授权发布公众号【刘桂林】,星球【Hi Android】App进行到最终的测试的时候,往往会出现一些性能上,以及内存上的问题,需要优化,这也是一个Android高级工程师所需要了解并且掌握的知识点,内存这个小妮子比较调皮,每个月总有那么几次泄漏或者溢出(OOM),这篇文章所讲的是内存溢出,这里要注意,内存溢出和内存泄漏是两个概念,这点大家要清楚,当然,内存泄漏过多会导致内存泄漏,至于什么是...原创 2019-05-27 10:18:46 · 838 阅读 · 1 评论 -
Android 本地广播 LocalBroadcastManager
LocalBroadcastManager 相信有不少人会有点认生,他是android.support.v4中的一个类,本地广播,只在App内部传播,大家熟知的广播,BrocastReceiver是全局广播,可以跨进程通信,而LocalBroadcastManager,只是作为一个本地消息和数据传输的手段,当然,还是有不少人再用EventBus这类的消息事件库,不过我不喜欢用第三方的库,虽然Eve...原创 2019-03-04 20:45:59 · 2429 阅读 · 3 评论 -
Vitamio Andrid高版本兼容
使用Vitamio的时候发现在Android的高版本会提示加载不到so2019-02-27 15:52:27.050 14535-14535/? E/zygote: No implementation found for boolean io.vov.vitamio.MediaPlayer.loadFFmpeg_native(java.lang.String) (tried Java_io_vo...原创 2019-02-27 15:57:12 · 1547 阅读 · 0 评论 -
Hello Http
Http很多人会用,但是他具体的一些细节,其实很多人是不知道的,所以你看完本篇文章之后,你就明白他的大部分概念了,本文会从概念,Http通信,TCP三次握手,Okhttp等知识一步步引导大家去熟悉这个知识点。一.什么是HttpHttp协议是超文本传输协议,定义了浏览器怎么向万维网服务器请求和推送万维网文档。具体可以详看百度百科。二.Http工作流程C:客户端 S:服务端1.C...原创 2019-02-27 15:07:05 · 1542 阅读 · 0 评论 -
Vitamio使用篇,打造强悍的视频播放器
Vitamio是一个优秀的Android视频框架,很多人也在用,所以这篇文章就是带大家接入Vitamio并且使用的首先我们要明白一个需求就是,我们需要做一个视频播放器,那这样的话,我们首先想到的就是VideView,但是VideoView说实话,不支持很多视频格式,所以我们换成Vitamio,可以明确的说,Vitamio的使用方式基本上和VideoView是一样的,这也便于我们更好的封装我们先...原创 2019-02-23 13:30:28 · 3472 阅读 · 0 评论 -
Android物联网(二)—— WIFI通讯
你已经不是小宝宝了,要学会自己找资料了,本文就不过多介绍一些基础细节了,我来说下这个应用的结构首先这个应用包含了Client和Service,也就是客户端和服务端,因为我懒,不想写两个App,所以做了一些标识的区分,我准备了两台手机进行测试,一台是三星,一台是小米,小米开启Ap热点,好的,那么开始吧。Service首先,我们在小米手机上打开Service private void i...原创 2019-02-19 11:51:47 · 3041 阅读 · 1 评论 -
Android物联网(一)—— 蓝牙通讯
蓝牙的基础知识我就不讲了,有兴趣可以看下我之前写的博客,现在我们要做的就是实现两个蓝牙之间的通讯,并且实现聊天功能,这里大家准备两个手机即可。我们先按照流程走一遍,首先是验证一下设备是否支持蓝牙,一般都是支持的if (!BtManager.getInstance().isSupport()) { Toast.makeText(this, "当前设备不支持蓝牙", Toast.LENGT...原创 2019-02-12 17:43:15 · 4780 阅读 · 3 评论 -
Android系统篇(二)——Android编译核心Build系统
《深入解析Android5.0系统》 一书笔记Android的Build系统非常的庞大,他是基于GUN Make以及shell来构建的,我们主要的面对方向是Android.mk文件,这也是Android为我们处理好的,不用直接跟shell打交道,Build不光可以处理系统的编译打包,还能生成img镜像等,十分的强大。从大的方面来说,Build系统分为三大块,第一块处于build/core目录下的文原创 2018-03-29 16:32:10 · 12656 阅读 · 7 评论 -
Android系统篇(一)——建立Android系统开发环境
在开始研究Android系统之前,我们要准备好一些开发的资料,比如Ubuntu,源码,开发资料等,Android系统本身来说,非常的庞大,应用使用的是JAVA语言,底层使用C/C++,所以,如果条件允许的话,尽可能的多掌握一些吧。一.Ubuntu我们更多的可能会选择 Window + Ubuntu 来进行工作,所以我们会比较依赖虚拟机,在我之前的博客中已经有介绍了,这里不会重复介绍...原创 2018-03-13 17:18:42 · 38236 阅读 · 6 评论 -
Android开发艺术探索——第九章:四大组件的工作过程(上)
本篇幅要讲讲四大组件,这也是我们再熟悉不过的,分别是Activity,Service,BroadcastReceiver,ContentProvider,怎么使用我们这里就不多赘述了,我们本篇主要是讲他们的执行流程和工作原理,也让我们更加的了解他们,所以本章的侧重点在于四大组件的工作过程分析,通过分析他们的工作过程我们可以更好的理解系统内部运行机制,这也有助于我们对系统有一个更加深入的了解。一.四大原创 2017-12-24 21:39:00 · 2545 阅读 · 1 评论 -
AIDL 客户端与服务端的双向通信
时隔一年半了,终于写下了这个续篇,我发现我的很多博客有头无尾,都是有前面一点点,后面就没写去了,也正在想办法都补上初涉IPC,了解AIDL的工作原理及使用方法今天聊聊的是客户端和服务端的相互通信,何谓双向通信,事实上,我们在上一篇的博客中,只是讲解了客户端请求服务端的方法,然后服务端返回一个值给我们 这样,其实是最简单的用法,但是常常在我们的开发过程中,如果调用了某些方法,比如网络请求,那么就原创 2017-11-21 10:51:30 · 5549 阅读 · 3 评论 -
Kotlin学习(二)—— 基本语法,函数,变量,字符串模板,条件表达式,null,类型检测,for,while,when,区间,集合
一.基本语法Kotlin的很多概念跟JAVA是有类似的,所以我应该不会像我的JAVA之旅一样那么的详细,但是不用担心,你会看的很明白的,我也是根据官方的文档来学习的我们在IDEA中创建一个项目Kotlin021.函数(fun)我们默认有一个主函数,就是main了fun main(args: Array<String>) { print("主函数")}和JAVA一样,他就是程序的主入口了,当原创 2017-11-20 10:30:30 · 3353 阅读 · 6 评论 -
Kotlin学习(一)—— IDEAIntelliJ IDEA的安装配置及Kotlin的环境部署
Kotlin学习(一)——IDEAIntelliJ IDEA的安装配置及Kotlin的环境部署一.概括从这篇博客开始,我们就正式的开始学习Kotlin了,首先我们来了解下他的几个重点Kotlin 是一个基于 JVM 的新的编程语言,由 JetBrains 开发。Kotlin可以编译成Java字节码,也可以编译成JavaScript,方便在没有JVM的设备上运行。JetBrains,作为目前广受原创 2017-11-19 11:40:18 · 13860 阅读 · 8 评论 -
Android接入支付宝实现支付功能
Android接入支付宝实现支付功能我本来是想直接讲Android支付这一块的,包括支付宝,微信,其他第三方整合支付等,但是微信开放平台他对我的账号做了限制,所有我今天就先把重心放在支付宝的支付上,也算是写得尽可能详细些吧,毕竟是第三方的SDK,只要我们耐心的阅读文档和开发引导,这个其实不是很难的,我也是没有用过支付宝的支付,但是我相信,你看完这篇博客,也会对他了如指掌的,好的,我们正文开始一.准备原创 2017-06-28 13:46:17 · 42005 阅读 · 9 评论 -
Google Android Developer
Google Android Developer我记得我学习Android那会儿,老师也不是很会Android,所有经常是对着Google的文档读,那个时候翻墙也是个麻烦事,再加上全英文的时候文档,看起来还是很吃力,经常是开着有道词典一句一句的翻译,等后来工作了,才意识到,这玩意是个好东西呀,但是那个时候已经不怎么去看API指南了,后来经常看一些技术书籍,我发现很多的写书人也大多数是看着官方文档的印原创 2017-06-27 13:33:45 · 3841 阅读 · 2 评论 -
Android Sensor Development
Android Sensor Development本文我们说一下Android中的传感器,这对于我们有时候做一些特殊的应用的时候还是需要的,这里我用小米手机下载了一个安兔兔,我们来看下大致的传感器安兔兔上面,有很多的传感器对吧,但是他们大致的其实是分三类,在我们的官方文档上,是这样说的sensors_overview一.传感器概述大多数Android设备都具有测量运动,方向和各种环境条件的内置传感原创 2017-04-30 12:38:56 · 3353 阅读 · 4 评论 -
Android开发艺术探索——第七章:Android动画深入分析
Android开发艺术探索——第七章:Android动画深入分析Android的动画可以分成三种,view动画,帧动画,还有属性动画,其实帧动画也是属于view动画的一种,,只不过他和传统的平移之类的动画不太一样的是表现形式上有点不一样,view动画是通过对场景的不断图像交换而产生的动画效果,而帧动画就是播放一大段图片,很显然,图片多了会OOM,属性动画通过动态的改变对象的属性达到动画效果,也是ap原创 2017-04-22 19:02:15 · 3707 阅读 · 0 评论 -
RX系列五 | Schedulers线程控制
RX系列五 | Schedulers线程控制在我们上一篇文章中的,我们的小例子里有这么一段代码//网络访问.observeOn(Schedulers.io())事实上,我们在使用网络操作的时候,便可以控制其运行在哪个线程中,而Schedulers类,有四个方法,分别是Schedulers.immediate();Schedulers.newthread();Schedulers.io();原创 2017-03-24 11:44:22 · 8312 阅读 · 6 评论 -
Android6.0运行时权限解析,RxPermissions的使用,自己封装一套权限框架
Android6.0运行时权限解析,RxPermissions的使用,自己封装一套权限框架在Android6.0中,新增加了一个运行时的权限,我相信很多人都已经知道了,估计也知道怎么用了,这篇博客很简单,就是告诉大家如何去申请运行时权限和RxPermission这个权限框架的使用,同时根据现有的技术封装思想,去封装一个自己可用的权限框架,好的,我们继续往下看一.Android M 运行时权限介绍关于原创 2017-03-20 16:19:18 · 16794 阅读 · 12 评论 -
一个完整的壁纸应用——[仿爱壁纸],从设计到实现的过程
一个完整的壁纸应用——[仿爱壁纸],从设计到实现的过程正如我的GitHub上的README上说的,偶然之间发现了一个接口,觉得挺有意思的,于是乎,就开始着手的写一个壁纸类应用了,其实之前就一直有这样的想法,但是奈何没有接口,我们先来看下这个项目在初期的时候的预览图这是写了三天的效果,但是这个其实只是一个完整的框架,后台又写了几天,算是把大部分的功能都完善了后来又坚持的修改了一下,最后推送到Gank上原创 2017-01-21 14:05:00 · 8478 阅读 · 17 评论 -
Android进阶 | 摆脱斗图 | 行业交流 | 深度学习 | 付费
Android进阶 | 摆脱斗图 | 行业交流 | 深度学习 | 付费其实在很早的时候我就有想过,是不是退出一些群,因为群太多了,里面的水友也多,基友也多,就难免会水起来,这样既耽误学习又耽误工作,我是深有体验呀,所有才觉得现在这个时代,专心做好一件事就好,把深度学习,作为一个目标,去维护,事实上现在很多小圈子都在这样做,所有我也希望我们能有一片好的环境!No.1首先我们来定义一下这个群,这个群,叫原创 2017-01-17 14:26:42 · 3576 阅读 · 7 评论 -
Android开发艺术探索第五章——理解RemoteViews
Android开发艺术探索第五章——理解RemotrViews这门课的重心在于RemotrViews,RemotrViews可以理解为一种远程的View,其实他和远程的Service是一样的,RemotrViews表示的是一种View的结构,他可以在其他的进程中显示,最常用的就是通知栏和桌面小组件了,我们接下来就细细的品味一下吧!一.RemotrViews的应用RemotrViews在实际的开发中,原创 2017-01-15 23:23:26 · 4168 阅读 · 1 评论 -
巧用第三方快速开发Android App 热门第三方SDK及框架
巧用第三方快速开发Android App 热门第三方SDK及框架历经大半年的时间,终于是把这门课程给录制出来了,也就在今天,正式在慕课网上上线了项目地址:巧用第三方快速开发Android App 热门第三方SDK及框架 这这篇博客也是专门来聊聊这门课程有什么不一样,首先,这门课程是比较针对于快速学习,快速上手的同学的,所以这是面向参加工作或者准备参加工作的同学所迫切需要的,因为只有你掌握了这些,原创 2017-01-12 23:29:28 · 10304 阅读 · 2 评论 -
采用动态广播和观察者模式来分别实现验证码自动填写
采用动态广播和观察者模式来分别实现验证码自动填写用户体验是至关重要的,我之前也实现过,就是通过短信广播的形式去监听,但是近期看了一下观察者模式,觉得实现起来也是极好的,那具体怎么做呢?大家跟我一起看下去这里,我将用两种方式来实现短信自动填写,一种是短信广播,一种是观察者模式我们再开始之前先定义一下规则,就是我们的短信号码和模板,一般的短信推送,你的服务号码是固定的,当然,也有可能你的量级比较大,所以原创 2017-01-07 16:43:38 · 1798 阅读 · 1 评论 -
RX系列四 | RxAndroid | 加载图片 | 提交表单
RX系列四 | RxAndroid | 加载图片 | 提交表单说实话,学RxJava就是为了我们在Android中运用的更加顺手一点,也就是RxAndroid,我们还是先一步步来,学会怎么去用的比较好,之前的三篇算是铺垫,让你有一点认识,那Rx在Android中有什么好处呢?我们先模拟一些原始功能和他对比下一.加载图片很多人说Rx出来之后,是编程思想的一种进阶,实际上我学习了这种思想之后,确实是觉得原创 2017-01-02 21:50:00 · 3817 阅读 · 1 评论 -
RX系列三 | RxJava | create | from | interval | just | range | filter
RX系列三 | RxJava | create | from | interval | just | range | filter我们在第一篇里有说过一些基本的关系,现在我们需要用到一些依赖,这里记得添加,我们本章就来看下他的执行顺序和一些基本的操作符,操作符是我们一定要去摸清楚的,是很重要的知识点,操作符的作用是很大的 compile 'io.reactivex:rxjava:1.1.0'原创 2017-01-02 13:49:28 · 2490 阅读 · 1 评论 -
Rx系列二 | Observer | Observable
Rx系列二 | Observer | Observable上节课我们对RX的一些基本概念和使用JAVA代码实现了一个观察者,但是这只是对思路的一个讲解,在我们JAVA中,其实是已经封装好了观察者对象的,就是Observer和Observable,因为RxJava和RxAndoird都会比较依赖这个,所以我们先把原生的讲解一下,那我们再模拟一次观察和被观察,我先写一个Observableimport原创 2016-12-31 11:40:41 · 4505 阅读 · 2 评论