自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

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

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

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

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

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

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

原创 Stable Diffusion入门修炼手册

作为新入门的新手,通常安装完Stable Diffusion之后,一打开界面,在文生图输入girl或者dog,结果出来的画面比较糟糕,看起来像素很低,画面不清晰,人物也不怎么美,等等其他问题,总之就觉得自己生成的图片怎么跟别人差距那么大?是不是大家也曾经这样过来过?今天就来教会大家,如何正确使用Stable Diffusion,掌握基础知识,能正确做出优秀的作品来,首先,先来个基本公式一个优秀的作品=CheckPoint大模型+vae+优秀的prompt+embeding+Lora。

2023-08-17 01:09:37 1592 1

原创 TensorFlow项目练手(三)——基于GRU股票走势预测任务

LSTM算法:目前使用最多的时间序列算法,是一种特殊的RNN(循环神经网络),能够学习长期的依赖关系。主要是为了解决长序列训练过程中的梯度消失和梯度爆炸问题。简单来说,就是相比普通的RNN,LSTM能够在更长的序列中有更好的表现。GRU算法:是一种特殊的RNN。和LSTM一样,也是为了解决长期记忆和反向传播中的梯度等问题而提出来的。相比LSTM,使用GRU能够达到相当的效果,并且相比之下更容易进行训练,能够很大程度上提高训练效率,因此很多时候会更倾向于使用GRU。

2023-07-31 15:28:05 1597 1

原创 TensorFlow项目练手(二)——猫狗熊猫的分类任务

通过猫狗熊猫图片来对图片进行识别,分类出猫狗熊猫的概率,文章会分成两部分,从基础网络模型->利用卷积网络经典模型Vgg。

2023-07-03 18:30:07 744

原创 TensorFlow项目练手(一)——天气预测

通过以往的天气数据和实际天气温度,做一次回归预测,模型的输入是当前的所有特征值,而模型的输出是当天的实际天气温度。

2023-06-08 10:55:23 3679 5

原创 TensorFlow入门知识

模型将应用于应用端,给他一个输入特征值,就能预测出一个答案。如果学生的答案与正确答案一致,那么损失函数会给予较低的评价,反之则会给予较高的评价。在机器学习中,我们希望模型在训练时不仅要在训练集上取得好的效果,还要在比赛数据中表现良好,并且不过度拟合训练集的噪声或异常点。在很多特征数据中,数据会有不固定的数值,多个特征之间的值相差非常大,此时就需要对数据进行归一化,让数据等比缩小成为较小的浮点数。神经网络模型的输入是一组特征,中间经过一段黑盒一层层的计算处理,输出一个预测值,整个模型的数据处理流程大概如图。

2023-06-07 18:40:10 874

原创 ANR系列(三)——ANR分析套路

在懂得了ANR的发生原理和监控原理之后,是时候针对项目中的ANR进行分析了,在分析前要知道ANR的分析套路一般是怎么分析的。

2023-04-10 19:00:03 951 1

原创 ANR系列(一)——ANR源码拆解之Input的触发

Input类型的ANR相对于ServiceBroadcastProvider实现的方式不一样,Input的ANR发生原因是输入事件分发超时,包括按键和屏幕的触摸事件。对于输入系统而言即使只有一次事件执行时间超过5s,只要用户后续没有再生成输入事件,那么也不需要ANRInput事件的ANR依赖用户输入的第一次事件有阻塞,在第二次输入的时候,系统事件分发超时才导致ANRInput的事件是需要从屏幕(输入设备)点击开始,从硬件设备驱动到应用层,涉及到的底层的交互,其中重要的角色有。

2023-03-30 20:11:05 377

原创 ANR系列(一)——ANR源码拆解之Broadcast的触发

Broadcast触发ANR和Service触发ANR原理是一样的,都是通过延迟发送超时消息的形式BroadcastReceiver广播接收分为2类静态广播:通过的标签来申明注册动态广播:通过来注册,动态注册更为灵活,可在不需要时通过取消注册广播发送方式可分为三类普通广播:通过发送,可并行处理,我们最常用的是这种有序广播:通过发送,串行处理粘性广播:通过。

2023-03-29 17:56:34 324

原创 ANR系列(一)——ANR源码拆解之Service的触发

关于Service的ANR场景还是比较少见的,它的ANR设计原理也是比较简单,在很多监控的方案中都可以看得到。

2023-03-27 17:54:52 522

原创 ANR系列(二)——ANR监听方案之SIGQUIT信号的监控

这种方案才是真正的监控ANR,matrix、xCrash都在使用这种方案,已经在国民应用微信等app上检验过,稳定性和可靠性都能得到保证。

2023-03-21 15:57:59 846

原创 ANR系列(二)——ANR监听方案之IdleHandler

关于IdleHandler,比较多同学错误地认为,这个Handler的作用是主线程空闲状态时才执行它,那么用它做一些耗时操作也没所谓。可是IdleHandler在主线程的MessageQueue中,执行默认当然也是执行在主线程中的,这里的耗时操作其实很容易引起卡顿和ANR。IdleHandler是一种在只有当消息队列没有消息时或者是队列中的消息还没有到执行时间时才会执行的IdleHandler。

2023-03-09 10:25:14 606

原创 ANR系列(二)——ANR监听方案之SyncBarrier

在项目中经常遇到了手机假死问题,无规律的偶现问题,大量频繁随机操作后,便会出现假死,整个应用无法操作,不会响应事件,会发生各种奇怪的ANR,且trace不固定。而SyncBarrier是其中的罪魁祸首之一SyncBarrier大家又称它为同步屏障,这是安卓线程消息队列里面的一个新增加的东西,它是一种Handler中的同步屏障机制。简单可以理解安卓在Hanlder的处理上增加了优先级,优先级最高的就是SyncBarrier。

2023-03-03 14:20:57 968

原创 ANR系列(二)——ANR监听方案之WatchDog

ANR的监控在Android6.0之前可以通过监听文件读取trace信息来分析,但从6.0之后就被禁止了。随着Android的发展,手机里的ANR越来越多,对ANR的监控方案也就五花八门。

2023-02-16 10:26:04 1752

原创 Transform+ASM插桩系列(1)——熟悉Java字节码

为什么要学习Java字节码呢,因为我们学的是插桩字节码技术,这块技术的根底就是字节码,要学会字节码的阅读和字节码的编写,虽然现在很多工具可以帮我们阅读和编写,但最根本的知识还是要理解的。万层楼高从地起,打好基础是关键。

2022-12-30 11:25:37 847

原创 Transform+ASM插桩系列(3)——Transform+ASM的实战

插桩的技巧中,我们要知道Transform的作用:是用来替换(或转换)ClassAMS的作用:是用来修改Class字节码两者配合起来,利用Transform将旧的class文件取出来,再用AMS修改class的字节码,最后替换成我们新的class文件先定义需要统计的耗时实体data class MethodInfo(var className : String = "" , //类名 var methodName : String = "" , //函数 var returnParam : Any?

2022-11-22 17:19:12 1856 1

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

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

2022-07-21 15:09:37 1130

原创 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 1152 1

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

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

2022-07-14 14:58:53 4070

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

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

2022-07-14 11:38:37 3218

原创 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 1947 2

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

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

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

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

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

2021-05-21 17:27:26 631 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 460

原创 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 309

原创 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 611

原创 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 359

原创 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 258

原创 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 856

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2019-12-26 00:04:05 2314

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

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

2019-12-24 16:13:13 1608 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 1120 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 1012

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

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

2019-10-17 22:45:08 955 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 685

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关注的人

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