Android每周一轮子:Retrofit

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

Android每周一轮子:Picasso

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

Android每周一轮子:SharedPreferences

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

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

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

今天你进步了吗?

2019-09-05
阅读 3 分钟
6k
看到推送,也正想借此机会来做一些总结梳理,做程序员从入门到转行的过程和经历。本人95后,本科就读于杭州电子科技大学计算机专业。一名狂热的Hackathon爱好者,时至今日已经参加了上海,北京,杭州,南京,武汉等地大大小小的十场Hackathon,也因为大一的一场Segmentfault主办的Hackathon而来到了SegmentFault提问,回...

基于Node的Axure文件在线预览

2019-08-28
阅读 4 分钟
3.9k
公司现在的产品Axure文档在生成好Html文件之后,都是通过git来进行管理的,每次文件更新,大家都需要从git上进行拉取,然后在本地查看,更新会出现不及时的问题,大家有时候忘记git拉取导致出现实现效果与最终产品稿不一致。最近在看Koa的东西,因此通过git hooks 搭配Koa来实现了一个在线预览,实现上大概是根据访问路...

微信,支付宝小程序实现原理概述

2019-03-24
阅读 7 分钟
21.8k
微信小程序 项目结构 上图为微信小程序的项目结构,pages下面包含了小程序中的每一个页面,每一个页面由页面结构,页面样式,页面配置和逻辑代码四部分组成。 页面结构 页面结构文件为index.wxml,通过微信自定义的标签来写。 页面逻辑 页面逻辑通过JavaScript来书写。 页面样式表 类似CSS文件,来定义页面内元素的样式...

RecyclerView从认识到实践(1)

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

当我们谈网络时,我们谈些什么(3)Https

2019-03-12
阅读 3 分钟
1.6k
最近参与的项目中,由于使用了自签名的Https,由于之前的项目中并没有接触过Https,所以在接入之后出现了一些问题。在进行网络请求的时候抛出了如下异常。

Android基于MediaBroswerService的App实现概述

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

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

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

Android类装载机制

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

Android 资源加载机制剖析

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

Android进程启动与Activity显示

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

Android每周一轮子:EventBus

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

Android每周一轮子:OkHttp(1)

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

Android每周一轮子:HttpUrlConnection

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

Android每周一轮子:Volley

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

Android JiaoZiVideoPlayer源码分析

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

Android事件管理源码剖析

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

Android中Java和JS的交互

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

Linux下Socket通信(TCP实现)

2017-08-24
阅读 7 分钟
32.5k
近期在做的项目中,涉及到了进程间数据传输,系统的原本实现是通过管道,但是原有的实现中两个进程是在同一台机器,而且两个进程的关系为父子关系,而我们要做的是将其中一个进程移植到服务器上,因此两个进程要分开,所以管道必然是不可行的方案,而对于其它的进程通信方式,FIFO,消息队列,信号量和共享内存,显然也...

Android开源项目规范总结

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

Android Gradle从认识到实践(2)

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

Android Gradle从认识到实践(1)

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

Android项目构建过程分析

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

Android沉浸式状态栏实现

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

当我们谈网络时,我们谈些什么2(2)DNS

2016-12-26
阅读 4 分钟
3.6k
准备了很久,之前自己理解不够通彻的,这里自己参阅相关书籍,进行了又一个整理。下篇更新TCP/UDP相关。进入正题,网域名称系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。上述为来自维基百科对于DNS的描述,通过简单概...

当我们谈网络时,我们谈些什么2(1)HTTP

2016-12-06
阅读 8 分钟
2.6k
很早之前出了一个系列的《当我们谈网络,谈些什么》专题,得到了比较好多反响和认可。再次准备更仔细深入的再来做一起,更深入,更全面的来讲解网络知识。涉及Http,P2P,DNS,TCP,UDP,网络层,链路层,无线网络,移动网络,网络安全加密等。结合之前的体系,将对网络有更深层次的理解。本系列会更偏向于其中的知识,覆...

弱菜CS应届求职路

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