自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(82)
  • 收藏
  • 关注

原创 Thinkphp中where()条件的使用

题外话,我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在IT学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多程序员朋友无法获得正确的资料得到学习提升,故此将并将重要的Android进阶资料包括自定义view、性能优化、MVC与MVP与MVVM三大框架的区别、NDK技术、阿里面试题精编汇总、常见源码分析等学习资料。【Android思维脑图(技能树)】

2024-05-17 00:24:57 411

原创 ReactNative 常用开源组件

以下是资料目录和内容部分截图里面包括详细的知识点讲解分析,带你一个星期入门Flutter。还有130个进阶学习项目实战视频教程,让你秒变大前端。《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!n]( )以下是资料目录和内容部分截图[外链图片转存中…(img-yJNJ49ug-1715865767896)][外链图片转存中…(img-ibkQFN43-1715865767898)]里面包括详细的知识点讲解分析,带你一个星期入门Flutter。

2024-05-16 21:23:01 746

原创 OkHttp框架入门笔记

(包括Java在Android开发中应用、APP框架知识体系、高级UI、全方位性能调优,NDK开发,音视频技术,人工智能技术,跨平台技术等技术资料),希望能帮助到你面试前的复习,且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。针对于上面的问题,我总结出了互联网公司Android程序员面试涉及到的绝大部分面试题及答案,并整理做成了文档,以及系统的进阶学习视频资料。平台技术等技术资料),希望能帮助到你面试前的复习,且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。

2024-05-16 18:31:15 385

原创 LeakCanary核心源码解析

关于gc的补充点这里补充一点东西,也是之前被某厂问到了,当时没答出来的,主要是之前没看那么细,后面又翻了一下源码。当时问的是上面gc的时候,是怎么gc的?第二次removeWeaklyReachableReferences是什么时候触发的?当时想的是gc不都是System.gc嘛,还能有什么骚操作?回来打开一下源码,咦,发现还真有。。那从GCTrigger入手了。发现runGc里面不是直接调用System.gc的,用了一个Runtime.getRuntime().gc(),这是啥?

2024-05-16 16:49:28 386

原创 Kotlin(2)-泛型与集合(1)

*要想成为高级安卓工程师,必须掌握许多基础的知识。**在工作中,这些原理可以极大的帮助我们理解技术,在面试中,更是可以帮助我们应对大厂面试官的刁难。《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!**要想成为高级安卓工程师,必须掌握许多基础的知识。**在工作中,这些原理可以极大的帮助我们理解技术,在面试中,更是可以帮助我们应对大厂面试官的刁难。[外链图片转存中…(img-VnL0ve6h-1715845219041)]

2024-05-16 15:40:32 303

原创 ItemTouchHelper 实现交互动画

如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。欢迎大家一起交流讨论啊~《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!m srcPosition 拖拽的item的position@param targetPosition 目的地的Item的position@return 开发者处理了操作应该返回true,开发者没有处理就返回false。

2024-05-16 14:02:46 406

原创 Handler消息机制(二):一个线程有几个Handler

在消息机制里面,有一个非常重要的东西,那就是Looper,Looper的作用主要是从消息队列里面取出消息交给Handler处理,不过不仅限于此,在这里面还有很多东西值得我们去源码看一看:要在一个线程里面处理消息,代码如下:class LooperThread extends Thread{public Handler mHandler;public void run(){Looper.prepare();mHandler = new Handler(){public void handleMessage(M

2024-05-16 12:39:29 344

原创 Framework 底层学习:一个浅显易懂的WMS介绍

那我们该怎么做才能做到年薪60万+呢,对于程序员来说,只有不断学习,不断提升自己的实力。我之前有篇文章提到过,感兴趣的可以看看,到底要学习哪些知识才能达到年薪60万+。通过职友集数据可以查看,以北京 Android 相关岗位为例,其中 【20k-30k】 薪酬的 Android 工程师,占到了整体从业者的 30.8%!北京 Android 工程师「工资收入水平 」今天重点内容是怎么去学,怎么提高自己的技术。1.合理安排时间2.找对好的系统的学习资料3.有老师带,可以随时解决问题。

2024-05-16 10:55:36 291

原创 NDK开发(三):增量更新

我一直以来都有整理练习大厂面试题的习惯,有随时跳出舒服圈的准备,也许求职者已经很满意现在的工作,薪酬,觉得习惯而且安逸。不过如果公司突然倒闭,或者部门被裁减,还能找到这样或者更好的工作吗?我建议各位,多刷刷面试题,知道最新的技术,每三个月可以去面试一两家公司,因为你已经有不错的工作了,所以可以带着轻松的心态去面试,同时也可以增加面试的经验。我可以将最近整理的一线互联网公司面试真题+解析分享给大家,大概花了三个月的时间整理2246页,帮助大家学习进步。

2024-05-16 01:25:31 302

原创 Kotlin开发中的一些Tips

现在随着短视频,抖音,快手的流行NDK模块开发也显得越发重要,需要这块人才的企业也越来越多,随之学习这块的人也变多了,音视频的开发,往往是比较难的,而这个比较难的技术就是NDK里面的技术。音视频/高清大图片/人工智能/直播/抖音等等这年与用户最紧密,与我们生活最相关的技术一直都在寻找最终的技术落地平台,以前是windows系统,而现在则是移动系统了,移动系统中又是以Android占比绝大部分为前提,所以AndroidNDK技术已经是我们必备技能了。

2024-05-15 23:49:09 1048

原创 Kotlin 入门到精通 扩展(五)

最后为了帮助大家深刻理解Android相关知识点的原理以及面试相关知识,这里放上相关的我搜集整理的24套腾讯、字节跳动、阿里、百度2019-2021BAT 面试真题解析,我把大厂面试中常被问到的技术点整理成了视频和PDF(实际上比预期多花了不少精力),包知识脉络 + 诸多细节。还有 高级架构技术进阶脑图 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。Android 基础知识点Java 基础知识点Android 源码相关分析常见的一些原理性问题。

2024-05-15 22:41:36 776

原创 iOS性能优化实践:头条抖音如何实现OOM崩溃率下降50%+(2)

对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长。而不成体系的学习效果低效漫长且无助。时间久了,付出巨大的时间成本和努力,没有看到应有的效果,会气馁是再正常不过的。所以学习一定要找到最适合自己的方式,有一个思路方法,不然不止浪费时间,更可能把未来发展都一起耽误了。如果你是卡在缺少学习资源的瓶颈上,那么刚刚好我能帮到你。《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

2024-05-15 19:49:55 339

原创 Handler消息机制(三):一个线程有几个Looper?如何保证?

考虑到文章的篇幅问题,我把这些问题和答案以及我多年面试所遇到的问题和一些面试资料做成了PDF文档《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!T)e.value;如果获取的ThreadLocalMap这个map不为空,则以ThreadLocal的引用作为Key,在map中获取对应的Entry对象;如果获取的Entry对象也不为空的话,把它的value值返回出来。在该方法的最后一句,也就是说当map为空的时候,则直接返回这个方法的结果。

2024-05-15 18:28:52 397

原创 Framework 底层学习:一个浅显易懂的WMS介绍

那我们该怎么做才能做到年薪60万+呢,对于程序员来说,只有不断学习,不断提升自己的实力。我之前有篇文章提到过,感兴趣的可以看看,到底要学习哪些知识才能达到年薪60万+。通过职友集数据可以查看,以北京 Android 相关岗位为例,其中 【20k-30k】 薪酬的 Android 工程师,占到了整体从业者的 30.8%!北京 Android 工程师「工资收入水平 」今天重点内容是怎么去学,怎么提高自己的技术。1.合理安排时间2.找对好的系统的学习资料3.有老师带,可以随时解决问题。

2024-05-15 17:01:08 285

原创 [译] 全新 Android 注入器 _ Dagger 2(三)(2)

由于文章篇幅原因,我只把面试题列了出来,详细的答案,我整理成了一份PDF文档,这份文档还包括了还有高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 ,帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习。《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

2024-05-15 16:04:04 262

原创 TCP_UDP协议详解

UDP的校验和是把首部和数据部分一起校验,发送方计算校验和的一般步骤:接收方收到用户数据报后,连同伪首部一起,按二进制反码求这些16位字的和,无差错结果是应全为1.否则出错,直接丢弃该报文。TCP协议作为传输层主要协议之一,具有面向连接,端到端,可靠的全双工通信,面向字节流的数据传输协议。虽然TCP面向字节流,但TCP传输的数据单元却是报文段。TCP报文段分为TCP首部和数据部分,TCP报文段首部的前20个字节是固定的,后面有4*n字节根据需要动态添加的选项,最大长度为40字节。三次握手图例如下,与文字解释

2024-05-15 13:49:42 676

原创 ReactNative动画效果分析(仅从Android端源代码进行分析)(1)

给大家分享一份移动架构大纲,包含了移动架构师需要掌握的所有的技术体系,大家可以对比一下自己不足或者欠缺的地方有方向的去学习提升;《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!@Override给大家分享一份移动架构大纲,包含了移动架构师需要掌握的所有的技术体系,大家可以对比一下自己不足或者欠缺的地方有方向的去学习提升;[外链图片转存中…(img-aBPuTiWY-1715746138035)]

2024-05-15 12:09:10 264

原创 OkHttp初探:如何使用OkHttp进行Get或Post请求?Kotlin版本。

针对于上面的问题,我总结出了互联网公司Android程序员面试涉及到的绝大部分面试题及答案,并整理做成了文档,以及系统的进阶学习视频资料。(包括Java在Android开发中应用、APP框架知识体系、高级UI、全方位性能调优,NDK开发,音视频技术,人工智能技术,跨平台技术等技术资料),希望能帮助到你面试前的复习,且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。

2024-05-15 07:05:56 742

原创 Launcher3 安装App加载显示过程分析

public void onPackagesUnsuspended(String[] packageNames, UserHandle user) {mCallback.onPackagesUnsuspended(packageNames, user);}@Overridepublic void onShortcutsChanged(@NonNull String packageName,@NonNull List shortcuts,@NonNull UserHandle user) {List shor

2024-05-15 05:22:40 983

原创 Kotlin 的语法和高级特性

这看不出啥区别,当需求发生变化,我想在回调方法中加个类型的参数,该如何实现呢?1.2 带参示例// 定义接口interface Consumer {fun accept(way: String)}fun main() {pay(Consumer {println(“回调函数…it=$it”)})pay{println(“高阶函数…it=$it”)}}fun pay(block: Consumer) {println(“before block”)block.accept(“支付宝”)println(“end

2024-05-15 04:15:09 845

原创 iOS性能优化实践:头条抖音如何实现OOM崩溃率下降50%+

pageSize:指的是当前设备物理内存页的大小,当前设备是,大小是 16KB,苹果 A7 芯片之前的设备物理内存页大小则是 4KB。states:当前应用的运行状态,对于这个应用而言是正在前台运行的状态,这类崩溃我们称之为(Foreground Out Of Memory);与此相对应的也有应用程序在后台发生的 OOM 崩溃,这类崩溃我们称之为(Background Out Of Memory)。rpages:是的缩写,表明进程当前占用的内存页数量,Heimdallr-Example 这个应用占用的内存页

2024-05-15 02:38:01 634

原创 Handler消息机制(三):一个线程有几个Looper?如何保证?

考虑到文章的篇幅问题,我把这些问题和答案以及我多年面试所遇到的问题和一些面试资料做成了PDF文档《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!T)e.value;如果获取的ThreadLocalMap这个map不为空,则以ThreadLocal的引用作为Key,在map中获取对应的Entry对象;如果获取的Entry对象也不为空的话,把它的value值返回出来。在该方法的最后一句,也就是说当map为空的时候,则直接返回这个方法的结果。

2024-05-15 01:15:55 341

原创 Framework 底层学习:一个浅显易懂的WMS介绍

那我们该怎么做才能做到年薪60万+呢,对于程序员来说,只有不断学习,不断提升自己的实力。我之前有篇文章提到过,感兴趣的可以看看,到底要学习哪些知识才能达到年薪60万+。通过职友集数据可以查看,以北京 Android 相关岗位为例,其中 【20k-30k】 薪酬的 Android 工程师,占到了整体从业者的 30.8%!北京 Android 工程师「工资收入水平 」今天重点内容是怎么去学,怎么提高自己的技术。1.合理安排时间2.找对好的系统的学习资料3.有老师带,可以随时解决问题。

2024-05-14 23:47:58 798

原创 wap网站制作教程

Android架构学习进阶是一条漫长而艰苦的道路,不能靠一时激情,更不是熬几天几夜就能学好的,必须养成平时努力学习的习惯。所以:贵在坚持!上面分享的字节跳动公司2020年的面试真题解析大全,笔者还把一线互联网企业主流面试技术要点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。就先写到这,码字不易,写的很片面不好之处敬请指出,如果觉得有参考价值的朋友也可以关注一下我。

2024-05-14 21:38:51 947

原创 RxJava再学习系列一

Android学习是一条漫长的道路,我们要学习的东西不仅仅只有表面的 技术,还要深入底层,弄明白下面的 原理,只有这样,我们才能够提高自己的竞争力,在当今这个竞争激烈的世界里立足。人生不可能一帆风顺,有高峰自然有低谷,要相信,那些打不倒我们的,终将使我们更强大,要做自己的摆渡人。资源持续更新中,欢迎大家一起学习和探讨。《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

2024-05-14 19:46:40 603

原创 Qemu架构解析(二)

从本质上看,虚拟出的每个虚拟机对应 host 上的一个 Qemu 进程,而虚拟机的执行线程(如 CPU 线程、I/O 线程等)对应 Qemu 进程的一个线程。下面通过一个虚拟机启动过程看看 Qemu 是如何与 KVM 交互的。// 第一步,获取到 KVM 句柄kvmfd = open(“/dev/kvm”, O_RDWR);// 第二步,创建虚拟机,获取到虚拟机句柄。vmfd = ioctl(kvmfd, KVM_CREATE_VM, 0);// 第三步,为虚拟机映射内存,还有其他的 PCI,信号处理的初始

2024-05-14 18:23:37 954

原创 MVPArms官方快速组件化方案开源,来自5K star的信赖(1)

好了, 进入正题!组件化简单概括就是把一个功能完整的App或模块拆分成多个子模块, 每个子模块可以独立编译和运行, 也可以任意组合成另一个新的App或模块, 每个模块即不相互依赖但又可以相互交互, 遇到某些特殊情况甚至可以升级或者降级这里我特地整理了一份《Android开发核心知识点笔记》,里面就包含了自定义View相关的内容除了这份笔记,还给大家分享Android学习PDF+架构视频+面试文档+源码笔记,高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料这几块的内容。

2024-05-14 16:57:07 1063

原创 Kotlin学习日志(二)数据类型(1)

很多人在刚接触这个行业的时候或者是在遇到瓶颈期的时候,总会遇到一些问题,比如学了一段时间感觉没有方向感,不知道该从哪里入手去学习,对此我整理了一些资料如果你熟练掌握以下列出的知识点,相信将会大大增加你通过前两轮技术面试的几率!这些内容都供大家参考,互相学习。①「Android面试真题解析大全」PDF完整高清版+②「Android面试知识体系」学习思维导图压缩包《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

2024-05-14 15:26:27 622

原创 JWT在Java和Android中的使用(1)

String keyId = jwt.getKeyId();//Private ClaimsClaim claim = jwt.getHeaderClaim(“owner”);/***///Returns the Issuer value or null if it’s not defined in the Payload.String issuer = jwt.getIssuer();//Returns the Subject value or null if it’s not defined in th

2024-05-14 14:15:08 826

原创 Handler源码分析之二 异步消息的处理

再来看看removeSyncBarrier()://这个token就是我们上面保存的public void removeSyncBarrier(int token) {synchronized (this) {//遍历删除这个token对应的msgMessage prev = null;Message p = mMessages;//只要p.target!=null || p.arg1!=token就一直找,因为上面我们分析了同步屏障的target=null,并且arg1=tokenwhile

2024-05-14 02:57:51 670

原创 FrameWork内核解析之Handler消息机制(二)

细心的朋友可能早早就发现了,之前抛出异常的地方讲解了半天的Loop.prepare()方法,一直没有说到Loop.loop()方法。同时,在之前的例子中也看到了,如果不调用Looper.loop()方法,Handler是接受不到消息的,所以我们可以大胆的猜测,消息的获取肯定和它脱不了关系!最重要的是,勇敢的去追随自己的心灵和直觉,只有自己的心灵和直觉才知道你自己的真实想法,其他一切都是次要。最重要的是,勇敢的去追随自己的心灵和直觉,只有自己的心灵和直觉才知道你自己的真实想法,其他一切都是次要。

2024-05-14 01:27:01 615

原创 zookeeper原理篇-Zookeeper的数据存储与恢复原理

这里附上上述的技术体系图相关的几十套腾讯、头条、阿里、美团等公司2021年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。

2024-05-13 20:30:05 702

原创 TCP粘包半包问题和解决

从 IP 传过来的 IP包对于以太网来说就是数据。给这些数据附加上以太网首部并进行发送处理,生成的以太网数据包将通过物理层传输给接收端。经过层层转发后,服务器就会收到我们的请求报文,经过4-3-2-1的顺序将网络上传递的数据包再变成我们服务端程序可以处理的数据,整个过程如图所示:但是在实际发送时有可能发生所谓的粘包和半包这种现象,比如:假设客户端分别发送了两个数据包D1和D2给服务端,可能存在以下4种情况。(1)服务端分两次读取到了两个独立的数据包,分别是D1和D2,没有粘包和半包;(2)服务端一次接收到

2024-05-13 18:49:50 300

原创 Realm数据库使用教程(一):Realm配置和Stetho配置

由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!由于整个文档比较全面,内容比较多,篇幅不允许,下面以截图方式展示。《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!使用Stetho在Chrome上直接调试android应用数据库&Okhttp网络请求到此Realm配置和Stetho配置基本完成,是否对你有所帮助呢?增删改查请看后续文章。Realm数据库使用教程(二):增加数据。

2024-05-13 17:09:57 795

原创 MPAndroidChart 教程:动态和实时数据 Dynamic & Realtime Data(八)

MPAndroidChart 教程:概述MPAndroidChart 教程:开始 Getting Started(一)MPAndroidChart 教程:与图表进行手势交互 Interaction with the Chart(二)MPAndroidChart 教程:坐标轴,X轴,Y轴,Labels(三)MPAndroidChart 教程:设置数据,设置颜色(四)MPAndroidChart 教程:数据格式器 ValueFormatter(五)MPAndroidChart 教程:图表的具体设置 Specif

2024-05-13 14:37:06 1071

原创 Kotlin学习日志(一)TextView、Button、Toast的使用(1)

针对Android程序员,我这边给大家整理了一些资料,包括不限于高级UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter等全方面的Android进阶实践技术;希望能帮助到大家,也节省大家在网上搜索资料的时间来学习,也可以分享动态给身边好友一起学习!Android前沿技术大纲全套体系化高级架构视频Android高级架构资料、源码、笔记、视频。

2024-05-13 13:10:37 542

原创 JVM的内存结构详解

程序计数器/寄存器: 我们在程序中无法控制堆:存放用new产生的数据(对象实例和数组)栈:基本数据类型和对象的引用, 对象本身是不存放在栈中的,而是存放在堆中方法区: 存放在对象中用static定义的静态成员(全局变量和静态变量)和常量GitHub。

2024-05-13 12:00:06 404

原创 Handler消息机制(九):IntentService源码解析

HandlerThread的原理已经分析完了,我们来总结一下它的特点:1.HandlerThread它就是一个线程,和开启普通的线程得到操作一致2.HandlerThread需要搭配Handler使用,单独使用的意义不大3.HandlerThread会将通过handleMessage传递进来的任务进行串行执行,这是由messageQueue的特性决定的,从而也说明了HandlerThread效率相比并行操作会比较低IntentService的使用和原理。

2024-05-13 09:03:45 362

原创 Framework 底层学习:一个浅显易懂的WMS介绍

那我们该怎么做才能做到年薪60万+呢,对于程序员来说,只有不断学习,不断提升自己的实力。我之前有篇文章提到过,感兴趣的可以看看,到底要学习哪些知识才能达到年薪60万+。通过职友集数据可以查看,以北京 Android 相关岗位为例,其中 【20k-30k】 薪酬的 Android 工程师,占到了整体从业者的 30.8%!北京 Android 工程师「工资收入水平 」今天重点内容是怎么去学,怎么提高自己的技术。1.合理安排时间2.找对好的系统的学习资料3.有老师带,可以随时解决问题。

2024-05-13 07:34:57 892

原创 zookeeper原理篇-Zookeeper的数据存储与恢复原理

这里附上上述的技术体系图相关的几十套腾讯、头条、阿里、美团等公司2021年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。

2024-05-13 03:34:52 1058

空空如也

空空如也

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

TA关注的人

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