自定义博客皮肤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开发的点点滴滴

  • 博客(129)
  • 资源 (29)
  • 问答 (1)
  • 收藏
  • 关注

原创 Docker容器的使用

Docker 是一个开源的应用容器引擎,基于 Go 语言开发。Docker 可以让开发者打包他们的应用以及依赖包到一个轻 量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互 之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低,本文主要介绍docker的常见操作和使用。一、Docker的安装本文介绍的是Mac系统下docker的安装,下载地址:https://desktop.docker.com/mac/s

2020-11-08 18:30:18 41

原创 JavaScript语法

1、变量修饰符(1)var作用域:全局嵌套定义,会覆盖原有的变量,并且在函数中定义函数外的变量,会导致函数中声明前的所有同名变量undefined(2)let作用域:声明所在的块,及子块,不可提升(3)const:常量作用域:声明所在的块,及子块,不可提升2、if判断var w = '阴天';if (w === "晴天") { console.log('心情好')} else { console.log("888")}== 表示相等 (值...

2020-10-24 11:54:52 26

原创 node.js搭建动态服务器

//引入相关模块let http = require('http');let path = require('path');let url = require('url');let fs = require('fs');//添加静态自愿代码,详情看上一节function staticRoot(staticPath, req, res) { let pathObj = url.parse(req.url, true); if (pathObj.pathname === '/f.

2020-10-12 22:28:23 43 1

原创 node.js搭建静态服务器

一、引入模块//网络请求模块let http = require('http');//路径模块let path = require('path');//url模块let url = require('url');//流模块let fs = require('fs');二、创建服务http.createServer((req, res) => { console.log(__dirname) console.log(path.join(__dirname,

2020-10-11 09:59:38 43

原创 node.js入门(二)

一、模块1、require:引入模块(1)自定义模块:自己写的每一个文件就是一个自定义模块。require('./hello.js')(2)第三方模块:别人写的模块,使用npm安装别人的模块。nmp install 包名称(3)系统模块:fs,http等系统提供的模块。2、exports:暴露模块(1)hello.js暴露:var name = "zhangsan";//暴露模块的namemodule.exports.name = name;(2)mai

2020-10-08 13:57:30 23

原创 SpringBoot+Hibernate+MySQL实现数据操作

待定

2020-10-06 21:38:53 67

原创 springboot+gradle搭建web服务器——数据访问

前一篇文章介绍了如何使用ideaintelij创建项目和配置项目,这篇文章介绍如何访服务器的问静态资源和动态数据。 如下图,项目中static表示放置静态资源文件,templates用于放置动态资源文件。一、访问静态资源如上图,static是放置静态资源的,如下图,放置了三个文件:然后,启动项目: . ____ _ __ _ _/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \( ( )\___ | '...

2020-09-08 22:14:16 19

原创 springboot+gradle搭建web服务器——项目创建

一、项目创建打开ideal intelij编辑包名选择gradle选择集成内容SpringWeb填写项目名称二、项目配置1、引进html解析包build.gradle文件下:implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'dependencies { implementation 'org.springframework.boot:spring-

2020-09-06 14:12:17 82

原创 Android屏幕录制

待定

2020-08-23 14:20:38 91

原创 Android视频解码获取帧数据

待定

2020-08-20 19:58:00 144

原创 Android音视频分离和合成

mp4音频是由视频和音频组成,Android 提供了 MediaExtractor 和 MediaMuxer 以及MediaFormat类,用来把音频或视频单独抽取出来,然后合成新的视频。下面分别介绍视频的分解和合成,效果如下:一、视频的分解1、设置数据源获取音轨数据 MediaExtractor extractor = new MediaExtractor(); try { //设置数据源 extractor.

2020-08-15 22:54:41 150

原创 RadioGroup底部Tab的动态添加

本文主要实现底部Tab的动态添加,动态添加图片、文字状态选择器,支持tab的本和和网络图片,支持各自Tab各自控制,支持Tab的隐藏和显示,非常灵活。实现原理是自定义RadioGroup+RadioButton,效果图如下:...

2020-07-28 10:28:57 37

原创 RadioButton小红点、数字角标的实现

RadioButton通常作为RadioGroup的子布局嵌套在里面,单独使用不太常用,本文实现RadioButton小红点、数字角标,主要是利用onDraw方法进行重写,绘制小红点、数字角标。如下: public class AppRadioButton extends AppCompatRadioButton { private Paint mPaint; private boolean isShowDot; private boolean isShowNumbe..

2020-07-26 09:28:31 185 2

原创 FFmpeg生成Android so库

第一次接入FFmpeg,搞了整整一天,生成so库,可谓一波三折,功夫不负有心人有心人,终于搞定了。网上很多方案都是基于ndk14之前生成的,最新版本的ndk21和最新版本的FFmpeg4.3.1用不了,错误很大,搞了好一阵子发现在Linux系统中一直报错,刚刚开始以为c编译器没有,于是安装了,yum install yasm和nasm但是还是报错,然后把ndk换成ndk14才可以编译了,但是问题又来了,虽然编译成功了但是没有生成so库文件内容。最后通过日志分析,才知道在ndk版本16开始c编译器已经被取消,

2020-07-18 15:22:54 148

原创 SmartRefreshLayout中的坑

正常使用ClassicsHeader没有问题,在自定义header中遇到的两个问题总结下。一、内存溢出问题现象描述:APP打开,放置2分钟,APP内存陆续飙升,最后OOM。原因分析:在引入SmartRefreshLayout库之后自定义header,继承自RefreshHeader,重写对应的抽象方法,之后会出现内存溢出现象。通过Android studio profile分析memory自定义的RefreshLayout extends SmartRefreshLayou...

2020-07-12 10:34:20 274

原创 Android地图跳转

在开发中通常用到地图跳转,选择地址之后跳转到对应的地图,如图:对应的跳转方法在地图对应官方的SDk文档中都可以找到:百度地图http://lbsyun.baidu.com/index.php?title=uri/api/android腾讯地址https://lbs.qq.com/webApi/uriV1/uriGuide/uriMobileRoute高德地图https://lbs.amap.com/api/amap-mobile/guide/android/navigatio.

2020-07-05 11:52:02 293

原创 Linux环境下打包Android App

SDK在Mac或者Windows环境中安装很方便,在Android studio中打开SDK Manager即可下载,但是Linux中比较麻烦。藏经阁

2020-06-10 22:42:52 311

原创 node.js入门(一)

一、node.js安装Mac:https://cdn.npm.taobao.org/dist/node/v14.2.0/node-v14.2.0.pkg二、打印hello word1、创建一个文件夹。2、创建一个文件index.js。3、执行命令创建package.json文件,输入相关内容,回车。命令:npm init含义:name 项目名称 version 项目的版本号 description 项目的描述信息 entry point 项目的入口文件 test com

2020-05-20 10:00:08 76

原创 Linux常用操作命令

删除文件:rm -rf filename 上传文件:rz -be 下载文件:sz filepath 查看文件:cat filename 修改文件:vi filename 移动文件:mv 源文件目录 目标文件目录 修改文件名称:mv filename1 filename2 创建文件夹:mkdir dirname 解压缩:unzip file 文件移动:mv -f filename1 filename2 不做提醒,强制移动;mv filename1 filename2 vi编辑:打...

2020-05-20 09:31:50 76

原创 Mac环境下Jenkins自动化打包生App

一、jenkins的下载1、要使用jenkins首先得安装jdk,还需要配置环境变量,我这边已经安装了jdk1.8了,因此不在安装,查看方法:java -version2、下载jenkins包,有两种方法,一种是直接安装,另一种是在容器内运行,我这里采用第二种方法,要使用war包首先得下载Tomcat,如下:直接下载安装包:http://ftp-chi.osuosl.org/pub/j...

2020-05-06 11:24:22 134

原创 Glide的缓存机制原理分析

一、Glide请求图片的流程当执行 Glide.with(this).load("").into(imageview)的into方法时候,该方法接收一个Target或者一个ImageView,Target是一个接口,默认的实现类包括SimpleTarget,ViewTarget,ImageViewTarget等,如果传递的是ImageView接下来回执行以下几步:调用RequestBuil...

2020-02-24 10:03:05 376

原创 Glide绑定生命周期以及回调监听原理分析

Glide.with(this).load(url).into(imageview)Glide绑定fragment、Activity的生命周期是在with方法里面执行的,with可以为Fragment,Activity,FragmentActivity,Context,View,如果是Activity 或者fragment直接调用对应的get方法,如果为Context或者View则判断该...

2020-01-12 16:20:01 189

原创 常用工具总结

一、web线上工具网站1、Android源码查看:https://www.androidos.net.cn/android/8.0.0_r4/xrefhttp://androidxref.com/2、微信公众号、博客等Markdown排版工具:http://md.aclickall.com/3、.9图制作工具:http://inloop.github.io/shadow4andro...

2020-01-10 10:42:13 84

原创 Android Studio快捷键

1.for循环ArrayList<String> list = new ArrayList<>();list.for+enter 增强forlist.fori+enterlist.forr+enter倒序for循环100.for2、非空判断对象.null对象.notnull 更简单的 对象.nn3、if任何可以判断的语句后面加上.if:4、多行编辑...

2020-01-10 10:35:50 75

原创 Android学习网站总结

一、Android博客网站1、玩Androidhttps://wanandroid.com/2、思否https://segmentfault.com/channel/android二、kotlin1、视频https://github.com/enbandari/Kotlin-Tutorials2、专题https://www.jianshu.com/c/00b33a9fab1...

2020-01-09 11:29:00 64

原创 Glide的配置信息总结

Glide.with(this).load(url).into(iamgeView)1、全局配置继承自GlideModule,在applyOptions方法中通过参数GlideBuilder进行配置,在AndroidManifest.xml注册。 public class SettingGlideMoudle implements GlideModule { ...

2019-12-14 14:06:53 76

原创 RecycviewView加载更多和预加载

一、Recycleview的上拉加载更多 mRecyclerview.addOnScrollListener(mOnScrollListener); RecyclerView.OnScrollListener mOnScrollListener = new RecyclerView.OnScrollListener() { @Override ...

2019-08-10 23:08:43 713

原创 Android图文混排

在开发中通常通常会遇到图文混编的情况,例如文字中插入置顶,热门等图片标签,在很多时候换行的时候TextView文字换行后都无法占满首位字符,要求TextView中要求某些文字设置其他颜色,字体,样式等等,这篇文章就是解决这种问题,如下: 一、SpannableStringSpannableString是富文本显示效果一个重要的类,是CharSequence的一种,和...

2019-07-31 22:02:41 325

原创 软键盘打开和关闭监听

1、自定义软键盘监听控件代码如下,核心要点查看备注:public class KeyboardLayout extends RelativeLayout { //软键盘展开 public static final byte KEYBOARD_STATE_SHOW = -3; //软键盘隐藏 public static final byte KEYBO...

2019-06-13 22:34:22 547

原创 WebView应用详解

前面几篇文章已经介绍过WebView的相关内容了,但是都是专题形式,这次算是一个综合的补充吧!Android与前端交互之JSBridgehttps://blog.csdn.net/yoonerloop/article/details/78033908Android中网页数据的抓取和修改https://blog.csdn.net/yoonerloop/article/details...

2019-05-11 08:55:23 136

原创 TransactionTooLargeException异常

一、问题以及解决方案TransactionTooLargeException异常是一个很不常见的异常,开发几年了,首次遇到这个异常,一部分手机会出现这种情况,当时还很惊奇。最后经查找原来是Activity启动时候intent数据传递过大发生的。当时是一个分享功能的偶发bug,在分享时候传递数据包括标题、链接,网址,截图等参数,截图传递的是截取的Bitmap,果然是Bitmap太大了,导致...

2019-04-27 17:07:25 3534

原创 日历时间选择器

最近一直很忙很忙,去年年底公司裁了一拨人,导致新的需求人手不够,每个人任务都很重,虽说不是996,但是加班一直在进行,想写点什么东西总结总结,但是一直没有时间,今天发一个日历选择器,效果如下:该日期选择器高度,默认选择时间,颜色,字体大小,滑动弯曲效果,标题,取消,确定等等都支持自定义。下载地址:https://download.csdn.net/download/y...

2019-04-13 15:05:48 159

原创 Android中类的加载以及应用

将重点介绍一下三个方面:类的加载机制 热修复原理 增量更新原理一、类加载器的分类1、Java ClassLoader(1)启动类加载器:Bootstrap ClassLoader用C++编写的,是JVM自带的类加载器,负责Java平台核心库,用来加载核心类库。该加载器无法直接获取。加载存放在JAVA_HOME\lib目录中的类。(2)扩展类加载器:Extension Cl...

2019-03-03 09:20:15 1338 1

原创 探究ZoomImageVie中的图片居中和多点触控

 ZoomImageView是一个支持收拾缩放,多点触控的开源控件,这篇文章学习他的图片居中和手势缩放。要缩放的是一个图片所以要用到自定义控件,我们MyZoomImageView,继承自AppCompatImageView实现他的构造方法,既然是图片的处理,我们这里用到了一个类Matrix,他是一个3×3的一个矩阵,可以对图片进行缩放、旋转、位移、倾斜等处理。因此需要在构造方法里面进行初始化,...

2019-02-23 20:43:38 166

原创 Activity异常关闭时数据的存储和恢复过程分析

 在正常情况下关闭Activity,例如按下返回键、返回箭头等Activity直接就被销毁。但是在Activity内存不足、异常关闭或者屏幕旋转等情况的时候,当前的Activity会被销毁,这个过程中页面上的Fragment、View等信息会被保存下来,当再次展示的时候会被重建,重建后的Activity就会恢复这些数据。一般情况下当系统配置发生改变的时候Activity都会被重建,如果我们不希...

2019-02-17 15:47:18 348

原创 自定义ViewGroup之FlowLayout

 先看看效果图:先自定义一个类TestViewGroup,继承自ViewGroup,重写onMeasure、onLayout方法。一、重写onMeasure方法 @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMea...

2019-01-29 22:25:54 110

原创 从源码角度分析View的绘制流程

 上一篇文章引出了performTraversals,在内部分别调用了performMeasure,performLayout,performDraw三个方法。这三个方法分别有调用了mView.measure,mView.layout,mView.draw(canvas)三个对应的方法,因此我们找打View中对应的方法。一、onMeasure如下measure方法,省略了其他的代码:...

2019-01-24 22:14:36 102

原创 从源码角度分析View的加载过程

 本文是依据Android 8.1.0的相关源码进行分析。一、setContentView的如何加载布局?通常Activity的onCreate里面都需要写上setContentView,那么就从Activity入手,找到setContentView,如下: public void setContentView(@LayoutRes int layoutResID) { ...

2019-01-17 22:03:05 85

原创 软键盘相关问题总结

 之前写了一篇文章,主要介绍一些EditText的一些属性和自定义打开链接(点击打开),最近开发中又遇到了其他的的问题,再次进行总结。包含以下几个部分:软键盘顶部添加布局方式 防止软键盘顶起布局内容 初始进入页面软键盘弹出 软键盘的弹出与收缩 软键盘弹出与收缩的监听  一、软键盘顶部添加布局方式方法一:Activity配置信息1、在清单文件中配置的该Activity...

2019-01-05 12:31:41 117

原创 设计模式之责任链模式

 责任链模式数据23种设计模式中的行为型模式,他是使多个对象都有机会处理同一个请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。场景:一个员工报销,需要层层审批,初级领导只能报销500元以内的,中级领导能报销2000以内的,大领导能报销5000以内的,再大的需要找大boss进行报销了,这种情况就可以使用责任链模式进行设...

2018-12-23 19:43:49 108

ffmpeg-4.3.1-so.zip

ffmpeg Android客户端so库,支持,基于ndk21,ffmpeg4.3.1版本,最低支持API21,音视频编解码,滤镜特性等功能。

2020-07-18

DataPicker

时间日期选择器,该日期选择器高度,默认选择时间,颜色,字体大小,滑动弯曲效果,标题,取消,确定等等都支持自定义。详情参考Activity配置信息!

2019-04-13

备忘录模式

备忘录设计模式,可用于简单的学习!

2019-02-12

观察者设计模式

观察者设计模式,可以作为学习之用!

2019-02-12

责任链模式

责任链模式Demo,可以作为设计模式学习之用!

2019-02-12

FlowLayoutDemo

自定义ViewGroup,实现FlowLayout效果,一个类非常精简,代码不到100行,备注丰富,只需要布局替换为自定义的TestViewGroup即可,可扩展行强,子布局可以任意设置可以为文字或者图片等,可以设置横向竖向间距。

2019-01-23

RecycleView联动效果

RecycleView联动效果Demo,滑动其中一个RecycleView,另一个RecycleView跟着滑动

2018-10-22

HorizontalGridView

一个横滑的GridView,支持GridView的item动态配置,item点击效果

2018-10-18

Android模块化开发Demo

Android模块化开发、组件化开发架构Demo,由一个宿主App,一个基类library,其他三个module构成,以及页面路由ARouter的使用介绍,包括模块间数据传递,服务调用,常规跳转,带参数跳转,跳转监听,页面拦截,降级服务等功能和注意事项,详情查看个人博客。

2018-07-14

Dagger2Demo

介绍了Dagger2的常用使用方法,和演示案例,提供Dagger2的入门学习方法。

2018-06-30

Spinner下拉选项

Android的下拉选择实现Spinner自定义实现方法,优雅的弹窗Demo,效果很好。

2018-05-21

Android热修复Tinker

微信Tinker热修复的集成Demo,快速高效的热修复技术集成和使用。微信Tinker热修复的集成Demo,快速高效的热修复技术集成和使用。

2018-05-13

多渠道打包VasDolly

腾讯多渠道打包方案VasDollyDemo,支持多渠道快速打包,配置信息

2018-05-01

多渠道打包Walle

美团多渠道打包方案WalleDemo,支持多渠道快速打包,配置信息

2018-05-01

MVPDesignDemo

Android MVP设计模式Demo,包含view、modle、persenter三大模块的使用方法,结构关系!

2018-04-26

APP多渠道打包和混淆

多渠道打包测试方法二选一,命令行打包和studio视图打包,内含配置信息和详细代码,可以快速生成渠道包和混淆代码。

2018-03-22

BuliderDemo

建造者设计模式案例演示,类似于Retrofit对象创建的这类方式;Retrofit retrofit = new Retrofit.Builder(),可以配置各类信息,详情见代码。

2018-02-28

CanvasViewDemo

canvas画布的常用绘制draw方法,对画布的平移,旋转,缩放,错切,裁剪操作,六个demo清晰的展示每个操作。

2018-02-24

Anko的简单使用

Intent 的数据传递和包装器,文字弹窗、弹窗、选择列表、日志类等

2018-01-23

AccountManager账号管理

本demo基于AccountManager实现账户注册,账户登陆验证,退出登陆,自动更新,手动更新,批量更新用户名,获取指定账号,获取所有账号信息,代码完整,注释清晰。

2017-11-23

AndroidJSBridgeDemo

Android与H5,js通信框架使用,主要展示了 JSBridge调用Android端时,Android端数据的返回处理和回调处理,与js进行通信。

2017-09-20

fidder抓包工具免费版

fidder抓包工具免费版,下载安装,下一步下一步即可。用于app的资源包抓取,可以与android studio结合使用,抓取接口,请求,返回数据,非常方便。

2017-09-19

TopBaseActivity

标题栏的基类封装,所有的activity继承自TopBaseActivity,简单的几行代码就可以设置标题栏内容,图片,点击事件监听,界面布局内容。

2017-06-05

文件操作工具类-java

文件夹的复制,文件的复制,文件的读取,文件的写入,文件夹的复制,文件的复制,文件的读取,文件的写入,文件夹的复制,文件的复制,文件的读取,文件的写入

2017-03-05

uri转字符串路径工具

uri转字符串路径,解决4.0以上的兼容问题,

2017-03-05

ZXing二维码实现

ZXing实现二维码扫面,二维码图片识别,生成二维码图片,自定义二维码扫面的界面,闪光灯开的与关闭

2017-03-01

RefreshRecycleView

基于开源项目对RecycleView的进一步进行封装,实现多个头布局脚布局的添加,下拉刷新,上拉加载,点击事件的监听,ViewHolder与Adapter的封装,RecycleView分割线的设置

2017-02-16

Android版本更新

Android版本更新的代码,使用时直接集成到项目中,修改下URL即可,快速、轻捷、实用。

2017-01-23

RetrofitDemo

使用retrofit实现网络资源的请求,包括get、post有参无参的请求,json格式、String格式、XML格式的数据请求和返回解析,文件的上传和下载,以及自己定义进度

2017-01-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

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