- 博客(125)
- 资源 (10)
- 问答 (2)
- 收藏
- 关注

原创 从阿里到网易,一位非985/211本科应届生的一年求职路
之所以会想写下这篇文章,是因为最近身边很多同学朋友在春招中挣扎,有的放弃,有的坚持。我很想对放弃者说“坚持下去吧,会有收获!”。我还记得一年前我春招的时候,有一位工作室的学长A对我说“我相信你可以,坚持下去,机会是留给有准备的人,机会随时都回来。”,那时候自己不愿意放弃,于是就每天拼命复习,每天投简历和等待面试,保持最好的状态随时迎战。说实话,那些天每天都很忐忑,每天都想放弃,
2020-12-12 15:07:07
32841
232

原创 2016,留下你的心愿,2017,我们一起回来见证!
我是一名广州大学生高校的学生,大四准毕业生。2015,2016,我徘徊于两个学校之间。深夜,自己漫步回到学校,凌晨00:46。写下自己一路回来的思考。一路回来,我看到几个小商贩,凌晨,顶着寒风,开始卖夜宵。路过时,一位阿姨低声说,小伙子,买点番薯吧。我掏出钱,买了最大一个,便回来了。难以想象的是,几天前,这里还是繁华的移动美食街,在大学城,随处可见。现在,因为整顿,
2016-01-01 01:08:45
3148
1

原创 最好最易懂的Git教学——分享“好麻烦部落格”Git教学(3)
Git 情境劇這篇主要是給自己做個記錄,因為 Git 指令實在太多了…Git 教學(1):Git的基本使用Git 教學(2):Git Branch 的操作與基本工作流程Git 情境劇:告訴你使用 Git 時什麼情況該下什麼指令如何安裝 GitMac : 安裝 Homebrew brew install gitLinux(D
2015-08-11 15:00:12
1781

原创 最好最易懂的Git教学——分享“好麻烦部落格”Git教学(2)
Git branchbranch (分支)應該是 Git 最重要的技能了,在一個多人專案的開發過程中我們有時候要開發新功能,有時候是要修正某個Bug,有時候想要測試某個特異功能能不能 work ,這時候我們通常都會從主 branch 再開出一條新的 branch 來做,這支新開的 branch 會帶著你的主 branch 目前的最新狀態,當你完成你所要開發的新功能/ Bug 修正後確認沒問
2015-08-11 14:58:53
1699

转载 最好最易懂的Git教学——分享“好麻烦部落格”Git教学(1)
本套Git教学教程来自外国的一个网站。由于国内屏蔽了这个网址,在此作为分享。本人也是Git初学者,对于好麻烦部落格(附带网址)这位网友写的Git教学收益很深,博文写得简单易懂,是我见到过Git教学中极少的博文。文章转自:http://blog.gogojimmy.net/2012/01/17/how-to-use-git-1-git-basic/ 一共三篇:Git教学(1):Git
2015-08-11 14:56:32
2667

原创 android主流界面开发框架汇总
今天把之前介绍的开源框架重新看了一遍,感觉里面的很多功能可以根据平时自己的项目需要进行选择。主流移动应用开发框架(1)——实现左右滑隐藏菜单的开源框架AndroidResideMenu二次开发实现类似最新版本QQ的左侧效果,另外还有右侧菜单功能,并且这两个都可以对应自定义开发主流移动应用开发框架(2)——fragment+fragmenttabhost实现底部选项卡导航(可滑动切换
2014-12-09 13:15:04
8292
原创 聊实用功能设计系列之 信息流卡片的消费与曝光
这篇文章是《聊实用功能设计系列》的第一期,聊一聊我们线上项目信息流卡片曝光/消费的设计思路。系列会拆分多期讲解线上项目中重要功能的设计过程。侧重点在于让读者理解功能模块的设计意义及整体搭建思路,大部分细节实现各项目自行实现即可。背景市场上大部分 APP 都采用了信息流的设计形式来承载信息内容展示,不同特征产品所设计的信息流形式不尽相同。比如图片瀑布流,商品列表流或资讯Feed流等。(淘宝商品流)(懂车帝视频流)尽管展示方式不同,但内容在列表中的流向是一致的,也都以列表滑动的交互来曝光更多内
2021-01-06 10:09:12
464
原创 Harmony系列之 初探Ability
欲开发鸿蒙应用,须先搞懂 Ability。Ability是什么官方定义Ability 是应用所具备能力的抽象,也是应用程序的重要组成部分。它是可见的,承载一个业务可视化界面;亦可为隐藏的,在背后默默为你干脏活;又能在多应用间架起数据访问的桥梁,方便数据沟通。鸿蒙应用是以 Ability 为单位进行部署,开发者通过继承 Ability 类来实现应用所需能力。如果从安卓 API 能力角度上看,鸿蒙OS的 Ability 提供的能力囊括了 Activity、Service、ContentProvi.
2020-12-31 09:40:06
507
原创 扒一扒,类加载的幕后
前些天写了《Java字节码「随身手册」》及《如何读懂晦涩的 Class 文件》两篇文章,主要从字节码方面了解类的构成。这篇文章则从 JVM 加载字节码文件的时机及类加载流程来认识内存中类的生命周期。阅读本文你能收获到掌握 JVM 何时加载一个类掌握类的生命周期类加载时机Java源文件通过编译器编译转化为Class文件,这些 Class 文件包含着 JVM 虚拟机指令及程序运行的逻辑。而类加载器根据类文件全限定名来读取文件二进制字节流,将其存放于运行时方法区内,通过在堆内创建一个 java.
2020-12-28 09:27:33
260
原创 Harmony系列之 工程结构与应用配置的理解
这篇文章主要讲鸿蒙应用的工程结构及应用配置,讲述期间穿插 Android 工程作为对比及迁移理解。直入主题,先看下图(左鸿蒙右安卓)无论是鸿蒙工程还是安卓工程,其结构相似,按内容可划分为:项目构建 及 模块内容项目构建这部分内容对于安卓开发者来说,Gradle 构建系统很是熟悉。项目构建的内容包含依赖文件(位于 gradle/Wrapper 文件夹),以 .gradle 结尾的脚本文件,.properties 结尾的配置文件,可执行文件及 settings.gradle。settings.gr
2020-12-24 10:00:20
454
原创 Harmony系列之 P40 运行鸿蒙手机应用
入手学习鸿蒙应用最直接的方式就是动手尝试在本地编译项目并运行起来,直入主题。工欲善其事必先利其器,先从官网渠道下载一个 IDE 开发工具。从 HarmonyOS Developer官网的开发分区找到 HUAWEI DevEco Studio IDE 开发工具。DevEco Studio 和 Android Studio 一样是基于 IntelliJ IDEA Community 开源版本打造。其面向华为终端全场景多设备的一站式集成开发环境(IDE),为开发者提供工程模板创建、开发、编译、调试、发布等
2020-12-17 09:32:31
824
原创 Harmony系列-Android 开发者启航
去年8月份,华为在开发者大会上正式发布操作系统 HarmonyOS。时隔一年有余,今年9月10日鸿蒙系统正式升级至 2.0 版本。根据官方公布的计划,在明天(10月16日)开放手机 Beta 测试版本。在过去的一年里,身边的安卓开发者似乎对 HarmonyOS 并不了解。目前由于华为并没有开放鸿蒙手机系统相关内容,没有足够亮眼的表现来引起移动开发者的关注。在12月9号,谷歌正式开源 Fuchsia 系统,继 Android 和 ChromeOS 后发布的第三个操作系统。Fuchsia 系统对于谷歌尝试
2020-12-16 09:40:05
1780
原创 Setter/Getter之争,有点意思
这几天在做 Code Review 的时候,发现 Model 层内大量 Bean 写法不一。有些类是属性开放一路 public,有些类则属性全部封闭 private。大家针对这个问题讨论得还挺激动,着实出乎意料。听他们的说辞,观点都挺有道理的。封闭派支持者持以下观点。Java 官方推荐针对实体类 Bean 进行封装,确保对外层调用者隐藏敏感数据。应该将类变量或属性声明为私有并提供公共获取及设置的方法,以便访问和更新私有变量的值。的确。倘若一个属性是以 obj.field 的方式访问或直接赋值
2020-12-15 13:53:14
134
原创 救我于水深火热的「热修复」
上周五线上项目出现了紧急缺陷,无奈之下周六苦逼加班发补丁????,唯一值得欣慰的是由于出现缺陷的功能会在今天通过 ABTest 下发,补丁赶在了大推之前。刚好周日在家闲着,就写一下「救我于水深火热的热修复」。希望当你看完这篇文章之后,能够了解到应用热修复它并不难,也不需要自己造轮子,业界很多优秀的框架如Tinker,Robust,Sophix等。如果项目还没有支持这个热更能力,希望你能尝试折腾慢慢接入,这不仅仅能学习到新知识也能为服务项目提供容错能力。文章篇幅比较长,希望各位看官能耐心看完,掌握整体
2020-12-07 19:47:21
379
原创 如何读懂晦涩的 Class 文件
Android开发者功能开发几乎都是面向Java/Kotlin语法编程,对于class文件的关注相对较少。 当你反编译class文件或程序编译期修改字节码亦做代码注入时,读懂字节码成为一道绕不开的槛。文章主要描述如何快速读懂一个class文件。涉及到的 JVM 指令及字节码结构已做了整理,这部分知识平时用到的时候查一下便可,用多了自然记住了。即使你是一个新手,按照下面的思路整合,你也可以从 0 上手。读完本篇文章你会收获: Class 文件结构长啥样JVM 操作指令有哪些如何从二进制流中读懂
2020-12-05 19:20:39
272
原创 Java字节码「随身手册」
随身手册在 Android 编程中,如果要阅读及修改字节码,则需要针对 Class文件 结构进行解析翻译。 JVM 定义 Class文件 结构及指令集,通过查阅字节码表及指令集可了解 class文件 的内容逻辑。下面通过整理涉及的所有表格内容及指令,供查询使用。分有两大部分内容:Class 文件结构描述表 和 字节码指令表 表格参考来自于 “深入理解Java虚拟机:JVM高级特定及最佳实践”Class 文件结构描述表Class文件 是 Java文件 编译而来,以 JVM 定义的特定结构来描述文
2020-12-03 09:22:38
253
原创 我是如何一步一步爬上 「64K限制」 的坑
分享初衷分享这个填坑的记录,主要是身边很多 Androider 都会遇到难以解决的难题并重复走旧路。大部分人都会按照这样的步骤处理:遇到一个 BUG ,优先按照自己经验修复;修复不了,开始 Google(不要百度,再三强调),寻找一切和我们 BUG 相似的问题,然后看看有没有解决方案;尝试了很多解决方案,a 方案不行换 b 方案,b 方案不行换 c 方案,直到没有方案可以尝试了,开始怀疑人生;如果影响不大,那就丢在项目里(估计也没人发现),如果影响很大,那只能寻找别人帮助,如果别人也给不了建议
2020-12-01 09:48:06
406
3
原创 Android上唤起 APP 场景的思考总结
背景恰逢项目小版本要上一个 极速版轻应用内嵌于主端 APP 内,在 APP 启动时通过读取配置决定是否优先显示轻应用界面。因此,在启动 APP 时需要实时进行不同场景切换。问题来源一开始我们通过新增一个 LauncherActivity 用于中转不同场景的切换,原 APP 主页面处理任何 Intent 的逻辑将需要从旧启动页进行 “继承” 处理。这意味着 LauncherActivity 收到任何 Intent 处理的逻辑需从旧启动页代码中拷贝。在继承 LauncherActivity 之后我们发现
2020-11-27 20:57:25
239
转载 Android源码分析—带你认识不一样的AsyncTask(串并行)
前言什么是AsyncTask,相信搞过android开发的朋友们都不陌生。AsyncTask内部封装了Thread和Handler,可以让我们在后台进行计算并且把计算的结果及时更新到UI上,而这些正是Thread+Handler所做的事情,没错,AsyncTask的作用就是简化Thread+Handler,让我们能够通过更少的代码来完成一样的功能,这里,我要说明的是:AsyncTask只是
2016-02-23 16:21:13
3098
转载 HTTP请求报文和HTTP响应报文
HTTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的。HTTP有两类报文:请求报文和响应报文。HTTP请求报文一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成,下图给出了请求报文的一般格式。or<request-line><headers><
2016-02-22 16:10:47
739
转载 Java虚拟机学习 - 体系结构 内存模型
本文转自:http://blog.youkuaiyun.com/java2000_wl/article/details/8009362一:Java技术体系模块图二:JVM内存区域模型1.方法区也称"永久代” 、“非堆”, 它用于存储虚拟机加载的类信息、常量、静态变量、是各个线程共享的内存区
2016-02-22 00:04:29
1065
1
原创 ubuntu安装原生迅雷,让下载成为简单
今天想到电影天堂下点电影,发现TM全都是迅雷链接,旋风链接什么的 。无奈自带的BT下载器速度又慢,又满足不了日常的一些文件下载。于是乎google了下,哎呀,有个mldonkey的电驴。折腾了一下午,各种服务器连接限制什么的,都怪自己学艺不精,最后只能先暂时放弃。于是乎又准备收寻一下载软件,迅雷自然成为目标。ubuntu上安装迅雷大多都是借助wine来实现,老麻烦了。不过在ubuntu中文
2016-02-01 20:37:11
24335
1
原创 ubuntu下安装RemixOS双系统(Android x86)
这篇文章主要讲在如何在ubuntu下安装RemixOS pc版(Android x86版本),以下两种做法的思路都适合安装任何版本的Android x86版本到ubuntu系统上,只需要修改对应的grub.cfg就可以了。Android x86版本允许我们在pc笔记本上体验安卓的系统,本次安装的是由技德科技出的RemixOS版本,是基于安卓5.0开发的桌面化深度定制系统。官网放出的安装包包
2016-01-24 20:07:35
11095
原创 Remix OS——一个很有魅力的Android系统
也许很多人都不熟悉甚至没听说过Remix OS,这个深度定义的Android系统是由北京技德公司深度开发,其创始人是周哲,曾是一位资深的谷歌工程师。有关于他的背景信息百度google可以查得到。这篇文章主要讲“Remix OS”,本人使用的是Remix 2.0版本,体验终端为Remix mini(一个迷你的PC小盒子)技德科技官方网站Remix OS的最新动态Remix min
2015-11-02 15:59:46
19692
2
原创 【二叉树遍历算法】——广/深度优先搜索的实现
广度和深度优先搜索一般都是用于图的遍历,树也有,这里实现的是二叉树的广度和深度优先搜索。主要使用伪代码的方式实现,掌握基本的思想和过程即可,对应具体的编程语言实现起来也就大同小异了。深度优先搜索void depthSearch(BiTree T){ InitStack(S); Push(S,T) while(!StackEmpty(S)){ Pop(S,p); visit(p
2015-10-17 13:37:36
1624
原创 【二叉树遍历算法】——前/中/后序递归与非递归的实现
昨天面试了美团,面试官要求写出二叉树的中序遍历,要求实现递归与非递归方式。在写非递归的时候,一个while循环中忘记控制空指针,╮(╯▽╰)╭当时脑子一片空白不在状态。回来后告诉自己,这类问题以后绝不会发生!下述6种实现方法希望大家都能理解,并快速能手写代码出来。(理解,懂得思路才是王道,因为面试的时候人的情绪相对来说是比较紧张,需要掌握得更熟悉)先(前)序递归遍历void preorde
2015-10-17 11:07:34
1463
转载 Android IPC之Messenger解析
一、概述说到Android进程间通信,大家肯定能想到的是编写aidl文件,然后通过aapt生成的类方便的完成服务端,以及客户端代码的编写。如果你对这个过程不熟悉,可以查看Android aidl Binder框架浅析;当然今天要说的通信方式肯定不是通过编写aidl文件的方式,那么有请今天的主角:Messenger。ok,这是什么样的一个类呢?我们看下注释This allow
2015-10-11 22:26:14
1002
转载 EventBus(2)——源码解析
上一篇带大家初步了解了EventBus的使用方式,详见:Android EventBus实战 没听过你就out了,本篇博客将解析EventBus的源码,相信能够让大家深入理解该框架的实现,也能解决很多在使用中的疑问:为什么可以这么做?为什么这么做不好呢?1、概述一般使用EventBus的组件类,类似下面这种方式:[java] view plainco
2015-10-11 21:46:59
1026
转载 EventBus(1)——基本使用
1、概述最近大家面试说经常被问到EventBus,github上果断down了一份,地址:https://github.com/greenrobot/EventBus,的确是个不错的框架,主要用于事件的发布和订阅。EventBus定义:是一个发布 / 订阅的事件总线。这么说应该包含4个成分:发布者,订阅者,事件,总线。那么这四者的关系是什么呢?很明显:订阅者
2015-10-11 21:46:04
1116
转载 Android内存优化神器——MAT使用进阶
第一篇文章《Android内存优化之一:MAT使用入门》介绍了MAT的基本使用方法,包括下载、安装、打开HPROF文件,和一些基本的视图。这篇文章介绍一下一些最新的工具使用方法,和第一篇中没有提到的一些其他的用法。Java的内存泄露的特点+Java中的内存泄露主要特征:可达,无用无用指的是创建了但是不再使用之后没有释放能重用但是却创建了新的对象进行处理MAT使用技巧
2015-10-10 16:37:46
1999
转载 Android内存优化神器——MAT入门使用
MAT简介MAT介绍+MAT(Memory Analyzer Tool),一个基于Eclipse的内存分析工具,是一个快速、功能丰富的JAVA heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗。使用内存分析工具从众多的对象中进行分析,快速的计算出在内存中对象的占用大小,看看是谁阻止了垃圾收集器的回收工作,并可以通过报表直观的查看到可能造成这种结果的对象。
2015-10-10 16:35:15
2366
转载 Android内存优化之OOM全解
Android的内存优化是性能优化中很重要的一部分,而避免OOM又是内存优化中比较核心的一点。这是一篇关于内存优化中如何避免OOM的总结性概要文章,内容大多都是和OOM有关的实践总结概要。理解错误或是偏差的地方,还请多包涵指正,谢谢!(一)Android的内存管理机制Google在Android的官网上有这样一篇文章,初步介绍了Android是如何管理应用的进程与内存分配:http
2015-10-10 11:45:07
2810
转载 Android开发最佳实践
前段时间,Google公布了 Android开发最佳实践的一系列课程,涉及到一些平时开发过程中应该保持的良好习惯以及如何使用最新的 Android Design Support Library来快速实现官方推荐的Material Design样式的应用。下面是个人的学习摘要总结,不对的地方请多多交流指点,谢谢!1)注意对隐式Intent的运行时检查保护类似打开相机,发送图片等隐
2015-10-10 11:40:26
1291
原创 AndroidStudio上的第一个jni程序——NDK入门
之前在Eclipse上折磨过Jni编程,自从换了AndroidStudio之后,感觉写JNI变得很麻烦,今晚重新配置了下AndroidStudio,并安装了NDK包。下面是在AndroidStudio上编写一个Jni小程序的过程,仅供新手参考和理清思路。我的IDE版本及gradle版本 NDK 版本使用android-ndk-r10,这里提供国内下载链接:点击打开链接点击下
2015-10-08 21:53:23
3448
转载 OKHttp(2)——源码解析
Android为我们提供了两种HTTP交互的方式:HttpURLConnection 和 Apache HTTP Client,虽然两者都支持HTTPS,流的上传和下载,配置超时,IPv6和连接池,已足够满足我们各种HTTP请求的需求。但更高效的使用HTTP可以让您的应用运行更快、更节省流量。而OkHttp库就是为此而生。OkHttp是一个高效的HTTP库:支持 SPDY
2015-10-08 10:56:52
2418
转载 OKHttp(1)——基本使用
Android系统提供了两种HTTP通信类,HttpURLConnection和HttpClient。关于HttpURLConnection和HttpClient的选择>>官方博客尽管Google在大部分安卓版本中推荐使用HttpURLConnection,但是这个类相比HttpClient实在是太难用,太弱爆了。OkHttp是一个相对成熟的解决方案,据说Android4.4的源码中可
2015-10-08 10:36:47
1690
转载 Http之Auth的那些事
谨以此文献给那些需要实现HTTP AUTH的“程序猿”们。关于HTTP AUTH的文档不多。RFC在 http://www.ietf.org/rfc/rfc2617.txtwiki在 http://en.wikipedia.org/wiki/Basic_access_authentication使用HTTP AUTH需要在server端配置http
2015-10-08 10:34:15
2337
转载 volley(3)——源码分析
开源项目链接Volley自定义 Android Developer文档Volley主页:https://android.googlesource.com/platform/frameworks/volleyVolley仓库:git clone https://android.googlesource.com/platform/frameworks/volleyVol
2015-10-07 17:06:03
1227
转载 volley(2)——自定义request
开源项目链接Volley自定义 Android Developer文档Volley主页:https://android.googlesource.com/platform/frameworks/volleyVolley仓库:git clone https://android.googlesource.com/platform/frameworks/volleyVol
2015-10-07 17:03:36
1200
转载 Volley(1)——基本使用
开源项目链接Volley Android Developer文档Volley主页:https://android.googlesource.com/platform/frameworks/volleyVolley仓库:git clone https://android.googlesource.com/platform/frameworks/volleyVolley
2015-10-07 17:02:20
1265
最近微信很火的html小游戏安卓版【按一秒】
2015-07-24
android仿微信底部选项卡(可滑动)
2014-11-30
打不开ubuntu服务器端的mysql,在线求解答!
2015-07-20
为什么同样的运算方式结果不一样,内部怎么处理的。
2014-12-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人