
杂谈系列
MDove
爱生活爱Android
展开
-
深入浅出ASM
前言ASM作为一个声名在外的字节码编制工具,无数“传奇”框架都基于此展现了花里胡哨的魔法。最近在工作中发现需要加强这部分能力,不然很多技术方案总是很麻烦…但是仅靠ASM实际也无法“无所欲为”,因为说到底它也只是一个方便的改写class的工具。想要使其发挥战斗力,还需要配合诸如:Gradle的transform api、注解等角色的支持。因此接下来的一段时间内,我会尽可能的把自己在这方面的实战内容输出出来。正文这一篇咱们主要聊ASM的一些用法,核心聚焦于ASM。所以关于字节码的部分就不展开了,有相原创 2020-12-06 14:48:58 · 500 阅读 · 0 评论 -
android中ViewPager这才是标准用法
前言创作过程:2020年5月22下午4点左右开始写,晚上9点55写下尾声。晚上11点-12点补充第五、第六部分。有段时间没写文章了,这次不是因为懒…而是的确很忙,最近在重构项目里的一个重要模块。搞起来真的酸爽,为了策应其他组的模块化,重构的时候也进行了我们的模块化处理,混乱的依赖也是x了狗了…今天的文章内容是关于ViewPager的,很多同学可能会吐槽:怎么还写这种“低级”的内容!为什么?因为绝大多数的同学都用错了,当然这主要的原因是搜索引擎推出来的文章大多都是错的!正文一、错误用法不原创 2020-05-24 10:29:31 · 573 阅读 · 0 评论 -
深入理解Java反射
写在前面今天在需求评审的时候,遇到了挺有意思的要求。需求是什么样子就不说了。总之完成这个需求需要一个调用系统api的操作。然而这个api因为并不稳定的原因。被谷歌hide掉了。 这个时候我们最直接的方式就是去通过反射去调用这个系统api。(当然这种方式治标不治本,因为既然被hide,就说明这个api很不稳定。所以这个版本可以用,有可能下个版本就没了) 不过这里我们不考虑这个问题,因为如题所...原创 2018-07-29 19:21:47 · 277 阅读 · 0 评论 -
ArrayList源码分析
写在前面最近因为拥抱变换,所以开始无奈的面试之路。因为在集合的源码分析上,出了些问题,所以这段时间,好好重新理一理常用的集合源码。(版本基于JDK1.7)ArrayList毫无疑问,提到常用集合。ArrayList势必是第一个被搬出来的,因此我们就先拿它开刀了。add(E e)1、初始化ArrayList的初始化,只有在第一次add的时候进行new数据,数组默认...原创 2018-04-28 18:00:19 · 148 阅读 · 0 评论 -
常用集合HashMap的源码分析
写在前面上一篇博客,我们分析了ArrayList的源码实现,ArrayList吊起来观察一番之后,那么下一个被吊起来的肯定就是HashMap了。作为以key/value存储方式的集合,HashMap可以说起到了极大的作用。因此关于HashMap,我们将着重使用比较大的篇幅。接下来会用到的几个常量 static final int DEFAULT_INITIAL_CAPACITY = 1 ...原创 2018-05-06 09:19:59 · 179 阅读 · 0 评论 -
2018届android校招面试总结:百度,大疆,乐视,知乎
写在前面四月面临了人生第一次比较重大的变化:现在的公司因为融资不利,收回了我的正式offer。很伤…这差不多一个月的时候,开始了自己的面试之旅。有导师/朋友给内推的,也有自投的….面试记录我是一个双非本科的大四狗,一直在搞安卓,自学一年多的时间,然后有半年多的实习经历…安卓真好玩,就是肚子有点饿~ 接下来,按时间的顺序的记一记我这一个月以来所经历的面试。百度:社招(导师内...原创 2018-05-04 18:28:30 · 1761 阅读 · 0 评论 -
Gradle项目配置优化
写在前面不知不觉自己已经在北京呆了半年的时间,自己所在的实习公司也已经工作了四个月的时间。时间真的好快,自己马上就要失去学生这个身份了…这次周期计划是关于Gradle的内容,为什么有这个计划,是因为这段时间公司把项目整体升级到了3.0,借用升级的计划,Leader增加了很多的配置信息以及Gradle,让这个项目的依赖管理更有条理性。 因此基于这个背景就有了这篇博客的想法。开始...原创 2018-04-11 22:46:46 · 402 阅读 · 0 评论 -
Java反射实践:从反射中理解Class
写在前面今天在需求评审的时候,遇到了挺有意思的要求。需求是什么样子就不说了。总之完成这个需求需要一个调用系统api的操作。然而这个api因为并不稳定的原因。被谷歌hide掉了。 这个时候我们最直接的方式就是去通过反射去调用这个系统api。(当然这种方式治标不治本,因为既然被hide,就说明这个api很不稳定。所以这个版本可以用,有可能下个版本就没了) 不过这里我们不考虑这个问题,因为如题所...原创 2018-04-11 22:45:39 · 218 阅读 · 0 评论 -
Tomcat修改80端口的一系列问题
本菜开源的一个自己写的Demo,希望能给Androider们有所帮助,水平有限,见谅见谅… https://github.com/zhiaixinyang/PersonalCollect (拆解GitHub上的优秀框架于一体,全部拆离不含任何额外的库导入) https://github.com/zhiaixinyang/MyFirstApp(Retrofit+RxJava+MVP)原创 2017-01-05 15:22:41 · 10709 阅读 · 0 评论 -
Android杂记(1)小技巧()()
各种Android知识小结原创 2016-03-20 16:13:39 · 611 阅读 · 0 评论 -
Git初级全攻略
git的命令攻略,这里不是一步步去敲命令,而是攻略...攻略!原创 2017-09-07 17:57:27 · 386 阅读 · 0 评论 -
Android杂谈(28)观公司项目RecyclerView封装有感
RecyclerView的另类封装原创 2017-11-04 15:16:28 · 398 阅读 · 0 评论 -
Android杂谈(27)锁屏实践
android锁屏实践原创 2017-11-04 13:23:13 · 779 阅读 · 0 评论 -
记2017莫名其妙的美团校招安卓岗
2017年美团校招安卓面试原创 2017-10-21 20:22:02 · 2400 阅读 · 0 评论 -
Android锁屏实践
转载请注意:http://blog.youkuaiyun.com/wjzj000/article/details/78443710本菜开源的一个自己写的Demo,希望能给Androider们有所帮助,水平有限,见谅见谅…https://github.com/zhiaixinyang/PersonalCollect (拆解GitHub上的优秀框架于一体,全部拆离不含任何额外的库导入)https://github.原创 2017-11-12 13:15:16 · 474 阅读 · 0 评论 -
从高频笔/面试题思考Android学习/进阶路线(Java篇)
写在前面标题谈进阶,属实有一些夸大。 我一直在思考什么样的文章才是一篇好文章,我的定义是首先要有人看,其次重要的是内部有价值。所以针对于这个出发点,我决定从大家比较关注的面试题入手,然后尝试从中分析对Android进阶路线的帮助。 虽然我只是一个应届生,但是我善于总结别人的经验,不要脸的去向别人请教。我实习的公司有蚂蚁金服技术专家,360浏览器技术负责人…在与他们的请教(后来他...原创 2018-07-24 14:48:07 · 205 阅读 · 0 评论 -
5分钟过一遍Android事件分发(笔记风)
前言前几篇文章咱们从源码的层面分析了事件分发机制…不过感觉有些时候还是需要记一些笔记般的内容,简单快捷的回忆对应的内容。正文布局嵌套层级:ViewGroupA中嵌套ViewGroupB,然后ViewGroupB嵌套ViewGroupC,ViewGroupC中包含ViewD。基于此,咱们分情况记录一些情况:一、C的onInterceptTouchEvent()返回true,onTouchE...原创 2019-09-28 21:26:01 · 264 阅读 · 0 评论 -
ViewPager的notifyDataSetChanged()没有效果?来从源码上解决这个问题
前言最近发现自己有很多颇为基础的内容“不会写”了,就比如今天写的内容:ViewPager。最近有小伙伴,在后台私信一些技术细节,大家真的好勤奋~~因为工作的原因,有些私信回复的不是很及时,多多包涵。996伤不起啊!正文平时我们很容易遇到这样的需求:页面底部很多Tab,可以点击或者活动切换不同的页面…估计话还没有说完,有朋友就会脱口而出:ViewPager+ Fragment实现。说起...原创 2019-09-18 10:44:06 · 932 阅读 · 0 评论 -
动态规划,凑硬币
前言动态规划。这是一个有趣的话题,因为对于大部分业务型公司来说,面试中的算法部分并不会考这一块。但是BAT等一线互联网公司又不一定不会考,比如我在面试头条的时候就被问了一道动态规划的题目。此外,我个人觉得动态规划有趣的原因是,我认为应用层的工程师能接触到或者用到的“最需要思考”的算法题目了。所以咱们今天就好好聊一聊动态规划。正文一、贪心算法聊动态规划之前,我想先聊一聊贪心算法。1.1、...原创 2019-08-16 17:17:40 · 1231 阅读 · 0 评论 -
一文带你彻底捋清楚:插值器、估值器
前言最近想学的东西有点多…(潜台词:一个也没学~哈哈)待我学成之后,再出来“装逼”…今天整一篇“科普”向的文章,也是我自己一直傻傻分不清的内容:插值器、估值器。正文一、插值器Interpolator什么是插值器?根据时间流失的百分比 计算当前属性改变的百分比。使用场景:实现非线性运动的动画效果非线性运动:动画改变的速率不是一成不变的,如加速 & 减速运动都属于非线性运动...原创 2019-08-25 10:35:06 · 1000 阅读 · 0 评论 -
一篇文章带你真正搞定:android事件分发
前言事件分发是一个老生常谈的话题,既然是一个“冷饭”,那为什么今天又开始“炒冷饭”了呢?说白了,还是自己高估了对事件分发的理解。这里抛出几个问题:1、对一个View进行setOnTouchListener操作,并且onTouch()返回true,为啥它的onTouchEvent()不会被响应? -> 答案在:方法展开2部分。2、一个View的onTouchEvent()返回了tru...原创 2019-08-04 23:36:18 · 208 阅读 · 0 评论 -
Room踩坑:理解Room的正确升库
前言最近在用Room时候,由于很大意,错误的升级数据库。导致灰度期间出现了不少crash。这篇文章就来纪念一下自己的“年少无知”吧。这篇文章翻译于Google的官方博客(自备梯子),是我踩坑后搜到的,贴出来希望大家避免掉坑里吧~正文删除了一些原文中的“废话”,直接上处理代码。有兴趣看更多细节的小伙伴,可以直接看原文。前置条件,我们现在的app版本中已经建了这样的数据库:@Da...原创 2019-07-14 10:38:46 · 12435 阅读 · 4 评论 -
思想交融,Android中的函数式编程(1):DiffUtil体验
前言随着业务的急剧扩张,一些架构上的调整也随之破土动工。从最初的MVC,管他是唱、跳、Rap,还是打篮球。通通写在Activity里;再到MVP阶段的业务与View分离;然后就是现在的MVVM。关于MVVM的内容,可以在我之前的文章中看到:一点点入坑JetPack:ViewModel篇一点点入坑JetPack:Lifecycle篇一点点入坑JetPack:LiveData篇一点点入...原创 2019-07-02 10:51:57 · 296 阅读 · 0 评论 -
Git如何合并commit,squash来帮你
前言作为开发者,Git是我们常用的代码管理工具,我相信大家一定有过这个场景。那就是commit太多,提交的时候不是很好看。甚至有些临时commit,今天就来聊一聊Git的合并commit。(这是一篇翻译加总结的文章)正文打个比方,咱们先假设有几次提交,git log如下:假设我们有一个feature_x分支。已经commit一个d7322aa。之后我们一直在努力为该功能添加新元素(新的c...原创 2019-03-07 13:39:12 · 2043 阅读 · 0 评论 -
JetPack生命周期管理神器之:Lifecycle
前言因为业务的原因,自己也开始了JetPack之旅。不得不承认,用上之后:真香。JetPack以官方的方案,解决了很多我们头疼的问题。JetPack作为一整套的解决方案,不是一篇文章很够解释清楚的。正如官方所说:Android Jetpack 组件是库的集合,这些库是为协同工作而构建的,不过也可以单独采用,同时利用 Kotlin 语言功能帮助您提高工作效率。可全部使用,也可混合搭配!所...原创 2019-02-03 14:38:00 · 419 阅读 · 0 评论 -
几个特性,快速上手Kotlin
前言因为工作需要,所以最近大量的时间都用在了对Kotlin的提升上。所以最近的文章基本都是关于Kotlin的了内容。这不是一个死扣细节的文章,而是一个帮助小伙伴们快速由Java(Android)转向Kotlin的文章,因此更多的是一种语法与思想混在的模式。充分理解Kotlin,快速上手写业务快速切换至Kotlin for Android模式正文不多扯淡,点进来的小伙伴们肯定都是来学...原创 2018-12-16 22:33:09 · 195 阅读 · 0 评论 -
理解异步之美---Promise与async await(二)
承上启下经历了上一篇基础的Promise讲解后,我觉得大家对于promise的基本用法和想法就有一定了解了。(就是一种承诺哟)更多内容,欢迎光关注我们的公众号:下面我们要去了解一下它的工作流程了。结合源码与分析别人的常见实现进行理解下面是别人实现的总源码,(简单一看就可以)var PENDING = 0;var FULFILLED = 1;var REJECTE...原创 2018-08-19 23:40:25 · 908 阅读 · 0 评论 -
我的编程之路
我有一个故事,讲出来姑且博大家一乐。我有一个朋友,在这普通的一天,他穿着普通的鞋很普通地走在这普通的街,掏出普通的电脑,学点普通的Java…也许是皂滑弄人,他并没有在身边人中找到合适的引路人。所以他决定自己一点点去学,他搜索到了大量的参考资料,可是也正是因为大量的资料让他无从下手。他不知道哪些内容是重点,哪些内容已经过时。所以在那段日子里,他快乐又纠结。快乐是因为他找到了自己感兴趣的东西,...原创 2018-07-22 16:36:06 · 920 阅读 · 0 评论 -
从Service中理解进程间通信Messenger / AIDL(上)代码套路
进程间通讯 Messenger AIDL原创 2017-09-11 13:35:23 · 307 阅读 · 0 评论 -
全新一次的安卓面试
记一次酣畅淋漓,收获颇丰的面试经历原创 2017-09-01 08:24:58 · 605 阅读 · 0 评论 -
Java随笔(6):JVM的梳理记录
JVM记录:类加载/双亲委派+运行时数据区+GC机制原创 2017-08-04 11:40:40 · 402 阅读 · 0 评论 -
Java随笔(3)快速进行各进制之间的转换
//十进制转成十六进制:Integer.toHexString(n);//十进制转成八进制Integer.toOctalString(n);//十进制转成二进制Integer.toBinaryString(6566);//十六进制转成十进制Integer.valueOf("FFFF",16).toString();//十六进制转成二进制Integer.toBinaryString(I原创 2017-01-02 11:26:58 · 701 阅读 · 0 评论 -
Android杂谈(22):AndroidStudio快捷键...只记录叼的!
转载请注意:http://blog.youkuaiyun.com/wjzj000/article/details/54314319 本菜开源的一个自己写的Demo,希望能给Androider们有所帮助,水平有限,见谅见谅.. https://github.com/zhiaixinyang/MyFirstApp写在前面注意,这里不是记录各种快捷键的博客。而是记录很叼的快捷键的博客! 有多叼?叼原创 2017-01-12 10:02:31 · 410 阅读 · 0 评论 -
Android杂记(3)FileUtils工具类梳理
FileUtils工具类原创 2016-04-28 07:08:27 · 670 阅读 · 0 评论 -
Android杂记(4)获取ViewPager中Fragment的实例
刚刚使用回调的时候遇到了一个问题。问题描述:App大体框架是一个ViewPager其中包含三个Fragment。在第一个Fragment的使用回调。但是Fragment是new出来的,突然不知道怎么获取此Fragment的实例。后来百度到了答案。特此记录下来。解决方案: 在Activity中使用 getSupportFragmentManager().findFragmentB原创 2016-05-03 20:34:53 · 3107 阅读 · 0 评论 -
Android杂谈(6)Windows蓝屏可能出现工程莫名全报错
新换了台笔记本。大概是性能不够好。有时跑的程序一多,就会蓝屏(Windows10)。挺让人蛋疼的....更让人蛋疼的是,如果这个时候写的程序,可能就更悲催。其他行业不是很了解,但是Android,尤其是用AndroidStuio写项目,我是的确碰到了因蓝屏让人抓狂的情况。这次突然蓝屏,重启后项目报错,啥都错。无论clean还是rebuild没有任何作用。后来通过各种百度google找到原创 2016-06-23 20:46:47 · 794 阅读 · 0 评论 -
Android杂谈(10)定时任务
今天记录一个关于android里的定时实现效果Timer类。首先它的使用方式:new Timer().schedule(new TimerTask() { @Override public void run() { //1500毫秒后执行相关操作。 }},1500);new一个Timer,然后调用schedule方法。需要传递俩个值,一个是原创 2016-08-27 17:54:29 · 471 阅读 · 0 评论 -
Android杂谈(12)View的事件分发机制
今天记录一下View的事件分发机制。其实关于这方面有很多书籍博客都在讲,看别人的终究是别人的思路和理解。有必要自己重新记录一下,用自己的思考梳理一个属于自己的富强、民主、文明、和谐,自由、平等、公正、法治、爱国、敬业、诚信、友善的社会主义核心价值观。首先既然谈到分发,那就说明控件至少是嵌套的。像这样我来略微的解释一下这样图片。OneViewGroup和TwoViewGroup是原创 2016-09-10 11:26:27 · 467 阅读 · 0 评论 -
Android杂谈(13)使用Androidsudio进行单元测试
今天记录一下AndroidStudio下的单元测试,并且记录一下其中的出现的小东西....首先我使用的是androidstuio2.0,工程目录是这样的....很多百度出来的答案都只有上边那个目录,应该是版本的问题吧。所以这里大概就出现了一个问题。既然高版本出现了一个新的test目录,那么很可能这是google推荐的单元测试方式。其实根据这个目录下的类名也差不多能够确定这个推想原创 2016-09-10 12:10:11 · 615 阅读 · 0 评论 -
Android杂谈(15)关于ViewPager里的Fragment的生命周期+懒加载
我来了最近写了一个小项目,发现一个小问题。事情的经过是这样的......ViewPager中有四个Fragment,当滑动到第3个Fragment时第4个Fragment的一些方法被执行。所以这里就测试并记录一下ViewPager中的Fragment的生命周期的调用情况。测试Demo中ViewPager中有四个Fragment,分别对应OneFragment-Two...-Thre原创 2016-09-22 16:09:40 · 755 阅读 · 0 评论