自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

点击置顶文章查看博客目录(全站式导航)

恪守本分,勿起躁念,脚踏实地,踏浪前行,坚持原创,宁缺勿滥

  • 博客(223)
  • 资源 (58)
  • 收藏
  • 关注

原创 欢迎进入Hensen_的博客目录(全站式导航)

Android基础Java基础Java基础——Java内存模型和垃圾回收机制语法基础语法基础——C语法基础语法基础——C++语法基础语法基础——Objective-C语法基础语法基础——PHP语法基础 面试复习面试复习——Android工程师之Java基础 面试复习——Android工程师之Java面试题面试复习——Android工程............

2016-09-23 13:20:25 22720 23

原创 12章 RxJava使用过程中遇到线程相关的坑

计时等,导致事件没有准时回调,比如在页面中设置有3s的心跳轮询,然而,你会发现,有时候心跳隔了7s后才发心跳,导致后台误认为心跳已被停止。开发中常用的两种类型,其的弊端在于源码中每次创建一个任务都会创建一个单条线程的线程池去跑当前任务。,导致App线程暴涨,在业务繁多的App中,容易导致超过句柄数限制,导致App崩溃。调用的,会导致线程在使用率太高的情况下,子线程不容易被调度到,导致延误计时结果。这个问题是我们最常见的坑,在使用RxJava一些计时的操作符的时候,如。每次任务的执行都会对应的。.......

2022-07-21 15:09:37 409

原创 11章 RxJava、Flow、LiveData适用范围

LiveData、Kotlin Flow和RxJava三者都属于可观察的数据容器类RxJava是基于观察者模式去实现的响应式编程,可以使用多种操作符进行组合将各种复杂的请求简单化其优点:其缺点:LiveData由Google自2017年推出,LiveData相对RxJava出现较晚,相当于轻量版的RxJava其优点:其缺点:1、LiveData缺少丰富的操作符,为了弥补这个缺点,LiveData提供Transformations工具类中的map,switchMap等操作符2、LiveData本身的设计理念

2022-07-14 18:02:39 494

原创 Cocos Creator 3.0 基础——常见操作

持久化存储写在WebView的本地存储定时器声音播放将声音部分全部保存声音管理组件中,并设置好属性,对外提供接口进行播放使用播放动态图片加载动态加载资源中的图片,有个前提条件,图片必须存放在目录下........................

2022-07-14 14:58:53 933

原创 Cocos Creator 3.0 基础——事件系统

触摸事件触摸事件指的是用户手指触摸时候的事件键盘事件键盘事件指的是用户在键盘上输入的事件,他可以同时按下多个键盘,并要完成多个事件的响应监听键盘wasd,控制人物往前后左右运动触发事件触发事件属于两个物体触碰后触发,其事件触发的前提触发事件类型碰撞事件碰撞事件属于两个物体碰撞后触发,其事件触发的前提触发事件类型.........

2022-07-14 11:38:37 315

原创 Android开发细节——上班实战项目中遇到的棘手问题与解决方案汇总

Paint的细节用法1、设置笔帽mPaint.setStrokeCap(Paint.Cap.BUTT);//没有mPaint.setStrokeCap(Paint.Cap.ROUND);//圆形mPaint.setStrokeCap(Paint.Cap.SQUARE);//方形2、设置滤镜1、模糊遮罩滤镜(BlurMaskFilter)2、浮雕遮罩滤镜(EmbossMaskFilter)3、设置线条汇合处mPaint.setStrokeJoin(Paint.Join.MITER);//

2021-06-10 21:19:07 1267 2

原创 Android基础控件——RecyclerView实现窗口拖动和屏幕边缘吸铁石的效果

前言程序员:你看我写的RecyclerView多美呀,看看这颜色搭配多好看(突然有天)产品:把这个列表给我拖动起来,记得加个动画让他贴边程序员(华丽的辞藻):那我走?程序员:这RecyclerView业务遗留太久,改起来有点难度,5天工作量吧产品(丰富的中国传统文化):那我走?效果如下主要功能长按能拖动列表的拖动和长按拖动不冲突松手后能贴边实现整个方案实现原理最难在于拖动时候的处理:如何判断长按后,然后开始拖动长按的边界判断,不让界面拖出设置的边界贴边动画实现

2021-06-10 14:37:23 2917 1

原创 Android进阶——借鉴FlutterEngine,实现子进程渲染视图

前言最近看到一个多进程的方案,通过启动Service,在子进程渲染视图的方案,在子进程渲染视图会减少和主进程的内存和主进程的渲染,类似于多进程方案,此方案借鉴FlutterEngine的源码,内容使用到Flutter的代码和AIDL的知识,不懂AIDL的同学可以看我的博客,先学习AIDL跨进程通讯方案方案实现起来内容不多,暂时只针对渲染的视图来做,如果需要触摸等事件,需要进一步阅读FlutterEngine源码进行适配创建SurfaceView创建Service在Service创建Virtua

2021-05-21 17:27:26 274 4

原创 5章 性能平台GodEye源码分析-第三方模块

3. 第三方模块5.1 Crash(XCrash)Crash监控崩溃后的堆栈上传,作者采用接入爱奇艺的XCrash框架源码分析1、启动Crash的监控Crash的监控通过反射启动XCrash框架,因为XCrash的框架引入,可能会和你的项目有些框架的冲突,作者将XCrash的初始化代码放置在另一个Module中,这样方便热插拔当前的崩溃框架public class Crash extends ProduceableSubject<List<CrashInfo>> imp

2021-01-04 16:22:47 255

原创 6章 性能平台GodEye源码分析-自定义拓展模块

6. 自定义拓展模块6.1 FrameLossFrameLoss指的是设置的丢帧率,在GodEye并没有当前的指标,此指标是根据当前项目需要自定义的拓展项目,如果连接USB线,可以通过以下命令看到当前的丢帧率Janky frames: 32 (6.61%),但由于系统无法通过执行命令的方式去获取,只能通过反射的方法去获取,目前只适配于低版本的获取方式adb shell dumpsys gfxinfo com.example.mobile源码分析1、启动FrameLoss的监控模仿GodEye

2020-12-29 18:04:35 177

原创 1章 性能平台GodEye源码分析-整体架构

1. 基础概念1.1 GodEye简述用原话说:AndroidGodEye是一个可以在PC浏览器中实时监控Android性能数据指标的工具,你可以通过wifi/usb连接手机和pc,通过pc浏览器实时监控手机性能1.2 GodEye项目预览系统分为三部分:Core:核心部分,提供所有模块Debug Monitor:提供Debug阶段开发者面板Toolbox:快速接入工具集,给开发者提供各种便捷接入的工具其支持的功能分为:模块名称描述CPU手机和App Cpu检测

2020-12-29 11:54:55 286

原创 4章 性能平台GodEye源码分析-监控模块

4. 监控模块4.1 PageloadPageload指的是监听应用Activity和Fragment的生命周期,通过记录当前的生命周期追踪用户的页面跳转行为源码分析1、启动Pageload的监控Pageload的监控通过系统回调的生命周期,通过ActivityLifecycleCallbacks.work()注册系统的生命周期,进而通过回调获取Pageload信息public class Pageload extends ProduceableSubject<PageLifecycleE

2020-12-29 10:38:41 168

原创 3章 性能平台GodEye源码分析-内存模块

3. 内存模块3.1 HeapHeap指的是监控应用的堆内存信息,主要是通过系统提供的Api获取,用法简单源码分析1、启动Heap的监控Heap的监控通过启动定时器,按xml配置的时间进行采集,通过MemoryUtil.getAppHeapInfo()获取堆内存信息public class HeapEngine implements Engine { private Producer<HeapInfo> mProducer; private long mInterva

2020-12-28 16:50:15 130

原创 2章 性能平台GodEye源码分析-数据模块

2. 数据模块2.1 CpuCpu的获取有两种方式通过读取/proc/stat文件获取,但高版本的Android已经不给权限读取通过adb命令top -n 1,获取当前所有进程列表的cpu使用情况,再过滤当前进程源码分析1、启动Cpu的监控Cpu的监控通过启动定时器,按xml配置的时间进行采集,通过CpuUsage.getCpuInfo()获取Cpu信息public class CpuEngine implements Engine { private Producer<C

2020-12-28 16:49:02 251

原创 0章 性能平台GodEye源码分析-课程介绍

导言性能方面的知识在工作中和面试中已经成为必备知识,笔者通过分析线上开源的GodEye框架,分析作者的源码思路和作者的框架架构,学习框架的优秀的代码。通过熟悉这门框架的各个原理,让大家的性能知识有个快速的补充,尽快入门性能方面的知识。文章将从0开始进行入门教学,主要是对源码的分析和思路的解读。即使您对性能方面都是零基础,可以通过这几篇文章快速入门,并快速掌握性能基础知识。欢迎加入读者聊天群:497863347适合人群本篇文章适合所有初中级工程师,文章会从GodEye的每个性能模块进行讲解,并在每个模块

2020-12-28 16:47:52 230 2

原创 Android基础控件——TextView的自定义,实现圈圈进度条的倒计时

前言在开发中,正常的进度条都是用ProgressBar实现的,但是遇到需要文本的进度条和光滑动画的进度条时,用ProgressBar实现起来就有点吃力,这里可以通过TextView+ValueAnimator的方式来实现本例子中实现效果如下实现思路继承AppCompatTextView通过drawRoundRect的方式画内圈椭圆通过drawPath+PathMeasure+ValueAnimator的方式画外圈的倒计时椭圆实现分析1、快速使用在xml直接使用<com.e

2020-11-06 18:14:03 1172 3

原创 记录一次海外图片加载不出来的排查

前言在这次项目中我们遇到这样的情况,在国内访问迪拜阿里云服务器的图片慢,且加载有点像断片的感觉一开始我们通过各种找借口,想出各种理由来为这个慢做狡辩我们是访问国外服务器,访问慢是正常的我们使用的是海外加速,国内并没加速,国内慢是正常的国内网速环境过慢,访问不会快的后面我们收到反馈说国外的图片也是加载特别慢,经常卡住的感觉,于是我们开启了对图片的专项优化发现问题我们首先是梳理了...

2020-03-18 20:45:22 1793 1

原创 Android基础控件——ImageView的自定义,再次利用Matrix完美模仿小红书长图自动滚动效果

前言当我们阅读了ImageView源码后,发现Matrix的使用真的是很强大,几乎可以实现我们很多该有的功能,当我第一次看到这个效果的时候,第一想法就是ImageView的Matrix。通过比对了网上很多方案后,网上的方案还是比较复杂,如果我们巧用Matrix去做效果时,会发现其实代码也就100行左右就完美实现了效果,而且性能方面很不错效果展示实现思路我们的思想思路就是将两面相同的长图...

2020-01-04 23:05:29 1710 2

原创 Android基础控件——SeekBar的自定义,超短代码模仿抖音带有数字拖拽进度条

前言在开发中,经常会遇到SeekBar组件的开发,一个高效的自定义SeekBar显得尤为重要,笔者刚好也在项目中大量使用带有数字的拖拽进度条,在深思熟虑后,打算从继承源码形式上,把数字绘制在拖拽进度条上,让拖拽的时候时刻去更新数字。这种实现方式不到100行代码,代码极其精简,功能极其好用,另外,这种方案可以用于各种组件绘制在进度条上方,这块的实现就看需求的具体效果本例子中高仿抖音的进度拖拽效...

2019-12-27 23:33:26 1971 3

原创 Android基础控件——HorizontalScrollView的自定义,完美模仿抖音等短视频拍摄底部切换Tab控件

前言最近在项目中需要用到跟抖音同样的控件效果,找了几个开源的TabLayout控件,要么功能很复杂,要么要自己拓展功能,还要去阅读别人代码,实在是没这个时间折腾。每次遇到找不到第三方的控件时候,就开始撸一个简单的控件,好维护又好拓展,功能也不差,做出来体验也很好抖音原效果模仿效果简单使用在布局上,是用底部Tab控件带动ViewPager的切换,中间的白点只是一个固定的图片而已...

2019-12-26 00:04:05 1808

原创 Android进阶——ExoPlayer源码分析之宽带预测策略的算法详解

前言由于国内基础设施非常优秀,在平时的开发中,很少会关注网络情况,很容易忽略弱网情况下的网络状况,如果项目属于国外App,则需要考虑到当前的基础设施和网络情况,特别是播放视频的时候,需要通过动态调整码率去选择当前的播放码率。这时,就找到ExoPlayer源码中的宽带预测方案,其本质上使用的是移动平均算法,来获取当前时间段的平均网络情况。我们通过对当地宽带预测,从而选择更适应网速的码率去播放视频......

2019-12-24 16:13:13 993 1

原创 Flutter开发日记——Flutter布局Widget详解(下)

Row1、简介Row组件是一个横向排布的布局组件,跟h5的Flex布局一样,只不过限定了横向排布2、构造函数Row({ Key key, MainAxisAlignment mainAxisAlignment = MainAxisAlignment.start, MainAxisSize mainAxisSize = MainAxisSize.max, CrossAxi...

2019-11-04 23:25:33 832 1

原创 Flutter开发日记——Flutter布局Widget详解(上)

Container1、简介Container类似于h5的盒子模型,相当于布局容器Container在没有子节点的时候,会试图变得足够大Container在带有子节点的时候,会根据子节点的尺寸调节自身大小2、构造函数Container({ Key key, this.alignment, this.padding, Color color, D...

2019-10-29 15:59:38 789

原创 Android进阶——性能优化之MAT的使用

前言概念hprof文件:指的是当前Android堆内存的快照情况,当前设备的堆内存会全部保存在hporf中MAT:MemoryAnalyzer,内存的分析工具,通过工具可以分析堆内存的使用情况和检测内存泄漏等问题MAT1、生成hprof文件导出2、打开MAT 导入我们的2个hprof文件,其中1个是旋转多次屏幕之后的文件(属于内存泄漏部分),另1个是没有内存泄漏的文件,通过以下操作打...

2019-10-17 22:45:08 562 2

原创 基础拍摄前期和基础后期修图

基础拍摄前期焦距1、焦距类型变焦镜头:70mm-200mm,200÷70≈2.86,2.86倍的变焦镜头定焦镜头:50mm2、焦距特点焦距越短,取景范围就越广焦距越长,取景范围就越窄3、焦距定义24mm以下:超广角,适合大场景、建筑、风景24mm和28mm:广角,适合风景35mm:人文眼,适合人文50mm:标准镜头,适合人文、人像85mm:适合人像100mm:...

2019-10-17 21:29:50 360

原创 Flutter开发日记——Flutter动画&Motion Widget详解(下)

本篇文章已授权微信公众号 YYGeeker 独家发布转载请标明出处控件介绍AnimatedDefaultTextStyle表示一个文本样式的动画组件,通过修改组件的style属性,系统将会通过动画的方式自动切换到新的style样式构造函数AnimatedDefaultTextStyle({ Key key, @required this.child, ...

2019-09-30 18:13:45 960

原创 Flutter开发日记——Flutter基础入门知识

配置环境1、安装编辑器通过官网安装VSCode2、安装Flutter插件在VSCode中EXTENSIONS栏中安装Flutter插件3、检查Flutter插件通过Command Palette中输入命令检查Flutter的运行环境run flutter doctor运行指令时会遇到下面这个错误[flutter] flutter doctorxcrun: error: inv...

2019-07-31 17:47:57 982

原创 Android自定义View——贝塞尔曲线实现抛物线效果

效果展示原理分析抛物线效果最主要的难点和原理在于贝塞尔曲线动画的生成,我们通过图片主要讲解贝塞尔曲线动画,这里用到的是二级贝塞尔曲线1、需要找到贝塞尔曲线的三个点,开启点、结束点、控制点2、通过二级贝塞尔曲线的公式计算,获取贝塞尔曲线的轨迹路径点3、通过设置点赞图片X,Y坐标,从而形成点赞的效果实现步骤1、初始化变量class Bezier2Layout : RelativeL...

2019-07-31 17:23:59 1254

原创 Flutter开发日记——Flutter动画&Motion Widget详解(上)

控件介绍AnimatedContainer表示一个动画容器,只要更改容器的值,就能表现出对应的动画效果child属性,表示容器中的子元素,子元素在容器中的位置默认是居中显示构造函数AnimatedContainer({ Key key, this.alignment, //属性child的对其方式 this.padding, ...

2019-07-28 20:29:02 2467

原创 Android自定义View——自定义插值器和估值器实现向上抛体运动

效果图原理分析其实代码很简单,主要的知识点就是执行动画是如何配合插值器和估值器的运算,达到我们想要的效果。这里的向上抛体运动和自由落体运动主要是运用了高中的加速度运算的公式,计算其x轴和y轴的路程和速度即可,通过插值器计算时间和估值器计算位移,达到向上抛体效果。插值器:用0-t,来表示时间的递增估值器:用公式计算出动画的路程当前速度:v = v0 - gt向上抛体运动:s = v0...

2019-07-23 23:17:18 634

原创 Java基础——CopyOnWriteArrayList源码分析

CopyOnWriteArrayList是什么CopyOnWriteArrayList是List接口的同步实现CopyOnWriteArrayList是基于数组复制的操作,对于增、删、改的操作开销很大CopyOnWriteArrayList使用迭代器遍历不会导致与其他线程发生冲突,依赖于不变的数组快照public class CopyOnWriteArrayList<E>...

2019-06-25 00:17:09 243

原创 Android实战——Room的使用,升级没烦恼

前言Room相比GreenDao而言是官方推荐的一个关于数据库的依赖库,Room更需要开发人员有较专业的SQL数据库知识,它涉及到SQL的语法编写和SQL数据库的升级,如果对SQL语法不懂的开发者来说,使用起来是很有难度的,但对于熟悉SQL语法的开发者来说,用起来比GreenDao好用许多Room的简介Room是Google提供的一个ORM库。Room提供了三个主要的组件:@Databa...

2019-06-11 00:16:18 2898

原创 Flutter开发日记——构建系统加入Flutter符号表

前言记一次在开发过程中找到Flutter符号表的过程。由于Flutter准备上线后需要将Flutter字符表打进崩溃系统,供崩溃系统查询。即使是发布到线上的崩溃,也能在崩溃系统中扫描出来。这里只是记录将对应Flutter版本号找到对应带符号表的过程,我们的工作就是将符号表交给负责崩溃系统的人即可。1、flutter版本由于我们开发的版本是最新的stable版本,需要将本地版本切换到stabl...

2019-06-04 20:52:14 3104

原创 Android基础控件——ImageView的自定义,巧用Matrix实现图片不变形的炫酷PK条

前言在开发中常常会遇到PK条制作,如果在PK条中是纯色的情况下,比较好办,如下:我们通常会设置其权重进行更新两个PK条的进度,实现起来也简单//更新PkBar宽度比例private void updateLayoutParams(float ratio) { LinearLayout.LayoutParams paramsLeft = (LinearLayout.LayoutPa...

2019-04-29 23:47:12 843

原创 语法基础——ReactNative语法基础

ES6特性类模块化箭头函数函数参数默认值模板字符串解构赋值延展操作符对象属性简写PromiseLet与Const1、类引入类的概念,让其具有面向对象的开发class Person { constructor(name,age) { this.name = name; this.age = age; }}2、模块化...

2019-03-31 22:14:37 1239

原创 语法基础——Dart语法基础

主函数void main(){ print('Hello Word');}常量和变量如果未初始化的变量,其默认值为null//常量const a = 10;//变量var b = 10;Dart没有public、protected、和private关键字,标识符(_)表示私有的意思//默认为publicint a = 10; //下划线开头为privatein...

2019-02-14 11:41:42 542

原创 Android进阶——Android弹窗组件工作机制之Dialog、DialogFragment

前言Android在DialogFragment推出后,就已经不推荐继续使用Dialog,可替换为DialogFragment,其实DialogFragment只不过是对增加一层看不到的Fragment,用于监听生命周期,在Activity退出的时候会自动回收Dialog弹窗基础概念Activity:活动。控制生命周期和处理事件,统筹视图的添加与显示,控制Window和View的交互Wi...

2019-01-22 16:57:55 1944

原创 10章 RxJava源码分析

本篇文章已授权微信公众号 YYGeeker 独家发布转载请标明出处CSDN学院课程地址RxJava2从入门到精通-初级篇:https://edu.csdn.net/course/detail/10036RxJava2从入门到精通-中级篇:https://edu.csdn.net/course/detail/10037RxJava2从入门到精通-进阶篇:https://edu.csdn....

2019-01-21 21:13:26 1749

原创 9章 RxJava混合实战

本篇文章已授权微信公众号 YYGeeker 独家发布转载请标明出处CSDN学院课程地址RxJava2从入门到精通-初级篇:https://edu.csdn.net/course/detail/10036RxJava2从入门到精通-中级篇:https://edu.csdn.net/course/detail/10037RxJava2从入门到精通-进阶篇:https://edu.csdn....

2018-12-27 17:32:42 504

原创 8章 RxJava高级用法(二)

CSDN学院课程地址RxJava2从入门到精通-初级篇:https://edu.csdn.net/course/detail/10036RxJava2从入门到精通-中级篇:https://edu.csdn.net/course/detail/10037RxJava2从入门到精通-进阶篇:https://edu.csdn.net/course/detail/10038RxJava2从入门...

2018-12-15 22:43:43 1260 1

Android基础控件——Banner轮播图的无限循环轮播功能、手动滑动功能(新)

Android基础控件——Banner轮播图的无限循环轮播功能、手动滑动功能(新)

2017-03-18

iOS基础——通知代理之NSNotificationCenter、Delegate(新)

iOS基础——通知代理之NSNotificationCenter、Delegate

2017-03-17

iOS基础——数据操作之Sqlite3、FMDB

iOS基础——数据操作之Sqlite3、FMDB

2017-03-16

iOS基础——通知代理之NSNotificationCenter、Delegate

iOS基础——通知代理之NSNotificationCenter、Delegate

2017-03-14

iOS基础——实现蓝牙BLE4.0通信功能

iOS基础——实现蓝牙BLE4.0通信功能

2017-03-10

iOS基础——通过案例学知识之UITableView

iOS基础——通过案例学知识之UITableView

2017-03-09

iOS基础——通过案例学知识之UITableView(中)

iOS基础——通过案例学知识之UITableView(中)

2017-03-08

Android基础控件——Banner轮播图的无限循环轮播功能、手动滑动功能

Android基础控件——Banner轮播图的无限循环轮播功能、手动滑动功能

2017-03-08

iOS基础——通过案例学知识之UITableView(上)

iOS基础——通过案例学知识之UITableView(上)

2017-03-06

iOS基础——通过案例学知识之LaunchScreen、APPIcon、StatusBar、UIScrollView、UIPageControl

iOS基础——通过案例学知识之LaunchScreen、APPIcon、StatusBar、UIScrollView、UIPageControl

2017-03-05

iOS基础——UI控件案例之xib、plist、mvc

iOS基础——UI控件案例之xib、plist、mvc

2017-03-01

Android基础——快速开发之定制BaseTemplate

Android基础——快速开发之定制BaseTemplate

2017-02-27

Android基础——适配安卓6.0新权限系统

Android基础——适配安卓6.0新权限系统

2017-02-26

Android基础——实现安卓蓝牙2.0模块的通信功能

Android基础——实现安卓蓝牙2.0模块的通信功能

2017-02-21

Android实战——jsoup实现网络爬虫,糗事百科项目的起步

Android实战——jsoup实现网络爬虫,糗事百科项目的起步

2017-02-12

Android基础控件——ViewFlipper的使用,仿淘宝头条垂直广告条

Android基础控件——ViewFlipper的使用,仿淘宝头条垂直广告条

2017-01-07

Android进阶——Crash异常捕获并发送到服务器

Android进阶——Crash异常捕获并发送到服务器

2016-12-19

Android四大组件——BroadcastReceiver普通广播、有序广播、拦截广播、本地广播、Sticky广播、系统广播

Android四大组件——BroadcastReceiver普通广播、有序广播、拦截广播、本地广播、Sticky广播、系统广播

2016-11-26

Android四大组件——Service后台服务、前台服务、IntentService、跨进程服务、无障碍服务、系统服务

Android四大组件——Service后台服务、前台服务、IntentService、跨进程服务、无障碍服务、系统服务

2016-11-24

Android基础控件——SeekBar的使用、仿淘宝滑动验证

Android基础控件——SeekBar的使用、仿淘宝滑动验证

2016-11-22

Android自定义View——自定义插值器和估值器实现向上抛体运动

Android自定义View——自定义插值器和估值器实现向上抛体运动

2019-07-23

Android基础控件——ImageView的自定义,巧用Matrix实现图片不变形的炫酷PK条

Android基础控件——ImageView的自定义,巧用Matrix实现图片不变形的炫酷PK条

2019-04-29

Android进阶——Java注解实战之APT构建模块化的第一步

Android进阶——Java注解实战之APT构建模块化的第一步

2018-09-03

Android自定义View——拼手气转盘(新)

Android自定义View——拼手气转盘 Android自定义View——拼手气转盘

2018-08-02

Android自定义View——拼手气转盘

Android自定义View——拼手气转盘 Android自定义View——拼手气转盘

2018-02-04

Android自定义View——贝塞尔曲线实现直播点赞效果

Android自定义View——贝塞尔曲线实现直播点赞效果 Android自定义View——贝塞尔曲线实现直播点赞效果

2017-12-28

Android自定义View——仿1号店垂直滚动广告条实现

Android自定义View——仿1号店垂直滚动广告条实现 Android自定义View——仿1号店垂直滚动广告条实现

2017-12-25

Android自定义View——贝塞尔曲线实现水波纹进度球

Android自定义View——贝塞尔曲线实现水波纹进度球 Android自定义View——贝塞尔曲线实现水波纹进度球

2017-12-25

Android实战——Tinker的集成和使用

Android实战——Tinker的集成和使用 对于热修复我相信很多小伙伴都已经知道它们普遍的操作套路,Tinker主要是依赖自己的gradlePlugin生成拆分包,所以其拆分包的生成就由Gradle来完成,当然也可以通过命令行的方式,这里就不对命令行做讲解

2017-11-19

Android实战——AndFix的使用与源码分析

Android实战——AndFix的使用与源码分析 优点 1. 集成快、使用简单 2. BUG修复的即时性 3. 补丁包同样采用差量技术,生成的PATCH体积小 4. 对应用无侵入,几乎无性能损耗 缺点 1. 只支持方法的替换来修复Bug,不支持新增字段,也不支持对资源的替换 2. 由于AndFix基于Native实现的,需要适配虚拟机的稳定性与兼容性问题,更重要的是它无法实现类替换

2017-11-17

Android基础——Tween动画、Drawable动画、Property动画、MaterialDesign动画、Trasition动画

Android基础——Tween动画、Drawable动画、Property动画、MaterialDesign动画、Trasition动画

2017-11-08

Android进阶——框架打造之IOC框架

Android进阶——框架打造之IOC框架 实现通过Id找到控件的功能 实现通过Id找到Color、String资源 实现绑定view的点击事件、长按事件 实现绑定SetContentView 实现绑定网络的检测功能

2017-10-20

NDK开发——FFmpeg实现视频转YUV、视频转RGB显示、音频转PCM、音频播放、音视频同步

NDK开发——FFmpeg实现视频转YUV、视频转RGB显示、音频转PCM、音频播放、音视频同步

2017-09-30

NDK开发——FFmpeg在Linux下的编译并完成测试

前提准备 * Android Studio+Cmake+云服务器 * 这里是在阿里云服务器上编译,采用Ubuntu 16.04 64位 * 采用android-ndk-r10e-linux-x86_64.bin编译ffmpeg-2.6.9 * 采用Xshell和Xftp进行服务器的操作

2017-09-04

Android基础控件——EditText的自定义、高仿iOS的UITextField

Android基础控件——EditText的自定义、高仿iOS的UITextField

2017-06-27

Android实战——Dagger2一场老板与员工的故事会

Android实战——Dagger2一场老板与员工的故事会 [草稿]

2017-04-10

Android实战——RxJava2解锁图片三级缓存框架

Android实战——RxJava2解锁图片三级缓存框架

2017-04-07

Android实战——RxJava2+Retrofit+RxBinding解锁各种新姿势 源码下载

Android实战——RxJava2+Retrofit+RxBinding解锁各种新姿势

2017-04-03

iOS基础——网络请求之NSURLConnection、NSURLSessionDataTask

iOS基础——网络请求之NSURLConnection、NSURLSessionDataTask

2017-03-22

iOS基础——数据存储之沙盒机制、Plist、Perference、归档、反归档

iOS基础——数据存储之沙盒机制、Plist、Perference、归档、反归档

2017-03-20

空空如也

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

TA关注的人

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