HankingHu
码龄11年
关注
提问 私信
  • 博客:1,525,059
    社区:91
    1,525,150
    总访问量
  • 216
    原创
  • 5,119
    排名
  • 1,235
    粉丝
  • 6
    铁粉
  • 学习成就
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2013-12-28
博客简介:

有图有真相

博客描述:
一言不合就上源码
查看详细资料
  • 原力等级
    成就
    当前等级
    5
    当前总分
    1,767
    当月
    14
个人成就
  • 博客专家认证
  • 获得2,748次点赞
  • 内容获得434次评论
  • 获得6,950次收藏
  • 代码片获得2,335次分享
创作历程
  • 1篇
    2024年
  • 2篇
    2023年
  • 8篇
    2022年
  • 12篇
    2021年
  • 7篇
    2020年
  • 11篇
    2019年
  • 23篇
    2018年
  • 120篇
    2017年
  • 43篇
    2016年
成就勋章
TA的专栏
  • Android
    69篇
  • 图解算法
    47篇
  • android可视化
    3篇
  • 数据结构
    5篇
  • spring
    1篇
  • 设计模式
    5篇
  • java
    43篇
  • android
    48篇
  • 算法
    53篇
  • 数据结构
    22篇
  • Sort
    3篇
  • stack
    6篇
  • 链表
    7篇
  • 二叉树
    12篇
  • 动态规划
    9篇
  • jvm
    4篇
  • 华为机试
    23篇
  • 数组系列
    8篇
  • 公司真题
    4篇
  • 计算机网络
    4篇
  • 数据库
  • git工具使用
    5篇
  • 累进网格算法
    5篇
  • python
    2篇
  • Android自定义view
    1篇
兴趣领域 设置
  • 移动开发
    android studio
  • 软件工程
    性能优化
  • 学习和成长
    面试
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

180人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Android程序员怎么从零到一开发一个自己的AI小程序并上线

喜欢的同学可以扫码体验一下,有想交流的也可以留言。
原创
发布博客 2024.09.27 ·
1153 阅读 ·
10 点赞 ·
1 评论 ·
15 收藏

svg使用技巧

SVG 是一种基于 XML 语法的图像格式,全称是可缩放矢量图(Scalable Vector Graphics)。其他图像格式都是基于像素处理的,SVG 则是属于对图像的形状描述,所以它本质上是文本文件,体积较小,且不管放大多少倍都不会失真。
原创
发布博客 2023.08.08 ·
3444 阅读 ·
2 点赞 ·
0 评论 ·
1 收藏

Android性能优化之SharedPreference卡顿优化

下面的源码都是基于Android api 31。
原创
发布博客 2023.07.28 ·
582 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

java Thread

线程(Thread)是CPU调度和分派的基本单位。线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。 线程和进程的关系是:线程是属于进程的,线程运行在进程空间内,同一进程所产生的线程共享同一内存空间,当进程退出时该进程所产生的线程都会被强制退出并清除。线程的使用有继承Thread,和传入Runnable,FutureTask等方式2、传入runnable参数3、传入FutureTask参数跟runnable不同的是通过FutureTask.get()可以获取线程执行的返回结
原创
发布博客 2022.07.03 ·
948 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

android AsyncTask详解

AsyncTask是Android中用来执行异步执行耗时操作的框架。继承AsyncTask,并且实现doInBackground方法。其中doInBackground中进行耗时操作,比如网络请求,文件读取等。如下方法执行AsyncTask,execute方法必须在ui线程中进行,2、AsyncTask实现从AsyncTask的execute方法进行分析启动AsyncTask的方法,源码如下AsyncTask默认的Executor是sDefaultExecutor,看下sDefaultExecutor
原创
发布博客 2022.07.03 ·
1573 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

Android service

service类型android中service分为background service,bound service,foreground servce,其中background service运行在后台与ui没有交互,bound service通过service connect可以跟activity等通过binder进行数据交互,也可以进行多进程通信。 Foreground service与notification绑定,通过notification通知用户。暂时无法在飞书文档外展示此内容1、fore
原创
发布博客 2022.05.30 ·
5108 阅读 ·
1 点赞 ·
1 评论 ·
5 收藏

android aidl

1、什么是aidlAidl 全称Android Interface Definition Language,Android接口定义语言,用于定义进程之间通信协议。2、进程通信Android中系统提供了很多服务,例如AlarmManager,NotificationManager等,这些服务都在system server进程中,Android中应用有自己的进程,如下图:application所在进获取服务时需要跟system server进程进程通信。当应用想要获取AlarmManger服务时可以通
原创
发布博客 2022.05.28 ·
1003 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

Android弹性webview实现和冲突解决

弹性webview要实现webview上下滑动到顶部时做弹性动画,最终的实现效果如下:实现方案1、自定义弹性scrollview嵌套webview1、定义HScrollView继承NestedScrollView并且重写onTouchEvent方法,在onTouchEvent中处理动画。根据事件的顺序,可以在move事件中对scrollview进行弹性处理,在up中进行回弹处理,代码如下: override fun onTouchEvent(ev: MotionEvent): Boole
原创
发布博客 2022.05.17 ·
1879 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

webview之JSB通信原理

1、前言在这个移动互联网盛行的时代,移动应用的开发就需求量剧增,早期的移动端应用大都使用原生开发(android,ios),而现在的移动开发技术选型上基本都是混合开发(Hybrid),混合开发是一种开发模式,指使用多种开发模型开发App,通常会涉及到两大类技术:原生Native、Web H5。2、WebViewA View that displays web pages.webView是移动端(原生)提供的运行web的环境,它是一种嵌入式浏览器,原生应用可以用它来展示网络内容。可与页面JavaSc
原创
发布博客 2022.05.15 ·
3082 阅读 ·
1 点赞 ·
0 评论 ·
5 收藏

webview性能优化—webview预创建

webview性能优化
原创
发布博客 2022.05.15 ·
2086 阅读 ·
0 点赞 ·
0 评论 ·
5 收藏

BottomSheetDialogFragment实现弹出和消失自定义Spring动画

想要给BottomSheetDialogFragment的弹出和消失加spring动画1、遇到的问题由于是spring的动效,无法使用下面设置windowAnimations的方法来@Overridepublic void onActivityCreated(Bundle arg0) { super.onActivityCreated(arg0); getDialog().getWindow() .getAttributes().windowAnimations = R.st
原创
发布博客 2022.05.05 ·
1866 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

可以折叠Gridview

可以折叠Gridview实现原理1、折叠实现重写gridview的setAdapter方法 @Overridepublic void setAdapter(ListAdapter adapter) { if (foldNm > 0) { //进行折叠 adapter = new FoldViewGridAdapter(adapter, foldNm); } super.setAdapter(adapter
原创
发布博客 2021.12.18 ·
909 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Android调试技巧

1、定位activity有时候看到页面但是不知道页面相关的代码在哪,可以用下面两种方法快速定位1、layout inspectorLayout inspector中会已窗口的形式展示当前的activity2、adb可以通过adb打印当前显示的activity也有两种方式1、 adb -d shell dumpsys activity activities | grep mResumedActivity打印的log如下:hanking@C02CP0QNMD6V Noted-Android
原创
发布博客 2021.12.04 ·
5235 阅读 ·
1 点赞 ·
2 评论 ·
7 收藏

asm实现注解打印log

hanno_ _| | | | | |__| | __ _ _ __ _ __ ___ | __ |/ _` | '_ \| '_ \ / _ \| | | | (_| | | | | | | | (_) ||_| |_|\__,_|_| |_|_| |_|\___/通过字节码插件实现注解打印log,注解可以加在类上面,也可以加在方法上面,当加在类上面时会打印全部方法的log,当加在方法上面时打印当前方法的logHann
原创
发布博客 2021.12.03 ·
3072 阅读 ·
1 点赞 ·
0 评论 ·
4 收藏

自己动手写Android内存泄漏检测工具

内存泄漏检测对于Android来说主要泄漏的对象是activity和fragment,检测activity或者fragment的泄漏方式简单流程如下:上面的流程主要是:1、监听activity/fragment的生命周期的onDestroy事件。2、监听到activity/fragment的onDestroy后主动发起一次Gc,对象会在Gc后被回收,发起Gc后就可以针对对象是否被回收来判断是否有内存泄漏3、判断activity/fragment是否被回收4、如果有内存泄漏,生成一个内存泄漏的数据
原创
发布博客 2021.11.02 ·
660 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Android clippling使用

Android clippingClipping在Android中如果多个view嵌套的会引起overdraw,很多时候一些view被覆盖了,对用户是不可见的,但是依然会进行绘制,这个时候使用clipping来进行对不可见区域进行裁剪,可以减少overdraw提高gpu的效率。如下图所示:使用clipping rectangle就可以实现对view的裁剪。使用clipping能达到的效果clipping的使用也很简单:1、裁剪出想要渲染的部分canvas.clipRect(clipRect
原创
发布博客 2021.08.22 ·
647 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

activity启动模式你所不知道的异常情况

前言虽然了解activity的四种启动模式,但是在一些复杂场景下,各种启动模式会出现的现象,以及现象的原因可能并不清楚,再加上个taskAffinity launchMode clearTaskOnLaunch 这些参数会使得更加懵逼。所以根据在实际应用中遇到的问题总结一下。task 和 Back Stack要了解activity的启动模式,必须要先了解task以及back stack,这两个概念,因为activity不同启动模式下不同表现是跟这两个密切相关的。back stack:存放activi
原创
发布博客 2021.07.11 ·
831 阅读 ·
2 点赞 ·
1 评论 ·
0 收藏

Canvas加动画,实现火柴人跳绳效果

canvas加动画class PathDrawable extends Drawable implements AnimatorUpdateListener { private Path mPath; private Paint mPaint; private ValueAnimator mAnimator; public PathDrawable() { mPath = new Path(); mPaint = new Paint();
原创
发布博客 2021.04.13 ·
2407 阅读 ·
2 点赞 ·
4 评论 ·
3 收藏

android实现音乐跳动效果

效果图使用方法<com.masoudss.lib.DanceView android:id="@+id/danceView" android:layout_width="320dp" android:layout_height="300dp" android:layout_gravity="center" app:color_center="@color/r
原创
发布博客 2021.04.08 ·
2805 阅读 ·
2 点赞 ·
3 评论 ·
9 收藏

android中hprof文件分析

Hprof基本概念hprof最初是由J2SE支持的一种二进制堆转储格式,hprof文件保存了当前java堆上所有的内存使用信息,能够完整的反映虚拟机当前的内存状态。格式Hprof文件由FixedHead和一系列的Record组成,Record包含字符串信息、类信息、栈信息、GcRoot信息、对象信息。每个Record都是由1个字节的Tag、4个字节的Time、4个字节的Length和Body组成,Tag表示该Record的类型,Body部分为该Record的内容,长度为Length。Android
原创
发布博客 2021.04.22 ·
9651 阅读 ·
4 点赞 ·
0 评论 ·
23 收藏
加载更多