自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Zhujiang

温故知新,可以为师

原创 重学Kotlin之泛型的逆变和协变
原力计划

前言 距离写上篇文章到现在已经一个多月了,时间确实隔得有点久。这一个多月发生了好多事情,从天津辞职到了北京,然后在新公司干了也快一个月了。。。 扯远了扯远了。。。上一篇文章重学Kotlin之那些你没注意到的细节中在写泛型那一块的时候只写了泛型的实化,本来想直接把泛型的逆变和协变写了的,但由于篇幅原...

2020-08-02 11:51:09 86 3

原创 重学Kotlin之那些你没注意到的细节
原力计划

前言 大家好,好久不见。从Kotlin发布到现在已经有快十个年头了,从2016年发布正式版发展到现在已经有越来越多的开发者开始使用Kotlin开发项目,特别是安卓开发者,因为谷歌在2017年的 I/O 大会上正式宣布Kotlin正式成为安卓的一级开发语言,在2019年的 I/O大会上又宣布Kotl...

2020-06-22 08:53:36 213 0

原创 构建安卓项目通用TitleBar
原力计划

前言 每个项目的每个页面基本都会写头布局,但如果每个布局都写一遍头布局的话未免太过于麻烦,所以想着直接写一个吧。 第一种 include 一般这种情况首先想到的肯定是写好布局,然后直接用到的地方include即可。那就来吧!首先看下效果吧: 一般布局的头部可以分为三个模块,左中右,中间一般都是标...

2020-06-18 14:18:55 77 0

原创 线程池之刨根问底
原力计划

线程池之刨根问底 前言 说起刨根问底,首先想到的竟然是------小沈阳。。。。。 其实有关线程池的文章一搜都有一大堆,但。。。感觉都不全(手动狗头) 什么是线程? 先不说线程池的概念了,先说下什么是线程。线程究竟是什么?百度这个问题的一般会得到如下答案: 线程是指进程中的一个执行流程,一个进程...

2020-05-31 21:07:43 82 0

原创 MVVM?瞎搞一波?
原力计划

MVVM?瞎搞一波? 前言 准备写这篇文章的时候就已经后悔了,因为MVVM太火了,遍地都是教程,遍地都是完整MVVM项目源码。 之前一直使用的MVP,加上封装的LCE,感觉使用的还挺好,挺不舍得换框架的,但是这么火,不能不跟着时代走啊,再不学就要被淘汰了。 其实到现在我都没真正搞懂MVVM到底是个...

2020-05-20 17:04:28 118 0

原创 再谈事件分发

再谈事件分发 前言 “大哥大哥,快来,领导叫你过去面试!!” “来了来了!” 看了看简历,面试的是中级安卓开发。 “你来说一下安卓事件分发机制吧!” … “大哥,老实说,事件分发我也不咋会,还幸亏你面试我的时候高抬贵手,没问我,要问我的话我就进不来咱们公司了!” “抬啥手,你面试的时候面试的是实习...

2020-05-08 08:56:28 202 0

原创 安卓11?快!扶我起来继续学
原力计划

前言 安卓更新换代非常快,5.0之前版本更新的时间线有点看不懂,但5.0之后更新还是比较稳定的,大概一年更新一次,谷歌工程师对安卓每个版本的命名也有点意思,比如棒棒糖、棉花糖、奥利奥、馅饼啊啥的(命名的应该也是个吃货),还有,从1.5开始,之后的版本都按照英文字母顺序排列,从C开始,到现在的11排...

2020-04-20 11:32:28 606 0

原创 暗黑模式?安卓适配一波
原力计划

前言 第一次听到暗黑模式的时候,感觉好酷啊,听着就好看(也不知道我怎么听出来的)。苹果在前几年就有暗黑模式的风声,好像是在IOS11、IOS12的时候就说要推出了,结果愣生生等到了IOS13暗黑模式才推出。IOS13推出到现在已经大半年了,系统应用没得说,完美适配,三方应用也都陆续支持了暗黑模式,...

2020-04-14 15:05:54 760 0

原创 带你手撸一个Kotlin版的EventBus
原力计划

前言 EventBus在前两年用的人还是非常多的,它是由greenrobot 组织贡献的,该组织还贡献了GreenDao(目前不建议使用,建议使用官方的Room数据库框架)。EventBus的功能很简单,通过解耦发布者和订阅者简化Android事件传递,简单来说就是可以替代安卓传统的Intent、...

2020-04-07 14:14:38 1478 0

原创 历时三天,完成了Flutter版本的玩安卓
原力计划

前言 项目地址 接触Flutter其实已经很久了,从18年下半年就开始关注FLutter了,当时使用Flutter的人还非常少,我也只是大概看了看,写了个小Demo就没再深入了,短短不到两年时间,各大博客社区移动端的文章有一大部分都是关于FLutter的,可以看到,Flutter真的火起来了。 正...

2020-04-02 11:42:32 4247 20

原创 安卓实现调用三方地图导航
原力计划

前言 公司项目使用的是高德地图,之前一直用的高德地图中的导航,但是发现使用效果很差,在差一点的机型上基本无法使用,于是决定调用第三方地图来实现。在正文开始之前先来一个实现样式图吧。 需要源码的童鞋可以直接点击下载源码 正文 一般来说,项目中用到的就如上图所示的这种效果,获取到当前位置的...

2020-03-27 13:57:09 368 0

原创 那些你不知道的Dart细节之带你透彻理解异步
原力计划

前言 上周一口气写了五篇Dart基础文章,建议看这篇文章之前先看一下前几篇文章: 那些你不知道的Dart细节之变量 那些你不知道的Dart细节之内置类型 那些你不知道的Dart细节之函数(方法) 那些你不知道的Dart细节之操作符、流程控制语句、异常 那些你不知道的Dart细节之类的点点滴滴 那些...

2020-03-15 12:08:34 411 1

原创 那些你不知道的Dart细节之泛型和库(六)
原力计划

前言 前几篇文章分别讲解了Dart中的变量、内置类型、函数(方法)、异常、类,对Dart的基本语法已经有了很多的了解,那么今天来说一下Dart中的泛型和库。前几篇文章没有看的,建议先看一下前几篇文章。 泛型 Java中的泛型信息是编译时的,泛型信息在运行时是不存在的 Dart的泛型类型是固化的,...

2020-03-08 18:33:22 424 0

原创 那些你不知道的Dart细节之类的点点滴滴(五)

前言 前几篇文章分别讲解了Dart中的变量、内置类型、函数(方法)、操作符、流程控制语句和异常,对Dart的基本语法已经有了很多的了解,那么今天来说一下Dart中的类。前几篇文章没有看的,建议先看一下前几篇文章。 构造函数 前几篇文章中在讲函数(方法)的一篇中提到过,这里再说一下吧,首先来看一下J...

2020-03-08 18:32:27 389 0

原创 那些你不知道的Dart细节之操作符、流程控制语句、异常(四)
原力计划

前言 前几篇文章分别讲解了Dart中的变量、内置类型和函数(方法),对Dart的基本语法已经有了较多的了解,那么今天来说一下Dart中的操作符、流程控制语句和异常。前几篇文章没有看的,建议先看一下前两篇文章。 操作符 上面这幅图中就是Dart中的操作符,标为黑色的操作符和Java中使用基本一样,...

2020-03-08 18:31:16 364 0

原创 那些你不知道的Dart细节之函数(方法)(三)

前言 前两篇文章分别讲解了Dart中的变量和内置类型,对Dart的基本语法已经有了了解,那么今天来说一下Dart中的函数,也就是方法。前两篇文章没有看的,建议先看一下前两篇文章。 定义 可在函数内定义 void main(){ void test(){ } } 和Java不同,Dar...

2020-03-08 18:29:11 467 0

原创 那些你不知道的Dart细节之内置类型(二)
原力计划

前言 上一篇文章说了Dart中的变量的一些细节问题,大家可以去看一下。在本篇文章中会详细说明Dart中内置类型的你不知道的细节问题。 概述 在Dart中,内置类型有以下几种:Numbers 数值、Strings 字符串、Booleans 布尔值、Lists 列表(数组)、Sets 集合、Maps ...

2020-03-08 18:27:24 347 0

原创 那些你不知道的Dart细节之变量(一)
原力计划

前言 好久没写Flutter了,之前接触Flutter还是为了玩一玩,看着这样一个新的、好评如潮的跨平台技术,觉得是该玩一玩了,之前的RN就没玩就要凉了,毕竟RN不是Google的亲儿子,但是Flutter是啊,而且Dart也是啊。 未来的几篇文章准备写一个Flutter的专题,最起码要把之前忽略...

2020-03-08 18:25:24 410 0

原创 安卓实现视频直播(rtmp)以及直播推流(NDK实现)

前言 想写关于NDK的文章很久了,但一直不知道该写点啥,该怎么写?正好公司有一个直播和播放的需求,那好吧,就造一个视频播放和视频直播的轮子吧。那说干就干!声明一下,本篇文章不会写怎样配置NDK等问题,只是大概介绍一下思路,具体代码已经放在Github上,大家可以下载代码自己进行定制或者直接引入进行...

2020-03-03 21:46:55 983 4

原创 玩安卓必须要掌握的性能优化之内存优化
原力计划

前言 这是我写的性能优化的第三篇文章,下面是另外两篇文章: 玩安卓必须要掌握的性能优化之内存泄漏 玩安卓必须要掌握的性能优化之APK极限压缩 正文 本篇文章准备详细说一下编码中需要注意的地方,养成良好的编码习惯。 第一点 数据类型 尽量不要使用比需求更占空间的基本数据类型,比如能用 ...

2020-02-24 22:38:27 468 0

原创 玩安卓必须要掌握的性能优化之APK极限压缩
原力计划

前言 Apk的压缩很有必要,比如你的应用比你的竞争对手的要大很多,但是功能上都差不多,客户会怎么选择呢?就拿微信来说,如果微信不进行压缩的话,那么它的apk绝对比现在要大好几倍。微信不能不用,即使它变得特别大,咱们还是不得不用,但是咱们开发的软件,客户却有很多选择,所以,尽量使自己的app竞争力...

2020-02-21 22:15:08 418 0

原创 玩安卓必须要掌握的性能优化之内存泄漏

说起性能优化,大多数脑海里便会出现启动优化、UI绘制优化、内存优化等等。之前我也一直在做这些优化,一直没有勇气看内存泄漏的问题,觉得太难,但是,再难也要看啊,跑不了,那么就来吧(做完发现其实也不难)。 内存泄漏的分析很简单,Android Studio中就自带了工具profile: 直接点...

2020-02-19 19:03:03 1883 1

原创 9012年都过去了,你确定还不学安卓的热修复?(手写AndFix)

背景介绍 热修复,乍一听,感觉好牛逼的样子,实际上并没有多么神秘,为什么这样说呢?且听我娓娓道来。。。 你发布了一款安卓应用,早上刚发版,结果发完之后发现有个bug没有修复,会直接导致整个应用崩溃,这时候你该怎么办呢?难道再马上重新打包发版吗?显然是不现实的,那么这时候热修复就来了,帮你打上一...

2020-01-05 00:03:28 719 2

原创 Kotlin设计模式实现之装饰者模式(Decorator)

前言 今天是2020年的第一天,在这里祝大家元旦快乐!之前用kotlin实现了策略模式,文中写到要多写几篇文章来加深以下对设计模式的理解。那么今天要写的看题目应该就知道了:装饰者模式(也叫装饰模式)。下面是装饰者模式的定义: 装饰者模式(Decorator):在不改变对象自身的基础上,...

2020-01-01 20:54:35 459 1

原创 个人服务器的选择(阿里云、腾讯云、百度云、华为云)

手把手部署Java项目到Linux服务器 之前领过腾讯云免费的15天体验服务器,在里面进行了一些小项目的部署,基本学会了部署流程,这两天准备购买一个自己用的小服务器,个人使用,最主要的就是要便宜,于是乎开始了货比三家: 阿里云 首先是最有名的阿里云:(阿里云服务器购买官网:https:/...

2019-12-27 10:33:38 12956 25

原创 手把手带你部署Java项目到Linux服务器

前言 想买服务器很久了。之前领过腾讯云免费的15天体验服务器,在里面进行了一些小项目的部署,基本学会了部署流程,这两天准备购买一个自己用的小服务器,个人使用,最主要的就是要便宜,于是乎开始了货比三家,思来想去(还**不是因为穷),最后选择了60块钱一年的某云,嗯,真香。买了一个服务器,不能不用啊...

2019-12-27 09:57:38 2201 7

原创 安卓开发2019年终总结(写的很水,千万别打开)

转眼2019已经过去了,即将迎来2020。曾几何时,2020感觉是一个遥不可及的时间,小时候总是想,等到2020年我要怎样怎样,可2020真的已经来了。 2019年发生了很多事情,学习上的进步、工作中的历练,2019,得到了一些,但是失去了很多很多。 这段时间没有更新博客,主要是因...

2019-12-26 15:33:08 2862 7

原创 Kotlin设计模式实现之策略模式

前言 周末抽空看了看《Head First设计模式》,准备专门写一个设计模式的专栏,每一种设计模式写一篇文章来巩固一下,当然,如果能帮到别人,是很开心的事了。 看到题目就知道第一篇写的是策略模式了,下面来详细看看: 正文 首先来说一下需求吧:需要来模拟鸭子,有各种的鸭子,可以游泳,可以叫,...

2019-12-16 10:50:54 578 0

原创 你知道安卓的3D Touch吗?(Shortcut详解,你想知道的我都有)

前因后果 苹果在iPhone 6s和iPhone 6s Plus开始新增了3D Touch,这个功能褒贬不一,但我觉得还是特别好用的,特别是在微信上付款、加好友、扫二维码,或是在支付宝上付款等等场景。好用的真的是不要不要的,下面是苹果3D Touch的截图: 这么好用的功能安卓能不模仿吗?...

2019-11-29 13:31:01 4573 8

原创 一文带你玩转安卓Kotlin+Retrofit+RxJava+MVP架构(附Demo)

为什么写 主要是周末闲的。之前公司的代码谈不上架构一说,因为基本都是直接在activity中进行操作,不管是网络请求还是数据库的操作,有时候一个activity甚至能写到好几千行,维护起来真的是。。。那酸爽。 前言 安卓目前的架构无非那几种:MVC 、MVP、MVVM。M和V一直存在,只是后...

2019-11-24 17:30:02 1608 1

原创 安卓使用滤镜的点点滴滴

前言 安卓开发中,对图像的处理一般就是Bitmap(位图),它包含了图像的全部数据,即点阵和颜色值,点阵就是包含像素点的矩阵,而颜色值就是ARGB,分别代表透明、红色、绿色、蓝色通道,它们共同决定了像素点的颜色。 今天要说的滤镜是针对图片的颜色进行修改。一张图片所存储的信息有图像信息加上数据和...

2019-11-19 11:30:04 307 0

原创 安卓Jetpack组件Room数据库框架的使用(附Demo)

简单介绍 最开始学习安卓的时候,会继承自SQLiteOpenHelper来编写自己的数据库;之后一些优秀的三方开源数据库框架出现了,我用过的有郭神的LitePal、greenrobot的greenDao(EventBus也是他编写的);为了帮助支持各位开发者,google推出了自己的数据库框架R...

2019-11-14 13:18:53 479 6

原创 我与CSDN两年的恩怨情仇

不知不觉从学习代码开始到现在已经四年多了。15年的9月,来到一个陌生的城市,进入了陌生的学校,开始了新的生活。大一的懵懂,大二的青涩,大三的紧张,到现在的彷徨、没有方向。。。。 之前代码出问题的时候都会百度进行解决,给出答案最多并且最准确的当属CSDN,之前一直不敢注册,觉得写文章的都是大牛,像...

2019-10-24 19:20:06 534 1

原创 安卓使用osmdroid显示谷歌地图、高德地图及离线地图详解

最近公司有这个需求,需要能切换不同的地图,并且数据需要互通,如果引入每一个地图的SDK(例如百度地图SDK、高德地图SDK、谷歌地图等)的话apk包就太大了,而且操作数据及操作地图就会变得特别麻烦,所以找到了完全免费及开源的osmdroid。下面先看一下显示效果: 首先附上osmdroid的...

2019-10-24 08:34:10 612 1

原创 Java中格林尼治时间和时间戳的相互转换

首先,将格林尼治时间转换为时间戳: /** * 格林尼治时间转换为时间戳 */ public static long iso8601FormateTimeToLong(String time){ String formateTime = iso8601ToCustomerDate(ti...

2019-10-15 15:37:08 647 0

原创 Android Q(安卓10)获取唯一ID(最优解)

安卓Q中google彻底禁止了第三发应用获取imei,并且mac地址返回的地址也变成了02:00:00:00:00:00。 这是官方给出的解决方案: https://developer.android.com/training/articles/user-data-ids 这是官网的截图: ...

2019-10-11 14:25:11 4653 8

原创 安卓构建项目通用头部(功能完善)

国庆的最后一天假期,写篇博客纪念一下吧。 实际项目中会有很多页面,而头布局大同小异,如果每个页面都写一遍的话代码太过冗余,所以建议将头布局抽取出来,做一个通用的自定义布局。 首先看一下写完的样式吧: 第一步,先建立一个自定义布局,继承自RelativeLayout(布局文件跟布局是啥就继...

2019-10-07 16:40:17 421 4

原创 安卓广播实现强制下线

之前工作主要集中在Activity和fragment中,广播、内容提供者、服务接触很少,竟然有点想不起来怎么写了,故又看了一遍,先记录一篇广播的吧。 类似于微信、QQ等大型app,毫无疑问都有强制下线(即在别处登录时当前登录马上接收到下线通知),一般来说,实现过程是在A手机登录时,记录设备唯一标...

2019-09-28 09:27:14 351 0

原创 Flutter路由跳转详解

flutter中跳转一直记了忘,忘了记,在这里记录下吧: 和安卓中的intent类似,跳转新页面需要当前上下文以及需要跳转的页面。如果有数据需要传输也可,参数通过跳转页面的构造方法传递。 1、不带参数直接跳转 ///不带参数的路由表跳转 Navigator.pushNamed(contex...

2019-09-20 15:28:42 481 0

原创 Android Studio中添加Flutter模板直接调用

as中可以直接写flutter,但是无法像写原生安卓一样直接创建类似activity的页面模板。我们可以自己创建模板。 首先,打开file中的setting: 然后点击Editor中的Live Templates: 再点击右上角的加号: 可以看到有两个选项,第一个就是创建一个单...

2019-08-20 14:52:03 749 0

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