自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

刘桂林的博客

心有菩提手有刀,欲成舍利却成妖

原创 巧用第三方快速开发Android App 热门第三方SDK及框架

巧用第三方快速开发Android App 热门第三方SDK及框架历经大半年的时间,终于是把这门课程给录制出来了,也就在今天,正式在慕课网上上线了项目地址:巧用第三方快速开发Android App 热门第三方SDK及框架 这这篇博客也是专门来聊聊这门课程有什么不一样,首先,这门课程是比较针对于快...

2017-01-12 23:29:28 8566 2

原创 博客导航——一站式搜索(所有博客的汇总帖)

博客导航——一站式搜索 以后博客肯定会越来越多的,所以这做一个整理,方便各位朋友能快速的锁定自己想要的资源 Android Studio Google主推-Android开发利器——Android Studio,这可能是最全的AS教程! Volley Goole官方网络框架-Voll...

2016-01-08 20:38:07 11708 6

原创 Kotlin 超车指南

前段时间在我的知识星球里统计了一下使用kotlin开发的人,感觉还不错,有十多个人在工作中已经正式使用了,我的知识星球《Hi Android》欢迎你的加入,我也应星友的需求写了一部分的kotlin基础知识,我也还在学习的过程中,为了帮助更多的星友认识到Kotlin for Android,所以花了...

2019-12-24 14:52:25 281 0

原创 Kotlin学习(十)—— Kotlin 计算器

我们也学习了这么久的Kotlin了,我们来用Kotlin写一个计算器的小案例吧,这也是比较简单的示例了。我们先来看下效果: 先看下这个UI,上面是一个EditText 下面是一个RecyclerView,先来写个适配器吧,我们来一步步分析: 可以看到,我们已经不用写构造方法了,而是直接在cla...

2019-12-24 14:49:51 106 0

原创 Kotlin学习(九)—— Android Studio 创建第一个Kotlin App

Kotlin还有很多的知识点我们是没有提起的,比如高阶函数,DSL,闭包等,不过纯Kotlin太枯燥了,所以我们直奔主题吧,在主题中找到一些问题并且讲解,我们首先创建第一个Kotlin App,只需要在创建的时候将语言改成Kotlin即可 创建好项目之后你会发现,其实大体和Java工程是类似的,...

2019-11-29 12:08:31 311 0

原创 Kotlin学习(八)—— 协程Coroutine基础

其实在Kotlin中,还有很多的概念没有去讲解,在后续的文章再去补充,我们先来一篇协程的基础介绍吧,协程是kotlin for android 中的一个重要概念,我们在加载一段数据的时候,最开始的使用方式是加载数据-等待数据-使用数据,这里是阻塞线程的一个操作,那么势必会出现卡顿等表现,后来我们有...

2019-11-29 12:05:55 102 0

原创 Kotlin学习(七)—— 数据类空构造的实现NoArg

我们之前有讲数据类,也就是data,他的角色充当我们的JavaBean,比如我们的列表就经常会使用到,但是data修饰的class,有一个问题就是,无法实现一个空的构造参数,我们看下他的提示: 可以看到,如果我们不传递参数,则会提示我们必须要传递一个参数,也就是这样的实现 但是我们有时候有一些...

2019-11-29 12:01:23 135 0

原创 Kotlin学习(六)—— 基础巩固,类与继承,Lambda,表达式,计算器

一.类与继承 我们沿用Java的经典案例,人,男人,女人,首先,我们如果要创建一个类,他为男人,他具有姓名,年龄,身高的属性,我们要创建女人,他也有这些属性,但是他们都是人,我们可以抽取出这三个字属性,来看下代码: 通过这段代码就可以实现我们的抽取例子了。 二.可空参数 在Java中,我们会经常...

2019-11-19 22:34:41 74 0

原创 Kotlin学习(五)—— 数据类,泛型,嵌套类与内部类,对象表达式和对象声明

一.数据类 数据类和JAVA中的javabean类似,只作用于保存一些数据,所以如果创建,会默认生成一些函数,并且会被标记为data: equals() / hashCode() toString() componentN() copy() 我们来看下标准的写法 data class User...

2019-11-12 23:29:31 154 0

原创 Android 组件化架构概要

组件化相信大家都很清楚他是什么,Android的一种开发架构,并且备受团队推崇,确实组件化在我看来对团队协作方面是帮助巨大的,随着应用开发的业务不断累积,我觉得我们更加应该关注架构的搭建,而不是一味的实现代码,这种重复工作以及无效时间就太多了,最近也阅读了很多关于架构的书籍,收获良多,所以今天的文...

2019-11-05 17:54:47 389 0

原创 Android Vitamio 兼容 7.0 8.0 或者更高

说实话,这玩意还是很坑爹的,老项目使用了Vitamio这个视频框架,现在想改也没有什么精力了,然后去寻找一些解决办法,然而解决的办法并不多,而且方法都比较老,比较出现次数多的就是下面这两个错误了: 1.Expecting an absolute path of the library: libst...

2019-08-29 21:25:46 1041 3

原创 Android 监听来去电状态的实现

本文授权发布公众号【刘桂林】,星球【Hi Android】 在Android中我们想要实现监听电话状态一般都会通过TelephonyManager来监听,他提供了一个PhoneStateListener的回调方式,当然,他也是提供了广播的通知方式,如果你想要实现此功能,那么这篇文章你可以看看,我...

2019-05-27 12:49:18 497 0

原创 Android Zip 解压 与 进度 实现

本文授权发布公众号【刘桂林】,星球【Hi Android】 关于Zip解压,其实在我们java中的java.util.zip包下有原生支持的读写,我们本篇文章将实现此功能,当然,我手写的代码大部分还是传授其原理和思路,需要大家自己去发散思维。 首先我们明确一下需求: /sdcard/hello....

2019-05-27 12:47:25 1252 2

原创 Android PDF 的 读取 与 生成

本文授权发布公众号【刘桂林】,星球【Hi Android】 Android 上 PDF 的读取 与 生成 , 一个小功能点,操作的也是File对象,这里涉及到IO操作,所以读写权限自行处理,我们先来看下读取PDF的几种方式: 读取 读取的话,搜了一圈的资料,大概是如下几种 1.PdfRender...

2019-05-27 12:45:12 706 0

原创 Android 如何生成专属分享卡

本文授权发布公众号【刘桂林】,星球【Hi Android】 时下在使用手机App的过程中,我们发现专属分享卡已经很流行了,比如网易云的歌词分享,知识星球的邀请卡片,我们来看下我的星球的这张邀请卡: 可以看到里面的内容一目了然,那么我们今天就来分享一下如何生成这样的卡片,也让你的应用更加时尚; ...

2019-05-27 12:42:09 315 0

原创 封装MediaPlayer实现网易云音乐播放器

本文授权发布公众号【刘桂林】,星球【Hi Android】 此文后续将出配套视频,星球成员免费观看 本文将来实现一个音乐播放器,播放File和播放Url实际上是一致的,我会封装好所需文件便于你直接阅读代码和使用 首先是流程与步骤: 1.启动服务扫描所有的mp3文件形成播放列表 2.封装Media...

2019-05-27 12:39:43 253 0

原创 掌握RxJava的葵花宝典

本文授权发布公众号【刘桂林】,星球【Hi Android】 各位少侠,老夫在黑木崖恭候大驾,欲练此功,必先哈哈。 今天我们分享的是RxJava的知识点,让你快速掌握,所以我们会从0开始讲带RxJava的Api使用和设计理念等,本文较长,所以需要耐心看下去。 目录 一.RxJava相关资料 二....

2019-05-27 12:34:52 254 0

原创 Android 商城类应用实战之购物车附源码

本文授权发布公众号【刘桂林】,星球【Hi Android】 本文为实战类项目,所以陈述的逻辑为实现流程 + 核心代码,主要实现的还是购物车的动画与结算,首先我们来看下整体的效果图: 购物车一般都是后台存储的,这里因为是模拟数据,所以就不用存储了,直接将数据储存在内存中即可,也算是偷个懒儿~ 好...

2019-05-27 12:15:04 1727 0

原创 Android 基于AccessibilityService智能安装Apk 仿 豌豆荚

本文授权发布公众号【刘桂林】,星球【Hi Android】 今天我简单的来给大家分享一下基于AccessibilityService功能实现智能安装的功能,事实上这个功能在豌豆荚或者其他应用商店应该也是可以看到的,我们来看下截图: 我们可以看到在豌豆荚的设置里有一个【自动安装应用】的功能,当...

2019-05-27 11:45:42 204 0

原创 Android 异步处理之IntentService源码分析

本文授权发布公众号【刘桂林】,星球【Hi Android】 今天介绍一下IntentService,他和Service其实差不多,只是内部实现了一个HandlerThread,这点我们看源码其实就可以知道,IntentService的特性如下: 启动的方式和正常的Service一致 执行完任务...

2019-05-27 10:26:44 79 0

原创 Android线程优化之线程池的详解

本文授权发布公众号【刘桂林】,星球【Hi Android】 ThreadPoolExecutor还是有很多可讲的,但是我选择的还是着重讲解Android中的四个线程池,网上对ThreadPoolExecutor的例子太多了,也比较杂,大家可以去看看。 Android中的线程池的概念来源于Java...

2019-05-27 10:24:21 170 0

原创 Android 性能优化之内存泄漏,使用MAT&LeakCanary解决问题

本文授权发布公众号【刘桂林】,星球【Hi Android】 App进行到最终的测试的时候,往往会出现一些性能上,以及内存上的问题,需要优化,这也是一个Android高级工程师所需要了解并且掌握的知识点,内存这个小妮子比较调皮,每个月总有那么几次泄漏或者溢出(OOM),这篇文章所讲的是内存溢出,这...

2019-05-27 10:18:46 259 1

原创 Android 本地广播 LocalBroadcastManager

LocalBroadcastManager 相信有不少人会有点认生,他是android.support.v4中的一个类,本地广播,只在App内部传播,大家熟知的广播,BrocastReceiver是全局广播,可以跨进程通信,而LocalBroadcastManager,只是作为一个本地消息和数据传...

2019-03-04 20:45:59 856 3

原创 Vitamio Andrid高版本兼容

使用Vitamio的时候发现在Android的高版本会提示加载不到so 2019-02-27 15:52:27.050 14535-14535/? E/zygote: No implementation found for boolean io.vov.vitamio.MediaPlayer.lo...

2019-02-27 15:57:12 746 0

原创 Hello Http

Http很多人会用,但是他具体的一些细节,其实很多人是不知道的,所以你看完本篇文章之后,你就明白他的大部分概念了,本文会从概念,Http通信,TCP三次握手,Okhttp等知识一步步引导大家去熟悉这个知识点。 一.什么是Http Http协议是超文本传输协议,定义了浏览器怎么向万维网服务器请求...

2019-02-27 15:07:05 1098 0

原创 Vitamio使用篇,打造强悍的视频播放器

Vitamio是一个优秀的Android视频框架,很多人也在用,所以这篇文章就是带大家接入Vitamio并且使用的 首先我们要明白一个需求就是,我们需要做一个视频播放器,那这样的话,我们首先想到的就是VideView,但是VideoView说实话,不支持很多视频格式,所以我们换成Vitamio,可...

2019-02-23 13:30:28 1087 0

原创 Android物联网(二)—— WIFI通讯

你已经不是小宝宝了,要学会自己找资料了,本文就不过多介绍一些基础细节了,我来说下这个应用的结构 首先这个应用包含了Client和Service,也就是客户端和服务端,因为我懒,不想写两个App,所以做了一些标识的区分,我准备了两台手机进行测试,一台是三星,一台是小米,小米开启Ap热点,好的,那么...

2019-02-19 11:51:47 1046 1

原创 Android物联网(一)—— 蓝牙通讯

蓝牙的基础知识我就不讲了,有兴趣可以看下我之前写的博客,现在我们要做的就是实现两个蓝牙之间的通讯,并且实现聊天功能,这里大家准备两个手机即可。 我们先按照流程走一遍,首先是验证一下设备是否支持蓝牙,一般都是支持的 if (!BtManager.getInstance().isSupport()...

2019-02-12 17:43:15 1893 2

原创 2018年年终总结:沉淀

2018个人觉得还是属于技术沉淀的一年,和大多数人一样,没有了那股子冲劲,思想却异常凌乱,就犹如少壮不努力,老大徒伤悲,年初不努力,年终徒伤悲一样,小日子朴实无华,没有惊喜也没有意外,这一年粗略的学习了很多语言的基础,比如C++,QT,GO等,其中C++和QT还应用到了实战中去,但是这并不能给我带...

2019-02-12 10:21:15 575 7

原创 GO 学习笔记——第五天 / 异常,文本文件处理

1.error接口,panic,recover error:输出错误信息 package main import "fmt" import "errors" func main() { err1 := fmt.Errorf("ERROR...

2018-12-07 20:35:54 255 0

原创 GO 学习笔记——第四天 / 面向对象

1.匿名组合 package main import "fmt" //自定义类型 type XX string type Person struct { name string sex bool age int } ...

2018-12-06 14:23:47 164 0

原创 GO 学习笔记——第三天 / 复合类型

指针:pointer 数组:array 切片:slice 字典:map 结构体:struct 1.指针 基本概念 package main import "fmt" func main() { var a int = 10 fmt.Println("...

2018-11-30 13:57:54 138 0

原创 GO语言项目(一)——猜字游戏

用GO语言来写一个逻辑稍微复杂一些的猜字游戏,我们可以先来看下代码 package main import "fmt" import "math/rand" import "time&qu...

2018-11-27 16:53:21 679 0

原创 GO 学习笔记——第二天 / 函数,工程管理

1.自定义函数 package main import "fmt" //伪代码 func main() { TestFun(1, 2, 3, 4, 5, 6) } //无参无返回值 func TestFun() { fmt.Pr...

2018-11-22 16:03:15 137 0

原创 GO 学习笔记——第一天 / 类型,流程控制

1.常量和变量 变量 概念:变量就是程序运行期间可以改变的量 声明: var a int 注意:局部变量声明后一定要使用,不然报declared and not used 赋值: a = 10 初始化: var a int = 10 自动推导类型: a := 10 区别: ...

2018-11-20 20:25:24 130 0

原创 GO 学习笔记——基础概括

语言简介 GO语言全称Golang,发布时间:2009/11/10 GO语言的优势: 可直接编译成机器码,不依赖其他库,glibc的版本有一定要求,部署就是扔一个文件上去就完成了。 静态类型语言,但是有动态语言的感觉,静态类型的语言就是可以在编译的时候检查出来隐藏的大多数问题,动态语言...

2018-11-20 20:18:33 192 0

原创 Android开发艺术探索完结篇——天道酬勤

这片文章发布,代表着我已经把本书和看完并且笔记也发布完成了,回忆了一下我看Android群英传,只用了两个月,但是看本书却花了2016年05月04日 - 2018年07月16日,整整两年多,真是惭愧 笔记链接 Android开发艺术探索——新的征程,程序人生路漫漫! Android开发艺术探...

2018-07-16 17:03:20 13555 7

原创 Android开发艺术探索——第十五章:Android性能优化

这一章所介绍的是Android的性能优化方法和程序设计的一些思想,通过本章的内容,读者可以快速的掌握性能优化的方法 性能优化的一个很重要的问题就是内存泄漏,内存泄漏并不会导致程序功能异常,但是会导致你的应用内存暂用过大,而且比较难发现,所以一般会借助一些功能,所以我们会讲MAT的使用 在做程序...

2018-07-16 16:44:33 1770 1

原创 Android开发艺术探索——第十四章:JNI和NDK编程

JNI的意思是Java Native Interface(java本地接口),它是为了方便java调用C,C++等本地代码所封装的一层接口,我们都知道,JAVA的优点是跨平台,但是作为有蒂娜的同时,其在本地交互的时候出现了短板,java的跨平台性导致了本地交互的能力不够强大,一些和操作系统相关的特...

2018-07-13 15:01:45 953 0

原创 Android开发艺术探索——第十三章:综合技术

这章主要是说如何收集Crash,如何解决65536问题,动态加载的方案以及反编译 一.使用CrashHandler来获取应用的crash Android不可避免的会发生crash,也称之为崩溃,无论你的程序写得有多么完美,总是无法完全避免崩溃的存在。有可能java层也有可能底层,所以我们需要收...

2018-07-11 13:46:12 629 0

提示
确定要删除当前文章?
取消 删除