自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

成长的烧年

stop stopping!!!

  • 博客(148)
  • 资源 (22)

原创 解决 Google Play 支付问题:In-app billing API version 3 is not supported on this device

项目场景:因为想出海看看外面的世界,第一次上线Google Play产品,需要添加Google Play赚美刀,使用的是Google Play Billing框架V3版本,所使用的的机器是 Google Pixel 3XL, 系统是当前最新的 Android R(当前时间2020/09/08), 依照Google中文开发文档 https://mp.weixin.qq.com/s/QQg4ttdnn6XLrOBZIDsEQA ,发现在开发的过程中,存在In-app billing API version 3

2020-09-08 23:12:43 308

原创 Jetpack系列之 Paging 详解

  在此之前,我一直对Jetpack的Paging感觉到很迷茫,单单一个分页为啥 Android 官方会出一个组件? 在我们眼中,分页不就是添加两个参数pageSize和pageIndex 么?这么简单逻辑Android官方能耍得起什么样的波浪么?带着这个问题,阅读了一些文档,加上自己的理解,然后有了这篇文章。基本原理Paging目前来说,是需要和RecyclerView配合使用的,毕竟Android 目前展示列表数据,差不多就是RecyclerView了。首先简单介绍一下Pagin

2020-08-02 15:42:17 154

原创 理解Room数据库的迁移(Migration)

文章目录数据库迁移的引擎SQLite API 都干了些啥Room 都干了些啥迁移 SQLite API 代码 到 Room情景一:保持数据库版本不变 --- app崩溃第一步:尝试打开数据库情景二:版本更新了,但是没有提供迁移策略 --- app崩溃第一步:更新数据库版本从1(已经安装到设备上了)到2情景三:版本更新了,回退到破坏性迁移 --- 数据库数据被清空了第一步:尝试从版本1更新到版本2第二步:尝试重新打开数据库情景四:版本更新了,也提供了迁移策略 --- 数据健在第一步:尝试更新版本1到版本2第二

2020-05-24 16:43:14 524

原创 koltin协程图片加载库Coil介绍

文章目录简单介绍使用1.简单使用2.基本变换3. Gif加载4. SVG加载5. 从Glide\Picasso迁移到Coil6. 个人的使用看法简单介绍github地址为:https://github.com/coil-kt/coil/  这应该是一个很新的一个图片加载库,完全使用kotlin编写,使用了kotlin的协程,图片网络请求方式默认为Okhttp,相比较于我们...

2020-03-14 20:25:26 2367 1

原创 2020年最值得期待的30个android库(截止2020年3月8日)

原文地址1.Coilgithub地址:https://github.com/coil-kt/coilkotlin编写使用协程编写的Android图片加载库。相比于Glide,Picasso,Fresco 它更快速、轻量、易上手、现代的Android加载库支持GiF和SVG,同时支持四种默认的图像变换: 模糊效果、圆形、灰阶、圆角等等基础代码为:imageView.load(“htt...

2020-03-08 18:31:09 2788

原创 解决七牛云获取gif缩列图背景为黑色问题

最近项目中使用七牛云存储gif图片,如下图:使用图片预览时,使用七牛图片格式转换,将gif转成jpg格式:发现背景为黑色,如果要使得背景变为白色:大致思路如下:将gif转成jpg格式:url -> http://www.demo.gifjpg_url -> http://www.demo.gif?imageView2/2/w/200/format/jpg将装...

2019-12-07 20:04:49 246

原创 Android基于云信实现微信斗图

总体概览最近项目出现了一个新的需求,需要实现类似微信的表情的斗图功能。由于我们是一家基于互联网+装修的公司,为了给业主创造一个好的印象和营造开工、完工的美好气象,这个需求我们还是默默的接了下来,虽然我们知道坑那是多得一比。下面我们就简单说明一下我们的方案。已经实现的功能大概是这样的:大致实现的功能如下:服务器动态配置斗图的类型和风格。因为每家公司的主题和风格样式都是不一样的,这里需要后...

2019-11-30 23:09:33 158 1

原创 C预处理器摘要

最近在学习C,记录一下C预处理器。C预处理器不是编译器的组成部分,但是它是编译过程中一个单独的步骤。简言之,C预处理器只不过是一个文本替换工具而已,他们会指示编译器在实际编译过程中所需的预处理。我们将C预处理器(C Preprocessor)简写为CPP。#define#define 定义宏定义#define PI 3.1415926#include#include 包含一个源...

2019-11-24 17:28:49 69

原创 解决Android云信突然不能发送图片,视频和语音异常问题 -- https惹的祸

去年写了一篇使用云信集成过程踩到的坑: 地址 集成上线之后,由于需要忙其他的项目,这个就扔给其他人了,直到最近有新的项目需要重新接入聊天组件,然后我们就aar集成了,过程什么的一切都很顺利,直到测试给了报出了异常:突然发现不能发送图片,视频,还有语音,最后发现只要是文件类型的Message都不能发送!第一反应就是是不是集成本身存在问题,是不是云信的sdk出了问题,是不是我的主module中有什...

2019-09-07 23:34:01 469 3

原创 kotlin之协程(coroutines)学习(一)

两个月没写博客了,除了辞职找工作,就是熟悉新的环境,新的项目一直加班,累并快乐着,还是要好好加油啊。本文翻译来自kotlin官方文档https://kotlinlang.org/docs/reference/coroutines/coroutines-guide.htmlkotlin,最为一门编程语言,在它的标准类库中只提供了最低级别AP来支持其他类库使用协程。不像其它有类似协程能力编程语...

2019-08-29 14:28:54 203

原创 Android Jetpack系列 之 WorkManager

大概  这应该是一篇比较悲伤的文章,因为WorkManager并没有达到它所描述的功能,所以作为天朝的程序员,此处静默哀悼一秒钟,具体文章下面详述。 虽然如此,我们还是要了解一下这个WorkManager是干什么的,具体怎么干,又有什么优点或者缺点。关于WorkManager的官方文档可见:https://developer.android.com/topic/librar...

2019-05-22 15:04:21 895

翻译 Android新控件MotionLayout介绍(四)

系列文章为:Android新控件MotionLayout介绍(一)Android新控件MotionLayout介绍(二)Android新控件MotionLayout介绍(三)本文标题:在MotionLayout中定义运动路径介绍在ConstraintLayout 2.0库中我们介绍了MotionLayout,这是一种主要是注重动画的布局。先前的文章中对它有了一些浏览,我非常鼓励你先把...

2019-05-20 11:16:36 2656

翻译 Android新控件MotionLayout介绍(三)

文章目录实例MotionLayout与CoordinatorLayoutMotionLayout 与DrawerLayoutMotionLayout 与ViewPagerMotionLayout与Lottie结论上两章内容:Android新控件MotionLayout介绍(一)Android新控件MotionLayout介绍(二)这一节主要讲述将MotionLayout与已经存在的Layo...

2019-05-17 10:40:09 1209

翻译 Android新控件MotionLayout介绍(二)

文章目录自定义属性ImageFilterView (1/2)ImageFilterView (2/2)关键帧Keyframe (1/2), 位置Keyframe (1/2), 属性结论有关 Android新控件MotionLayout介绍(一)。今天主要是来看第二章。主要是通过一系列包括自定义属性、图片操作和关键帧来描绘一下MotionLayout的特征。原文地址为:https://me...

2019-05-16 10:59:43 1151

翻译 Android新控件MotionLayout介绍(一)

文章目录初衷为什么需要MotionLayout?MotionLayout的限制什么时候使用MotionLayout将MotionLayout添加到项目中使用MotionLayoutConstraintSetsMotionScene示例一:引用已经存在的布局OnSwipe handler示例2: 独立的MotionScene插入属性ConstraintSetMotionLayout的属性结束?初衷...

2019-05-15 16:06:07 5947 4

原创 Android Room Database 学习

Room数据库学习初衷概览配置定义data类定义UserDao定义抽象数据库项目build 自动生成文件使用定义数据实体定义对象之间关系使用DAOS数据库更新初衷由于接手的项目中,看到别人使用的是Android Jetpack下的Android Room数据库,由于以前也只是接触过GreenDao和自己写的sqlite数据库,所以就学习了一下,做一个笔记记录一下。这是我以前学习的greenda...

2019-05-09 15:47:03 836 1

原创 动手来写一个EventBus吧~~~~

最近在项目拍错过程中,使用的Eventbus出现了一个问题,然后翻了一下源码,感觉理解得差不多了,然后我动手实现了一个,当然是最简单的,为此,我希望通过本篇文章能将Eventbus的原理说清楚,应该不是很难。我实现的效果如下:首先在首页注册我的eventbus事件: override fun onCreate(savedInstanceState: Bundle?) { ...

2019-04-23 16:03:19 132

原创 Springboot中一些注解的总结

刚开始接触Spring和SpringMVC,用到了大量的注解,记录一下这些注解的作用和意义。主要是项目中用到的,其他的可能没有记录,毕竟注解太多了:@Autowired有一个默认属性required() , 表明该注解修饰的对象是否可以为null。它是按照类型(byType)装配依赖对象,默认情况下它要求依赖对象必须存在。如果你需要根据name来实现装配,那么需要使用@Qualifier来指...

2019-04-23 11:56:33 165

原创 Android使用protobuf与服务器进行一次数据交互

由于项目中有个需求对数据的传输大小有比较苛刻的要求,在综合了xml,json之后,我决定试试google的protobuf数据格式能不能给我带来希望。先扯个犊子,protobuf是大名鼎鼎的GOOGLE公司开发的一种数据描述语言(总感觉大公司吃饱了就会发明新的东西),主要目的用于存储和传输数据,相比较XML和JSON两种数据格式而言,protobuf主要的有点就是比Json,xml速度快,信息传...

2019-04-11 14:50:24 2059

原创 360 RePlugin 初探

大概在项目整合的过程中,要使用到插件化,听说360的RePlugin 还不错,所以就按照文档学习了一下,在此记录一下里面的坑。项目地址:https://github.com/Qihoo360/RePlugin首先,我们需要Replugin有一个简单的认识,它是一个框架,你开发的app可以作为插件直接安装到宿主app中,直接完美运行。而这个插件可以随时安装和卸载,非常方便。对于需要频繁更新的a...

2019-04-09 16:51:04 603

原创 关于ViewPager.PageTransformer的一些理解

今天早上在看hongyang的推送,说已经有了ViewPager2,是google的sample,地址为:https://github.com/googlesamples/android-viewpager2里面的动画我看了一下,还是比较可以的,可以看下面动图:大概看了一下源码,动画是由ViewPager2.PageTransformer,其实跟ViewPager.PageTransform...

2019-04-02 10:15:22 1524 1

原创 Retrofit存在多个BaseUrl,提供一种比较简单的方案

来源这原本来自一个比较蛋疼的请求,项目中本来是一个BaseURL的天下,这几天突然要调用第三方的身份证调用接口,与现在的URL地址不一致,本想Copy一个Retrofit配置完事,但是马丹周五又来了一个第三方的查询接口,真是日了狗.(项目本是政府项目,存在很多规划问题),不能又拷一个配置吧,算了,就思考怎么写一个吧。又加上在复习Retrofit的源码,发现存在一个比较简单的解决方案,就是在使用...

2019-03-30 12:02:22 1959

原创 Https连接过程详解

概述HTTPS相比较于HTTP而言,就是多了一个S,这个S我们可以称之为安全,说得通俗一点就是加密通信的HTTP而已。说的简单一点,就是每次通信,通信双方都会使用加密之后的数据通信。连接HTTPS连接大致可以分为5个步骤,我也是经过学习和看不同的资料才稍微有些感触,如果有不对的地方,请轻喷。大致可以分为7个部分:Client HelloServer Hello服务器发送证书客户...

2019-03-28 17:01:44 2889

原创 TCP/IP 协议族基础

概念协议族的概念是一系列协议所组成的一个网络分层模型分层的缘由因为网络的复杂性,存在各种坑,分层的意义就是为了更高效率和更小失败率来传输数据。具体分层应用层Application Layer(应用层),直接与用户进行对接,负责的是具体的逻辑,比如文件传输、网络管理等。我们将它们一一抽象成各种协议:HTTP、FTP、SMTP、DNS等协议。我们平时使用浏览器进行的网络请求,就是直接使用H...

2019-03-27 19:22:37 114

原创 密码中对称&非对称加密是什么意思?

在你学习和工作中,经常会用到各种加密算法来保护自己的信息安全,也经常听到对称和非对称加密的概念,可是仔细回想一下,这个对称和非对称到底是怎么来的,怎么个对称法?就自己学习的知识,咋们就来细说一下。为了理解加密算法,首先需要了解一下几个概念:基本概念密钥是密钥(yao 4声),不是秘钥! 百度百科的概念为:密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的参数。密钥分为对称...

2019-03-22 11:13:06 756

原创 JS获取URL参数

function getUrlParam(url,name) { var reg = new RegExp("(^|&|\\?)" + name + "=([^&]*)(&|$)"); var r = url.match(reg); if (r != null) return unescape(r[2]); return null;}用法:var url = ...

2019-03-19 19:00:56 148

原创 mysql 索引扫盲篇

项目中有个记录设备路径信息的表数据越来越大,到目前为止已经超过20w数据的信息了,才几天功夫发现有些不得了,终端响应速度非常慢,所以就赶紧学习一下数据库中的索引知识,来缓解一下查询速度。基本概念索引是一种特殊的文件,按照某种算法记录了数据库表中数据的关键信息,通过查找该文件,能达到降低查询时间的目的。索引用于快速找出某列中有特定值的行,不使用索引,MySQL必须从第一条记录开始完整读表,知道...

2019-03-19 15:03:48 1552 2

原创 RxJava操作符(四) __结合操作

本次学习的内容是关于多个Observable之间的组合,比较有用和有趣。startWith在数据序列开头插入一条指定的项 比较好理解啊,看代码就知道了:Observable.range(1, 5).startWith(-1).subscribe(getObserver()) ;看图结果: 我们看到了-1被插入到了最前面,那么startWith就是这个意思。

2019-03-15 18:28:27 102

原创 百度地图TextureMapView+Fragment引起的诡异问题

问题来源当前项目中,有个地方用到地图的地方,由于我是新来背锅的,项目整体的架构是ViewPager+FragmentAdapter,FragmentAdapter中每一个Fragment都含有一个MapView,后来查资料说TextureMapView更合适,所以就换成了它。换了之后,就出现了下面的比较诡异的问题。上两张图:    每个TextureMapView上...

2019-03-14 13:57:40 1192

原创 Android Monkey测试参数详解

最近项目中使用Monkey做测试,具体Monkey参数不是很了解,具体学习了一下。参数名参数含义[-p ALLOWED_PACKAGE [-p ALLOWED_PACKAGE] …]指定一个或者多个包,monkey将只允许系统启动指定的app[-c MAIN_CATEGORY [-c MAIN_CATEGORY] …]指定一个或多个级别,Monkey将只允许系统启动...

2019-03-11 13:36:10 773

原创 有kotlin中的Android项目编译出现 Unresolved reference: R 或者context、it 、entity

再编译别人kotlin项目时,gradle编译出错了,找到具体的任务,使用编译命令 gradlew编译看详细输出gradlew :main:compileDebugKotlin发现出现的问题是:直接报 Unresolved reference: R。在确保所有的资源文件都导入成功之后,开始google+度娘去查找问题,大致分为四个问题。1. gradle插件版本存在问题首先检查一...

2019-03-08 15:02:31 5651 4

原创 spring boot使用Scheduled cron做定时任务简介

maven配置选项lombokspring boot工程内 pom.xm文件配置为: <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactI...

2019-03-06 17:06:23 484

原创 Android内存优化---关于内存泄漏场景

内存泄漏的由来   Android系统对每个应用都分配了一定大小的内存,内存的大小取决于终端硬件的配置和系统内部的算法。这个内存是存在上限的,Android系统为了充分使用有效的内存,会在应用内存不够用时,及时使用垃圾回收算法,回收已经使用过的内存。在Android系统回收过程中,使用的算法成为标记算法,对于GC Root不可达的对象,标记为可回收对象。那么内存泄漏的本质就是...

2019-03-03 17:47:52 118

原创 MAC电脑上解决不能访问www.github.com问题

由于国内某些原因,导致我们有时候不能访问到 www.github.com。此时我们必须找到github.com的最新DNS域名,然后在/ect/hosts中添加或者修改即可。获取github.com在天朝内可用的dns域名打开 http://tool.chinaz.com/dns?type=1&host=www.github.com&ip=网站,获取TTL最小的值:此时我...

2019-01-13 10:30:48 9358 6

原创 关于SparseArray、SparseBooleanArray、SparseIntArray、SparseLongArray等SparseXX一些总结

说明我们在开发的过程中,在使用Map时,如果key是Integer类型的,AS则会建议你可以装换为SparseArray系列(AS的建议我们一般都需要看看,因为它可以避免很多无脑的操作):虽然这不是强制的,但是我还是建议你更换一下,因为在小数据量的情况下,SparseArray会比HashMap性能要好。在SparseArray的官方注释上说明,它不同于一般对象数组,它的设计只是为了在key...

2019-01-12 15:25:37 577

原创 ubuntu16.04 安装mysql供远程调用【远程开启+liunx防火墙开启】

1. 版本是ubuntu 16.04的服务器,mysql版本使用apt-get最新版2. root环境下三个命令: sudo apt-get install mysql-server sudo apt install mysql-client sudo apt install libmysqlclient-dev在安装一个命令时,会叫你填入密码,记住这个密码,因为这是你mys...

2019-01-08 17:43:53 169

原创 免费代理ip网站总结

西刺代理http://www.xicidaili.com快代理https://www.kuaidaili.com云代理http://www.ip3366.net无忧代理http://www.data5u.com/360 代理http://www.swei360.com66ip 代理http://www.66ip.cnip 海代理http://www.iphai.com大...

2019-01-02 22:40:30 13517 3

原创 android IPC机制(四)

IPC机制我写过三个系列:android IPC机制(一)android IPC机制(二)android IPC机制(三)基本上是从最简单的IPC讲起,从最初的Serializable & Parcelable,到Binder对象,最后到Messeager对象。今天主要是来总结一下AIDL。学习的过程是一个循序渐进的过程,以前有很多东西不了解,随着工作的深入,慢慢会有自己的体会和见...

2018-11-19 15:26:02 252

原创 理解Java ClassLoader & Android ClassLoader

1.Java中的ClassLoader分为两种类型:系统加载器和自定义类加载器;其中系统加载器包括三种:BootStrap ClassLoader、Extensions ClassLoader和Application ClassLoader。其分别的作用是:1.1 BootStrap ClassLoader(引导类加载器)使用C/C++实现的加载器,用于加载指定的JDK核心类库,像java....

2018-11-13 12:20:51 1010

原创 View事件体系简介

1.View的基础概念  View是Android中控件的基类,是一种界面层控件的一种抽象,它代表的是一个控件。除了View,还有ViewGroup,从名字来看,它可以被翻译成控件组,言外之意就是ViewGroup中可以包含多个控件。而在Android设计中,ViewGroup也是继承了View,这意味着View本身就可以是单个控件也可以是多个控件组成的一组控件,这种关心与W...

2018-11-07 22:14:04 226

my_logo_pic|app_logo.png

my_logo_pic

2016-07-30

java并发编程实战

详细介绍java并发编程,从简单到复杂,从认知到神会。学习java,成为java大神,你有必要看会

2014-09-19

Dagger2 demo

自己关于Dagger2的理解,还有一些常用Dagger2的注解。自己关于Dagger2的理解,还有一些常用Dagger2的注解。

2017-09-18

rxjava-joins包

rxjava的扩展包,其中包含一些rxjava核心包没有实现的操作符,比如and/then/when

2017-08-21

RecyclerView的ItemDecoration

自己理解的ItemDecoration

2017-06-24

SpannableStringDome

学习SpannableString&&SpannableStringBuilder的资料

2017-06-09

RxJava中create操作

RxJava中create操作的实验

2017-04-16

java数字转大写

自己帮忙写的一个数字转大写的工具类

2017-04-09

android客户端webview上传文件

自定义的webViewClient,解决了webview中file调起

2017-04-01

android步骤展示器源码

个人实现简单的写的android步骤显示器

2017-02-19

今日头条视频下载器_工具类

自己写的一个工具类,可以播放并下载今日头条的视频

2017-02-04

今日头条视频下载器

写的一个今日头条下载器

2017-02-03

android侧滑Demo

android侧滑Demo

2017-01-31

自定义柱状图

自己定义柱状图

2017-01-14

定义的ImageLoader

关于设计的imageLoader

2017-01-08

自定义开关View

自定义的开关View

2016-12-11

android富文本实例

基于android webvie的富文本

2016-07-31

retrofit文件上传,监听上传进度

retrofit文件上传,监听上传进度

2016-07-05

PreferenceActivity存储小dome

android老知识了,有个老项目回顾一个PreferenceActivity

2016-06-01

基于Facebook的Rebound的动画Dome

基于Facebook的Rebound的动画Dome

2016-05-22

HorizontalScrollView创建的Gallery

HorizontalScrollView创建的Gallery

2016-05-14

中文转拼音(pinyin4j-2.5.0.jar)

中文转汉语拼音,用于汉字的汉语拼音比较。

2015-05-15

空空如也

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