- 博客(43)
- 收藏
- 关注
原创 android 个人中心下拉弹回效果-PullscrollView
/滑动经过顶部初始位置时,修正Touchdown的坐标为当前Touch点的坐标。//修正content移动的距离,避免超过header的底边缘。//计算content移动距离(手势移动的距离*阻尼系数)//计算header移动距离(手势移动的距离。/**头部图片拖动时顶部和底部.*//**头部图片初始顶部和底部.*//**是否移动到顶部位置.*//**状态变化时的监听器.*///移动headerview。/**是否开始移动.*//**状态.*/调用Activity。
2025-01-20 10:48:06
760
原创 ndk开发的框架!Android组件化架构实践,算法太TM重要了_ndk框架
今年的面试形势不容乐观,竞争愈发激烈,进大厂的难度又增加了。但是,梦想还是要有的,万一实现了呢?这不就有一只幸运鹅。我的一个朋友,几天前,他百年不见更新的朋友圈有了新动态,他居然晒了他的offer,配的文案就是这篇文章的标题:算法太TM重要了!刷完这些题,我终于拿到了梦寐以求的大厂offer!下面有不少前来贺喜的朋友,就是发言酸溜溜的。
2025-01-18 09:40:43
330
原创 NB!这份堪称完美的JVM十全笔记,吃透轻松搞定面试、调优、装逼
Java技术的通用性、高效性、平台移植性和安全性使之成为网络计算的理想技术,从普通的PC到数据中心、从游戏控制台到科学超级计算机、从手机到互联网,Java技术无处不在。由于篇幅原因,在这只展示了每个章节的目录和内容截图,有需要这份JVM十全笔记完整文档。以及常见的面试问题深度剖析等高级的进阶方法与实战。2.HotSpot虚拟机对象探秘。正是支撑和实现这一切的秘密武器,4.HotSpot垃圾收集器。即可获取资料免费领取方式!3.垃圾收集策略与算法。
2025-01-18 09:38:41
285
原创 【学习心得】webpack技术在爬虫逆向中的应用_webpack加载器模块爬虫
IIFE 全称 Immediately-invoked Function Expressions,译为立即调用函数表达式,也称为自执行函数、立即执行函数、自执行匿名函数等,IIFE 是一种语法,这种模式本质上就是函数表达式(命名的或者匿名的)在创建后立即执行。JavaScript 中的 call() 和 apply() 方法都是函数对象(Function.prototype)上的方法,它们的主要功能是改变函数调用时的上下文环境(即函数内部 this 的指向),同时允许你传递参数给该函数。
2025-01-14 17:31:30
799
原创 【大虾送书第十期】从不了解用户画像,到用画像数据赋能业务看这一本书就够了_数据赋能用户画像
在大数据时代,如何有效地挖掘数据价值并通过画像数据进行呈现,如何基于画像数据构建平台功能并提高业务产出,是值得各类公司和业务人员思考并付诸实践的事情。通过画像释放大数据价值。大数据时代不缺少数据,而是缺乏挖掘数据价值的系统性方法,希望借助本书提高读者对画像的认识,引导各公司和业务人员从画像的角度更加充分地利用大数据资源并释放更多的数据价值。介绍清楚画像平台是什么。通过本书将画像平台的构建过程以及赋能业务的方式讲清楚,帮助读者全面且深入地了解画像平台。
2025-01-14 17:27:49
358
原创 Linux内核 防御机制分析_内核栈保护机制
首先介绍几种linux下的防护机制,就像用户空间程序使用的ASLR、栈金丝雀、PIE等防御机制一样,内核也有自己的一套防御机制。以下是我在学习内核pwn时涉及到的一些流行的、著名的Linux内核防御机制:内核堆栈cookie(或金丝雀):这与用户空间的堆栈金丝雀机制完全一样。在编译时,内核就会启用该功能,并且无法禁用。内核地址空间布局随机化(KASLR):也跟用户空间的ASLR一样,在每次系统启动时,该机制会将加载内核的基地址随机化。
2025-01-11 23:24:30
672
原创 Linux入门基础完整版【详解】
Linux是一个免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多 CPU性能稳定的网络操作系统。linux的内核最初是由一个芬兰的大学生因为个人兴趣爱好而编写的,这个大学生的名字叫林纳斯托瓦兹(目前市面上较知名的发行版有:UbuntuRedHatCentOSDebianFedoraSuSE、OpenSUSEArchLinux、SolusOS等,其中这个。
2025-01-11 23:20:49
1205
原创 Android 自定义谷歌风格ProgressBar
speed);.getFloat(speed);false);break;break;break;default:// colors= 0) {= null) {if (colors!else= 0) {if (colors!0));0));.getFloat(0));false));false));false)) {break;break;break;break;
2025-01-10 08:46:07
478
原创 Android 正 N 边形圆角头像的实现
参数 | 说明 || — | — || type | 相应的值有 circle,round,polygon || miv_border_width | 表示边界 Path 的宽度 (默认值是 0 ) || miv_border_color | 表示边界 Path 的 Color || miv_border_overlay | 表示边界 Path 是否要覆盖在图片上面 || miv_fill_color | 表示填充圆的颜色,默认是 Translate,即不可见 |
2025-01-10 08:42:26
904
原创 Android 本地网络小说爬虫,基于 jsoup 及 xpath
put(SourceID.ZHUISHU, new Source(SourceID.ZHUISHU, “追书网”, “https://www.zhuishu.tw/search.aspx?put(SourceID.BIQUG, new Source(SourceID.BIQUG, “笔趣阁”, “http://zhannei.baidu.com/cse/search?
2025-01-10 08:38:44
901
原创 Django面试题_django面试题目
FBV(function base views)就是在视图函面使用函数处理请求CBV(class base views)就是在视图里面使用类处理请求。
2024-12-20 17:12:14
967
原创 Django7—表单form_django form 中class myform(form) label=“部门名称”initia
有时候对一个字段验证,不是一个长度,一个正则表达式能够写清楚的,还需要一些其他复杂的逻辑,那么我们可以对某个字段,进行自定义的验证。比如在注册的表单验证中,我们想要验证手机号码是否已经被注册过了,那么这时候就需要在数据库中进行判断才知道。。如果验证失败,那么就抛出一个验证错误。这段代码比较重要(起到举一反三的效果) 在实际开发中要学会灵活的使用 提高代码质量 提升业务性能。
2024-12-20 17:08:32
674
原创 DFS和BFS总结和代码演示(详解)
这里的代码演示 我是将顶点的序号从 0 开始的//一些量的定义queue q;//用于表示已经访问过的结点//邻接矩阵储存表示int NV;int NE;}gnode;//创建图int i,j;//邻接矩阵初始化i < G->NV;j++){//两点之间没有边相连 用 0 来表示 ,如果有边用 1 来表示k < G->NE;k++){//两点之间有边 赋值为一;//BFS遍历//a = 0;//表示从0这个点开始遍历;
2024-12-20 17:01:10
884
原创 DDOS攻击搞瘫了业务服务器,老板要扣我一月工资,还说
前部分会带你梳理 TCP/IP 模型和网络函数接口之间的联系,通过实例展开对套接字、套接字缓冲区、拥塞控制、数据包和数据流、本地套接字(UNIX 域套接字)等的讨论,交付给你一个全面细致的知识体系。性能篇和实战篇,将会带你深入研究 C10K 问题,引入进程、线程、多路复用、非阻塞、异步、事件驱动等现代高性能网络编程所需要的技术,结合实例上手操作,教你写出高性能的网络程序。比如,对 TCP 数据流的处理、半关闭的连接、TCP 连接有效性的侦测、处理各种异常情况等,这些问题决定了程序的健壮性。
2024-12-20 16:57:28
259
原创 Android Lifecycles组件(生命周期感知组件)的简单使用
例如,如果LifecycleOwner在Lifecycle.State.STARTED状态,给定的观察者会收到Lifecycle.Event.ON_CREATE,Lifecycle.Event.ON_START事件。如果给定的观察者使用多种方法来观察当前调度的事件,并且至少有一个接收到该事件,则所有这些人都将接收到该事件,然后将其删除。请注意,如果的currentState状态与上次对此方法的调用相同,则调用此方法无效。如果给定的观察者尚未接收到该事件,它将不会接收到该事件。
2024-12-20 01:38:23
870
原创 Android Dialog 的一些使用和优化心得(DialogFragment的使用和优化)
Nullable@Override@Override= null)= null)布局:
2024-12-20 01:31:00
486
原创 Android AOSP 6
repo sync这还不够,因为很有可能出错跳出来了,我们需要一个脚本,在出问题的情况下再次执行repo sync,在当前需要下载源码的目录下新建down.sh文件,直接使用vi命令即可。vi down.sh接下来,在vi编辑器内输入下面这段脚本代码,保存退出。-ne 0 ]dorepo syncdone用这段脚本执行,替换repo sync这条命令。./down.shN个小时过去后,终于下载好了。
2024-12-20 01:23:38
580
原创 Android 11 微信,QQ ,微博 分享适配
具体的适配在这个目录下面有pdf 文档,适配起来还是挺顺畅的,因为我没有多图分享,微博多图分享,如下逻辑,但是我没有在文档里面看到相关配置信息 getExternalFilesDir(null) 这个在一点配置说明,就很尴尬!这个方法,那需要注意这个路径必须是上面获取的content://URI的形式,当然这个路径需要对图片进行存储操作的,不然文件为空,分享出去是黑屏。QQ 适配起来就很顺畅,没啥大问题,赞!这里有一行说明,在对应xml 配置里面下面的路径要写在第一行。这次是对了,照着进行适配即可;
2024-12-20 01:19:56
596
原创 Android OOM与 leak window
这个时候要是你继续生白手起家的百万富翁成一个10M的int数组是没有问题的,反而生成一个4M的Bitmap就会跳出OOM。而Bitmap的生成是路程经过过程malloc进行内存分配的,占用的是C的内存,这个也就说明了,上面所说的的4MBitmap无法生成的原因,因为在13M被Java用过后,剩下C能用的只有3M了。这个问题困扰好久,在网上,国外各大论坛搜刮了好久,一般关于OOM的解释和解决方法都是,如何让GC尽快回收的代码风格之类,并没有现实的支出上面所说的情况的根源。
2024-12-20 01:12:34
360
原创 Android Activity 启动流程分析_android activity工作流程
/根据前面传入的参数解析一下必要的信息,并开始启动 Activity。//创建的时候传入了 ActivityThread 实例。//设置 LaunchFlags 到 intent 上。* ActivitySatrter 最大数量。//检测Activity启动的权限。//设置 Activity 的栈。//处理生命周期状态。//处理生命周期状态。//执行生命周期状态。
2024-12-20 01:08:53
850
原创 Ambari部署Atlas
Atlas配置为使用此群集中安装的HBase。如果您希望Atlas使用另一个HBase实例,请在Atlas env中适当地配置此属性和HBASE_CONF_DIR变量。登录Atlas ambari-03:21000/login.jsp admin admin123。重要提示:关闭此向导后,请重新启动服务名称旁边有重新启动指示器的所有服务。这里是HBase主堆大小没达到最小设置值,可以不用改,分配从站和客户端,选择客户端全节点安装 Next。验证HBase表是否创建。验证Solr集合是否创建。
2024-12-20 01:05:11
343
原创 JVM面试速补:知识点梳理+学习路线+学习笔记+真题解析,够不够?
给大家介绍一本学习书籍**《Java虚拟机:JVM高级特性与最佳实践》454页的PDF,分为5个部分:走近java、启动内存管理机制、虚拟机执行子系统、程序编译与代码优化、高效并发。内存区,将内存划分成若干个区以模拟实际机器上的存储、记录和调度功能模块,如实际机器上的各种功能的寄存器或者 PC 指针的记录器等。注意注意:无论是下面分享的JVM知识点梳理,还是学习路线,学习笔记,或者真题解析,都可以免费分享出来跟大家一起学习,对象创建方法,对象的内存分配,对象的访问定位?好吧,下面来看看JVM的知识点梳理!
2024-12-17 20:42:45
661
原创 JVM进阶(六):鲜为人知的二次标记_java虚拟机 gc为什么需要2次标记
针对这个问题,虚拟机的做法是进行两次标记,即第一次标记不在“关系网”中的对象。第二次的话就要先判断该对象有没有实现finalize()方法了,如果没有实现就直接判断该对象可回收;如果实现了就会先放在一个队列中,并由虚拟机建立的一个低优先级的线程去执行它,随后就会进行第二次的小规模标记,在这次被标记的对象就会真正的被回收了。大家觉得结果会输出什么?最后的结果是:我被调用啦我还活着我挂啦有木有觉得很诧异,明明调用了两次同样的方法,但输出怎么不同呢?
2024-12-17 20:39:03
367
原创 JVM基础(持续更新)
Program Counter Register 程序计数器(寄存器)Java Virtual Machine Stacks(Java 虚拟机栈)每个线程运行时需要内存,称为虚拟机栈每个栈由多个栈帧(Frame)组成、对应着每次方法调用时所占用的内存每个线程只能有一个活动栈帧,对应着正在执行的那个方法。
2024-12-17 20:35:22
806
原创 js获取 元素 和 节点 大全
获取元素通过ID获取(通过name属性(通过标签名(通过类名(通过选择器获取一个元素(通过选择器获取一组元素(获取html的方法(获取body的方法(上下文必须是document。必须传参数,参数是string类型,是获取元素的id。返回值只获取到一个元素,没有找到返回null。参数是元素的类名。返回值是一个类数组,没有找到返回空数组参数是是获取元素的标签名属性,不区分大小写。返回值是一个类数组,没有找到返回空数组参数是选择器,如:”div .className”。
2024-12-17 20:31:41
862
原创 js的数独游戏(dfs)
/先便利原二维数组,得到缓存row、col、box、cb,如果是’.‘就给个[’.']//nums返回的数组可能长度为0、1、或者多个,要么来源于初始,要么来源于cb。//如果这个数字不能用,不好意思只能弹出,不能影响接下来的判断。//以上三个缓存用来排除,并且持续维护,每个里面有至多9个栈。//如果不满足递归正确的条件,则说明现在为止的数字都是不对的。//如果本来九宫格有数字就用它,没有则说明是需要填的。//用于判断一个数字是否在缓存中,不在就返回true。//如果只有一个数字,到了终点,说明结束了。
2024-12-17 20:27:57
416
原创 Android 实现水印背景效果
param textColor 字体颜色(默认:#33000000)@param textColor 字体颜色(默认:#33000000)@param textColor 字体颜色(默认:#33000000)@param textColor 文字颜色(默认:#33000000)@param textBold 是否粗体(默认:false)@param textBold 是否粗体(默认:false)@param textBold 是否粗体(默认:false)
2024-12-17 03:26:14
709
原创 Android 华为推送服务集成
我的AS是3.5.2的,如果你的AS还是低于3.X以下的版本,比如2.X的版本的话,你就需要升级AS了,可以参考我写的关于AS安装配置的文章,里面有详细的说明。这里会一步一步的检查你的所有配置,如果出现检查不通过的项,请根据界面提示和点击“Link”手动设置,如下图所示。当你的AS的右下角出现这样的提示时,说明你的APK构建成功了,这个APK你是可以发给其他人的,都是可安装的。点击这个Generate按钮,会创建SHA56指纹,这里的指纹和你之前通过jks生成的是一致,如果不一致,说明你的jks不对。
2024-12-17 03:22:31
1177
原创 Android 从StackTraceElement反观Log库
还有就是一些统计PV相关的SDK,会强制要求在某些方法中执行某个方法,例如,必须在Activity.onResume中执行,PVSdk.onResume,如果你之前遇到过某个SDK给你抛了类似的异常,那么它的原理就是这么实现的。你可以理解为当我们调用方法的时候,每进入一个方法,会将该方法的相关信息(例如:类名,方法名,方法调用行数等)存储下来,压入到一个栈中,当方法返回的时候再将其出栈。观察上面的信息,因为我们的入口是L类的方法,所以,我们直接遍历,L类相关的下一个。
2024-12-17 03:18:50
735
原创 Android 串口开发(二) 支持设置奇偶校验、数据位、停止位
同样修改后发现居然运行不起来,百度上找了一大堆文章都没能解决问题,想起来之前一位同事说简书要比csdn上的可靠,所以一大早来到公司就上简书搜索,果然不出所料,才看了两篇就找到想要的答案了,就是上面参考的那位大哥的文章,文章不繁琐,结构清晰,做过硬件开发的Android或者玩过串口的朋友一看就知道怎么回事,好了废话不多说,在这里还有两个文件没有贴出来,下面贴一下serial-port.cpp代码。,下面这边文章也仅仅是作为自己的一个踩过的坑的记录,本篇文章主要参考了一位简书上的大哥的文章,
2024-12-17 03:15:09
224
原创 Android Studio—PullToRefresh 框架
下拉刷新这个功能我们都比较常见了,今天介绍的就是这个功能的实现。2.使用OnRefreshListener回调在 onRefresh方法中触发加载数据操作.实现下拉监听.设置下拉刷新的模式,有多重方式可选。无刷新功能,从顶部刷新,从底部刷新,二者都有,只允许手动刷新。顶部指示箭头的图片,设置后会覆盖ptrDrawable中顶部的设置。当设置rotate时,可以用这个来设置刷新时旋转的图片。设置下拉时标识图的动画,默认为rotate。插入PullToRefreshListView。设置刷新view的背景。
2024-12-17 03:07:46
786
原创 Android Studio 项目导入的正确姿势
jcenter()// 第二步,注释// 第一步,修改版本号// 第三步 ,注释不相关的版本发布jcenter()// 第二步,注释注意,一定要注意不要轻易删除某些东西。
2024-12-17 03:04:05
913
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人