Android每周一轮子:Retrofit

2020-05-17
阅读 4 分钟
2.4k
充足的时间才是第一生产力。当源码看多了之后,对于很多点的梳理上可能就不会像之前那样更具体了,本篇主要还是在于对实现主流程的分析。Retrofit在之前项目中并没有用到过,这次决定来看一些Retrofit相关实现来了解其中的原理。对于想要了解Java中的动态代理应用,想要用更简洁的方式实现网络请求,Retrofit可能是最好...

Android每周一轮子:Picasso

2020-05-10
阅读 5 分钟
2.1k
最开始接触到Picasso框架还是在大三实现的时候,已经非常久远了,Picasso是Android一个远古时代的框架了,同时代的Volley早已被各家弃用,但是该框架实现较为简单适合作为初学者对图片加载库源码学习使用,对于了解图片加载框架的实现原理还是挺有帮助的。

Android每周一轮子:SharedPreferences

2020-04-30
阅读 8 分钟
2.9k
距离上一期的每周一轮子已经过去了很久了,离开的这段时间,去创业做了产品经理的工作,然后项目都失败了,现在重启开始新的技术之路,前段时间在面试,所以对于基础知识点进行了重新的整理,所以结合着面试的内容,将对Android中的第三方框架还有FrameWork层的内容进行更系统的一个整理。开始第一篇,准备先从一个简单...

快手,字节跳动,百度,美团Offer之旅(Android面经分享)

2020-04-16
阅读 7 分钟
7.2k
19年6月份从网易云音乐离开,放弃了留学机会,开始了人生的第一次创业,前后尝试了两个项目,因为个人能力与时机因素都失败了,虽然没能享受到创业所能够带来高杠杆物质上的回报,但是对个人软技能和自我边界认知上都有了很大的提升,对于这段经历有以下四点想送给准备创业和走在创业路上的朋友们。

RecyclerView从认识到实践(1)

2019-03-22
阅读 20 分钟
4k
作为一个Android开发,RecyclerView一定是不陌生的,其优秀的代码设计和丰富的功能实现,可以帮助我们迅速的实现我们日常的一些业务需求,同时其内部的缓存设计也很好的提升了我们的App流畅度。但是很多时候,RecyclerView默认的实现并不能够充分的满足我们的需求,对于一些复杂的视觉效果的实现上,还需要我们在其基础...

Android基于MediaBroswerService的App实现概述

2018-04-13
阅读 8 分钟
12.2k
如何实现一个音乐播放App,然后让其可以被第三方的Android app打开,并获取其中的歌单,曲目列表,同时控制其播放呢?现有应用市场上,已经有相应的实现。比如百度CarLife对QQ音乐,喜马拉雅等的调用。

Android每周一轮子:android-pluginmgr(插件化)

2018-04-03
阅读 9 分钟
2.5k
之前所做的一个项目为一个嵌入到游戏中,具备商城,支付等功能的SDK,由于游戏动态更新的问题,SDK因此也需要具备动态更新的能力,否则每一次的SDK更新都要强制游戏发布新版本了,本着该原则,限于部分历史原因,项目中采用了一个比较老的插件化方案android-pluginmgr,对于SDK的核心功能,全部抽离出放在插件中,通过这...

Android类装载机制

2018-04-02
阅读 7 分钟
3k
上两篇文章分析了资源的加载和进程,Activity启动相关的内容,这篇是Dex加载相关的内容了,本篇结束,我们也就可以开始对于一些热修复,插件化框架的实现剖析了。

Android 资源加载机制剖析

2018-03-27
阅读 16 分钟
5.8k
上一篇文章,讲到了Android中进程的启动和一个Activity的创建到显示流程,现在本篇要分析的是在Android中资源的装载机制,例如字符串资源,图片资源是如何被装载的。这里将从字符串和图片两种类型资源展开分析,同时对于后面所利用的资源装载的内容也会做简单的分析。

Android进程启动与Activity显示

2018-03-27
阅读 19 分钟
2.7k
这段时间,leader安排的任务进行Android插件化,热修复相关的调研,对于插件化和热修复涉及到的核心技术点,在于对于类装载,资源装载的认识还有对于启动流程的熟悉,带着该任务,于是有了接下来,一系列的文章,从进程启动,Activity显示,Dex装载,资源装载,最后主流几个插件化,热修复源码实现的分析。本篇先从进程...

Android每周一轮子:EventBus

2018-03-26
阅读 19 分钟
2.8k
EventBus 是一个基于观察者模式的事件发布/订阅框架,开发者可以通过极少的代码去实现多个模块之间的通信,而不需要以层层传递接口的形式去单独构建通信桥梁。从而降低因多重回调导致的模块间强耦合,同时避免产生大量内部类。其可以很好的应用于Activity之间,Fragment之间,后台线程之间的通信,避免使用intent或者han...

Android每周一轮子:OkHttp(1)

2018-03-19
阅读 16 分钟
4.5k
前两篇的文章讲解了Volley,HttpURLConnection,今天是对于OKHttp的分析,分析完成将会分析OKIO和retrofit,试图通过这一系列分析,来对Android的网络库的实现有足够充分的了解,当然这里的分析完全是脱离了对于项目的具体针对性实践,因此在一些细节上会有说欠缺,这也将会是接下来源码分析的下一步,从项目中的应用和...

Android每周一轮子:HttpUrlConnection

2018-03-12
阅读 13 分钟
3.7k
接着上一篇的Volley,本篇原定计划是OkHttp的,但是在分析道OKhttp底层时,对于IO的包装等等特性,需要一个可参照的对比的例子,比如HttpURLConnection等,通过这种对比,才可以看的出其优势。对于Volley,其实只是对于底层网络库的封装,真正的网络请求的发起还是通过HttpStack来执行,HttpStack在此之前可选的为HttpCl...

Android每周一轮子:Volley

2018-03-05
阅读 10 分钟
3.4k
2018年谈Volley,可以说是too yong, too simple了,对于网络库,现在使用最多的莫过于OkHttp了,接触使用Volley应该还是大二的时候了。之后也看过其源码,但是在不久前面试的时候,被问到一个Volley库的问题,就是Volley中请求的优先级是如何调度的,却卡住了,当时对于源码的阅读大多只是停留在对于其实现的流程和项目...

Android JiaoZiVideoPlayer源码分析

2017-11-11
阅读 10 分钟
17.4k
序言 最近接手项目中用到了视频播放的功能,使用了用的比较多的一个开源项目JiaoZiVideo可以迅速的让我们实现视频播放的相关功能。 jz播放器简单使用 {代码...} Jc播放器的简单使用,只需要在布局文件中引入该文件,然后为其设置待播放视频的链接和播放视频的封面图即可。其它的播放相关的无需我们关心。 代码结构分析 ...

Android事件管理源码剖析

2017-11-02
阅读 36 分钟
3.2k
最近在看Android触摸屏事件相关的源码,为了对整个事件体系的了解,所以对事件相关,从事件的产生,写入设备文件到我们的应用层如何获取到事件,整个传递机制源码进行了分析,以下为对于相关代码的梳理过程中的一些代码剖析记录。希望能够对大家有所帮助,同时也希望对于理解不当之处能够给予指正。

Android中Java和JS的交互

2017-10-10
阅读 9 分钟
8k
随着H5性能的提升,在我们移动应用开发的过程中,我们会越来越多的在我们的App页面内嵌入H5页面,使得App变的更加动态灵活。而H5页面往往并不是独立,很多时候需要和native进行交互,调用native的一些方法,或者Web中的一些方法被native所调用。

Android开源项目规范总结

2017-04-06
阅读 5 分钟
4.2k
由于开源项目的不断增多,我们的开发效率也得到了极大的提升,但是开源项目往往不能够完全的match我们的需求,我们可能只是依赖其中的部分功能,但是为此我们需要将一堆臃肿的代码带入到我们的项目中,为了解决这个问题,需要我们能够很好地理解源码,然后将我们需要的核心功能,从代码中将其抽离出来,来适应我们的项目...

Android Gradle从认识到实践(2)

2017-03-13
阅读 6 分钟
1.8k
前一篇文章,对Gradle进行了一个概述,同时对于Groovy语言进行了简单的介绍,有了之前的基础,现在就可以进行更细致化的学习,来学习一下在AndroidStudio中如何来配置我们的Build文件,来完成一些特定的功能,进行自定义构建。本文将先从各个gradle文件入手,分析各个文件中,我们可以进行哪些配置,这些配置又可以起到...

Android Gradle从认识到实践(1)

2017-03-06
阅读 5 分钟
2.4k
做为一个做Android的同学,我想对于“Gradle”是再熟悉不过了,但是对于Gradle却是有点陌生,几个月前,只是停留在这样简单的使用上。

Android项目构建过程分析

2017-02-22
阅读 5 分钟
5.9k
2017年了,再来谈构建过程似乎是个too young , too simple的问题了。在准备面试的过程中,对这个部分有过较为认真的学习,也进行了博客记录,但是实际工作过程中,如果是在写业务逻辑上,那么这方面的问题接触的就会比较少了。逐渐的淡忘了,其次,之前所写的文章条理性也不是很强,同时,最近准备进行Gradle插件的一系...

Android沉浸式状态栏实现

2017-02-12
阅读 5 分钟
7.7k
应用市场上App越来越多的出现沉浸式状态栏的设计(如下图所示)状态栏和导航栏具有相同的颜色。Android在4.4开始对于该种效果的支持,而在4.4之下,状态栏只是黑框,无法控制。同时在4.4和5.0及其之上的版本对该种效果的支持又有所差异,因此要实现该种效果,可以将4.4归为一类,5.0及其之上归为一类。接下来,我们将一...

弱菜CS应届求职路

2016-12-03
阅读 2 分钟
3.7k
杭电/CS/本技能栈Android/Java/Python/前端/机器学习(最近撸点深度学习),兴趣向(前端,Haskell),C/C++(写点简单系统)撸的书《计算机网络自顶向下》《算法》《算法导论》《现代操作系统》《Linux设计与实践》《代码简洁之道》《Head first设计模式》《Linux内核的设计艺术》《Android内核剖析》《剑指offer》《Th...

Android系统学习小记

2016-09-14
阅读 4 分钟
2.7k
Android 应用的启动到一个页面显示出来,这个过程涉及到点击事件的处理,以及如何启动一个Activity,启动一个Activity之后,如何将Activity中我们的设置的ContentView显示出来,显示的时候,如何添加窗口,如何在将View绘制到窗口上等一系列操作。涉及到的关键的三个服务,Ams,Wms还有Pms。分别是用来管理全局的Activit...

Android Flux架构初探

2016-08-05
阅读 7 分钟
5.4k
之前写过一篇关于Android项目如何架构的,有MVC和MCVP,前几天又看到了新的一种架构,当然并不是新出的,出了有一段时间,当前被应用的并不是很普遍,接下来从其特点和使用上来介绍Flux架构。本文主要目的是让你对Flux的一个架构大体面貌有个了解。

Android 类Volley网络请求框架结构简单剖析

2016-04-26
阅读 3 分钟
3.9k
我们可能已经使用过Volley,当然现在最多得回事OkHttp,Volley的实现也是之前相当大的一部分网络请求框架的大致实现方式。如果你已经饱读各类网络请求库的源代码,可以移步了,这里只是对于其大致面貌进行一个阐述,附带上一些代码的实现,具体的将会写好之后贴出来。

从HttpClient和HttpURLConnection使用到其实现原理

2016-04-25
阅读 8 分钟
7.1k
从我们的最开始使用的HttpClient到HttpURLConnection,当然现在如果还在说你在项目中自己封装使用它们两个,有点多余了,无论是Volley还是OkHttp都是要比其好很多的,写起来方便,效率高,你就是要造轮子,这个就无法阻挡你了,拥有一个造轮子的心,还要记得,性非议也善假于物也。今天回顾下,基本使用,然后从一个post...

Android网络图片请求+二级缓存实现

2016-04-24
阅读 8 分钟
4.9k
对于android学习者,对于网络请求势必都经历这样的一个过程,通过HttpClient或者HttpUrlConnection,来发其请求然后通过Handler进行数据的传递,非常的麻烦,然后后来你知道了有Volley,OKHttp,来让我们尝试动手写个网络请求的小工具吧,来对其进行一个剖析。

APK打包安装过程

2016-04-11
阅读 4 分钟
10.7k
写的越多发现的问题也就越多,不可否认,之前的博客现在看来有些东西自己理解的还是很有出入的,在后续过程中,也是需要自己进一步的去改进。前几篇写了Android手机启动流程还有Binder,以及服务的注册和使用问题,现在要写的是一个手机安装包的生成过程和手机如何安装一个安装包的。

Android Binder与服务注册过程

2016-04-10
阅读 4 分钟
5.3k
跑去图书馆自习了一天,看了一天Binder,效率还是蛮高的。特别推荐,同时想在以后每篇博文写几句文艺或者鸡汤或者高逼格的话,提高各类姿势水平吧。回到正题,讲讲Binder,我将从为什么要有Binder,Binder的底层实现,然后通过一个客户端调用服务进程的整个过程来进一步阐述其作用。