![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
安卓开发
qq_43257419
这个作者很懒,什么都没留下…
展开
-
Android进阶:一、日志打印和保存策略
前言:项目开始没有做好日志统计工作,每次有问题后端都得找前端对接,严重影响工作效率。最近特地在项目中加上日志保存策略,在此分享,供需要的人学习。更详细的日志信息既然决定自定义一个log,那我们就可以让它显示更多的信息,如线程信息:threadId,threadName等:private String getFunctionName() { StackTraceEl...原创 2019-03-19 19:26:32 · 110 阅读 · 0 评论 -
从技术面试官的角度怎样看待你的简历和面试?
公司组织过多次校园招聘和社会招聘,很多人在招聘技术专家组中浑水摸鱼、鱼目混珠、插科打诨,所以也谈谈面试中那些事儿。一.简历简历的重要性是不言而喻的,如果简历写的好,我们可能已经内心里有了录用他的想法,把候选人请来只是验证一下想法的正确性,看看候选人是否有意向来。关于简历,从技术面试官的角度来看,需要注意以下几点:1 简明扼要基本上我们看简历都是第一页决定了整体印象。有一次一个工作了1...原创 2019-03-22 16:29:53 · 443 阅读 · 0 评论 -
Android带有粘性头部的ScrollView
前言,一天在点外卖的时候,注意到饿了么列表页的滑动效果不错,但是觉得其中的手势滑动还是挺复杂的,正好又碰到了在熟悉Touch事件的理解当中,所以就抽空对着饿了么的列表页面尝试写写这个效果1.先贴一个实现的效果图逻辑是当外部的ScrollView没有滑到底部的时候,往上滑动的时候,是滑动外部的ScrollView,当外部的ScrollView到达底部的时候,我们再网上滑,就是滑动内部的列表了...原创 2019-03-22 15:28:58 · 254 阅读 · 0 评论 -
深度 | Android 整体设计及背后意义
摘要:现实工作中经常可以听到这样的说法:框架的升级带来协议性能的提升、编程模式的变革带来业务的飞跃...... 姑且不论这些表述是否有问题,实际上如果系统地看待事物整体,可能会有不一样的发现。现实工作中经常可以听到这样的说法:框架的升级带来协议性能的提升、编程模式的变革带来业务的飞跃...... 姑且不论这些表述是否有问题,实际上如果系统地看待事物整体,可能会有不一样的发现。以LINUX...原创 2019-03-22 15:12:16 · 248 阅读 · 0 评论 -
Android进阶:五、RxJava2源码解析 2
上一篇文章Android进阶:四、RxJava2 源码解析 1里我们讲到Rxjava2 从创建一个事件到事件被观察的过程原理,这篇文章我们讲Rxjava2中链式调用的原理。本文不讲用法,仍然需要读者熟悉Rxjava基本的用法。【文末有资料领取】一.Rxjava2 的基本用法Rxjava是解决异步问题的,它的链式调用让代码看起来非常流畅优雅。现在我们带上线程切换以及链式调用来看看。下面代...原创 2019-03-22 14:42:35 · 136 阅读 · 0 评论 -
android开发(3):列表listview的实现 | 下拉刷新
APP里面的列表太常用了,系统提供的listview或grideview可以做到。另外,我希望这个列表能够下拉时触发刷新,于是考虑使用封装了这个功能的开源项目,这里介绍这个:https://github.com/Yalantis/Phoenix这是一个支持下拉刷新的控件,里面包括了ListView。(1)引入下拉刷新库同样,先引入这个库,在app/build.gradle的depend...原创 2019-03-18 18:01:09 · 487 阅读 · 0 评论 -
android开发(2):多页面的实现 | Fragment的创建与使用
APP中出现多个页面再常见不过了。使用activity与fragment都能实现多页面,这里使用fragment来实现。延续“知音”这个APP的开发,之前已经创建了底部导航条与mainactivity。首先创建一个fragment,作为“广场”页面。在菜单中new一个fragment出来即可,如下面的截图:此时会自动生成这个fragment的xml跟类,xml用于界面设计,而fragmen...原创 2019-03-18 17:55:26 · 1041 阅读 · 0 评论 -
android开发(1):底部导航条的实现 | navigation tab
底部导航条,在iOS中叫tabbar,在android中叫bottombar或bottom navigation,是一个常用的切换页面的导航条。同样,如果有良好的第三方库,我们应该优先考虑,能用好别人的东西,已经很厉害。github上的roughike/BottomBar,曾经是热度较高的库,但是已经过时了,没有再维护,加到项目也会遇到编译的问题,所以这里不使用,这里使用的是PagerBo...原创 2019-03-18 17:53:00 · 671 阅读 · 0 评论 -
android开发(0):android studio的下载安装与简单使用 | sdk的安装与编译
android studio,简称AS,是集成开发环境,所谓集成,就是集编辑、编译、调试、打包等于一体。简单来说,通过AS,就可以开发出在android系统上运行的APP。我使用的是macos系统。在这个网站寻找AS来安装:https://developer.android.com/studio/这个网站的最下面有提到对电脑的最低要求。下载3.2版本,安装。安装后就可以启动as,如...原创 2019-03-18 17:35:47 · 210 阅读 · 0 评论 -
Android性能优化之异常处理&应用瘦身
简介常见的异常无非就是ANR和OOM,掌握如何避免这两种异常有助于提升应用性能。另外,应用瘦身虽然不是性能的优化,而是app的优化,所以也放到这篇文章一起分享。异常处理ANR原因简述一下哪些地方是主线程:Activity的所有生命周期回调 Service默认执行在主线程 BroadCastReceiver的onReceiver回调 没有使用子线程的looper的han...原创 2019-03-21 17:47:41 · 197 阅读 · 0 评论 -
Android性能优化之内存优化&启动优化
内存优化内存检测工具Memory Monitors Memory Monitors是Android Studio中的工具,通过图形界面的方式比较直观的看到内存抖动的情况,还可以手动触发GC,配合内存快照,可以准确的看到哪些地方存在内存泄漏。 LeakCanary LeakCanary是一个检测内存泄漏的开源类库,使用比较简单。可直接在gitHub找到。 在应用内做相应的配置后,安装...原创 2019-03-21 17:44:09 · 314 阅读 · 0 评论 -
组件化极简方案--双方案可选
简介随着项目越来越完善,功能越来越多,代码也变得越来越复杂。为了更方便开发,以及多个模块并行开发,之前的模块分包的方式已经不能满足当前的需求,所以组件化开发势在必行。本文介绍了当前比较流行的组件化方案,模块间通信采用阿里的ARoute路由,并且在项目中提供了两种不同的组件化运行的方式,各有优劣,可根据自己的项目来选择不同的方式。思路模块解耦,把公共的功能三方及工具类下沉到底层,其他模块...原创 2019-03-21 17:36:52 · 178 阅读 · 0 评论 -
Android进阶:四、RxJava2 源码解析 1
本文适合使用过Rxjava2或者了解Rxjava2的基本用法的同学阅读一.Rxjava是什么Rxjava在GitHub 主页上的自我介绍是 "a library for composing asynchronous and event-based programs using observable sequences for the Java VM"(一个在 Java VM 上使用可观...原创 2019-03-21 15:54:01 · 120 阅读 · 0 评论 -
Android进阶:三、这一次,我们用最详细的方式解析Android消息机制的源码
决定再写一次有关Handler的源码Handler源码解析一、创建Handler对象使用handler最简单的方式:直接new一个Handler的对象Handler handler = new Handler();所以我们来看看它的构造函数的源码: public Handler() { this(null, false); } ...原创 2019-03-20 20:11:25 · 108 阅读 · 0 评论 -
Android进阶:二、从源码角度看透 HandlerThread 和 IntentService 本质
上篇文章我们讲日志的存储策略的时候用到了HandlerThread,它适合处理“多而小的任务”的耗时任务的时候,避免产生太多线程影响性能,那这个HandlerThread的原理到底是怎样的呢?我们现在从源码角度解读:【文章底有资料领取】HandlerThread:继承自Thread,是一个可以使用Handler的Thread。因为在run方法内维护了一个Looper,可以通过Handler...原创 2019-03-20 15:55:58 · 116 阅读 · 0 评论 -
Android进阶:六、在子线程中直接使用 Toast 及其原理
最近因为个人原因,很久没有更文章,感谢关注的小伙伴,望谅解!一般我们都把Toast当做一个UI控件在主线程显示。但是有时候非想在子线程中显示Toast,就会使用Handler切换到主线程显示。但是子线程中真的不能直接显示Toast吗?答案是:当然可以。那应该怎么操作呢?在当前线程中先初始化一个Looper即可!Looper.prepare();Toast.makeTex...原创 2019-03-28 16:04:35 · 623 阅读 · 0 评论