
程序人生
Android Developer
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
RXJava之线程控制Scheduler(四)
阿里P7移动互联网架构师进阶视频(每日更新中)免费学习请点击:https://space.bilibili.com/474380680线程控制:Scheduler除了灵活的变换,RxJava 另一个牛逼的地方,就是线程的自由控制。1) Scheduler 的 API前面讲到了,可以利用 subscribeOn() 结合 observeOn() 来实现...原创 2019-11-19 19:54:55 · 313 阅读 · 0 评论 -
RXJava之变换(三)
阿里P7移动互联网架构师进阶视频(每日更新中)免费学习请点击:https://space.bilibili.com/474380680变换RxJava 提供了对事件序列进行变换的支持,这是它的核心功能之一,也是大多数人说『RxJava 真是太好用了』的最大原因。**所谓变换,就是将事件序列中的对象或整个序列进行加工处理,转换成不同的事件或事件序列。**概念说着总是模糊难懂的,来看 API。1...转载 2019-11-19 19:52:57 · 153 阅读 · 0 评论 -
RXJava之扩展的观察者模式(二)
阿里P7移动互联网架构师进阶视频(每日更新中)免费学习请点击:https://space.bilibili.com/4743806801. RxJava 的观察者模式解读RxJava 有四个基本概念:Observable (可观察者,即被观察者)Observer (观察者)subscribe (订阅)事件Observable 和 Observer 通过 subscribe() 方法实...原创 2019-11-19 19:48:11 · 146 阅读 · 0 评论 -
OkHttp3源码详解(三) 拦截器
阿里P7移动互联网架构师进阶视频(每日更新中)免费学习请点击:https://space.bilibili.com/4743806801.构造Demo首先构造一个简单的异步网络访问Demo:1. OkHttpClient client = new OkHttpClient();2. Request request = new Request.Builder()3. .url...转载 2019-11-18 15:44:49 · 158 阅读 · 0 评论 -
OkHttp3源码详解(二) 整体流程
阿里P7移动互联网架构师进阶视频(每日更新中)免费学习请点击:https://space.bilibili.com/4743806801.简单使用同步: @Override public Response execute() throws IOException { synchronized (this) { if (executed) throw new IllegalSt...转载 2019-11-18 15:42:30 · 165 阅读 · 0 评论 -
OkHttp3源码详解(一) Request类
阿里P7移动互联网架构师进阶视频(每日更新中)免费学习请点击:https://space.bilibili.com/474380680每一次网络请求都是一个Request,Request是对url,method,header,body的封装,也是对Http协议中请求行,请求头,实体内容的封装 public final class Request { private final Htt...转载 2019-11-18 15:40:41 · 497 阅读 · 0 评论 -
图片加载框架之图片加载框架选型(一)下篇
阿里P7移动互联网架构师进阶视频(每日更新中)免费学习请点击:https://space.bilibili.com/474380680本篇文章将通过Picasso分析、Fresco的使用来阐述图片加载框架选型:一、 Picasso分析Picasso是Square公司开源的一个Android平台上的图片加载框架核心类:Picasso:负责图片下载、变换、缓存的管理器,当它收到一个图片下...原创 2019-11-17 21:25:40 · 207 阅读 · 0 评论 -
图片加载框架之图片加载框架选型(一)中篇
阿里P7移动互联网架构师进阶视频(每日更新中)免费学习请点击:https://space.bilibili.com/474380680本篇文章将通过Glide使用来阐述图片加载框架选型:首先,添加依赖implementation 'com.github.bumptech.glide:glide:4.5.0'annotationProcessor 'com.github.bumptech.g...原创 2019-11-17 21:21:59 · 206 阅读 · 0 评论 -
图片加载框架之图片加载框架选型(一)上篇
阿里P7移动互联网架构师进阶视频(每日更新中)免费学习请点击:https://space.bilibili.com/474380680本篇文章将通过Universal-Image-Loader解析来阐述图片加载框架选型:一、[Universal-Image-Loader解析基本介绍与使用]基本介绍相信大家平时做Android应用的时候,多少会接触到异步加载图片,或者加载大量图片的问题,而加...原创 2019-11-17 21:19:58 · 448 阅读 · 0 评论 -
组件化框架设计之AOP&IOC(四)
阿里P7移动互联网架构师进阶视频(每日更新中)免费学习请点击:https://space.bilibili.com/474380680本篇文章将从以下两个方面来介绍组件化框架设计:【AOP(面向切面编程)、Filter(过虑器)、Interceptor(拦截器)】【Android IOC注入框架】一、AOP(面向切面编程)、Filter(过虑器)、Interceptor(拦截器)1....原创 2019-11-14 16:28:40 · 207 阅读 · 0 评论 -
组件化框架设计之apt编译时期自动生成代码&动态类加载(二)
11/12号文档资料已全面更新!;《【阿里P7】移动互联网架构师高级教程+BAT面试题》,点击下方链接前往领取:【阿里P7】移动互联网架构师进阶高级教程+BAT面试题本篇文章将继续从以下两个内容来介绍组件化框架设计:apt编译时期自动生成代码Android动态加载技术基础之类加载(ClassLoader)一、apt编译时期自动生成代码第一步新建一个android项目。第二步新...原创 2019-11-14 15:41:50 · 358 阅读 · 0 评论 -
开发效率优化之自动化构建系统Gradle(二)下篇
11/10号文档资料已全面更新!;《【阿里P7】移动互联网架构师进阶教程+BAT面试题》,可点击下方链接直接打开:【阿里P7】移动互联网架构师进阶高级教程+BAT面试题本篇文章将继续从自定义 Gradle 插件开发来介绍自动化构建系统Gradle:Gradle 插件简介Gradle 插件是一个能够将 Gradle 的构建逻辑(build logic)和构建任务(build task)打包到...原创 2019-11-13 15:06:01 · 540 阅读 · 0 评论 -
面试腾讯Android年入40W+不是梦--2019腾讯面试源码&原理整理大全
11/12号文档资料已全面更新!;《【腾讯T4】移动互联网架构师高级教程+BAT面试题》,点击下方链接前往领取:腾讯T4级别Android架构师面试资料+全套视频一、前言作为一个软件开发人员,工作到了一定的年限(一般是3、4年左右),如果你还没学会阅读源码,那么你就会遇到瓶颈。因为到了这个时候的开发,你应该不仅仅只会做那些 CURD 的业务逻辑,而应该会根据公司的实际情况去写框架。而基本上...原创 2019-11-12 15:39:21 · 631 阅读 · 0 评论 -
React新Context API在前端状态管理的实践
11/10号文档资料已全面更新!;《【阿里P7】Android高级教程+BAT面试题》,可复制链接后用石墨文档 App 或小程序打开:【阿里P7】移动互联网架构师进阶高级教程+BAT面试题众所周知,React的单向数据流模式导致状态只能一级一级的由父组件传递到子组件,在大中型应用中较为繁琐不好管理,通常我们需要使用Redux来帮助我们进行管理,然而随着React 16.3的发布,新contex...转载 2019-11-11 21:50:36 · 301 阅读 · 0 评论 -
FrameWork内核解析之布局加载与资源系统(三)
阿里P7Android高级架构进阶视频免费学习请点击:https://space.bilibili.com/474380680本篇文章将继续从以下两个内容来介绍布局加载与资源系统:[ LayoutManager][ Resources 和 AssetManager]一、LayoutManager流程继承RecyclerView.LayoutManager重写onLayoutChi...原创 2019-11-10 20:19:17 · 174 阅读 · 0 评论 -
数据持久化之轻量级Kv持久化(二)
阿里P7Android高级架构进阶视频免费学习请点击:https://space.bilibili.com/474380680本篇文章将继续从以下两个内容来介绍轻量级Kv持久化:[SharedPreferences详解与原理分析][ 微信MMKV源码分析]#一、SharedPreferences详解与原理分析SharedPreferences作为Android存储数据方式之一,主要特点...原创 2019-11-08 15:27:45 · 363 阅读 · 0 评论 -
Kotlin 和 Flutter 对于开发者究竟意味着什么?
更多阿里P7架构进阶学习视频:阿里P7Android架构进阶学习视频回放近些年来,编程语言流行度的变化其实不大,在 TIOBE 编程语言排行榜上,Java、C、C++ 固若金山,也就只有 Python 会攻城略地成为第四。在这 TOP3 之中,Java 以其非常优秀的普适性,可以用于前后端开发,再加上非常成熟的 JVM 虚拟机以及整个 Java 生态,让 Java 这个老大哥常年雄踞 TOP1,...原创 2019-11-06 20:12:56 · 181 阅读 · 0 评论 -
Android性能优化来龙去脉总结
更多Android高级架构进阶视频免费学习:Android高级架构进阶视频免费分享学习网址以下是本人在工作中对经历过的性能优化的一些总结,依据故事的发展路线,将其分为了5个部分,分别是:常见的性能问题;产生性能问题的一些可能原因;解决性能问题的套路;代码建议及潜在性能问题排查项。一 首先,我们先了解一下都有哪些性能问题1、内存泄露。通俗来讲,内存泄露不仅仅会造成应用内存占用过...原创 2019-11-05 16:27:15 · 435 阅读 · 0 评论 -
反射与类加载之反射基本概念与Class(一)
更多Android高级架构进阶视频学习请点击:Android架构解析的空间本篇文章将从以下几个内容来阐述反射与类加载:[三种获取Class对象的方式][获取构造器实例化对象与属性信息][Android 配置打包签名信息的两种方法][Hook动态注入代码]一、反射基本概念与三种获取Class对象的方式Class类是一切的反射根源。Class类表示什么?很多的人–可以定义一个Pe...原创 2019-11-05 15:30:46 · 213 阅读 · 0 评论 -
Android高级架构进阶之数据传输与序列化
更多Android高级架构进阶视频学习请点击:https://space.bilibili.com/474380680本篇文章将从以下几个内容来阐述数据传输与序列化:[Serializable原理][Parcelable的原理和使用方法][json]一、Serializable原理1.概念序列化:把Java对象转换为字节序列的过程。反序列化:把字节序列恢复为Java对象的过...原创 2019-11-04 14:39:14 · 319 阅读 · 0 评论 -
深入理解 Android 消息机制
原文转载:深入理解 Android 消息机制深入理解Android消息机制在日常的开发中,Android 的消息机制作为系统运行的根本机制之一,显得十分的重要。从 Handler 发送消息开始查看源码,Handler的post、send方法最终都会走到public final boolean sendMessageDelayed(Message msg, long delayMillis...原创 2019-10-25 13:52:48 · 212 阅读 · 0 评论 -
Android 开发经验分享:挺重要的网络基础
作者:舒大飞链接:https://juejin.im/post/5b49f9fbf265da0f563dc9d8网络一直是项目里比较重要的一个模块,Android开源项目上出现过很多优秀的网络框架。从一开始只是一些对HttpClient和HttpUrlConnection简易封装使用的工具类,到后来Google开源的比较完善丰富的Volley,再到如今比较流行的Okhttp、Retrofit。...原创 2019-10-24 14:25:05 · 225 阅读 · 0 评论 -
人工智能算法平台 Brain++
人工智能算法平台 Brain++第六届世界互联网大会“世界互联网领先科技成果发布活动”2019年10月20日下午17:00在乌镇互联网国际会展中心乌镇厅举行。图为人工智能算法平台 Brain++发布。旷视推出的人工智能算法平台Brain++能够很大程度将算法训练及模型改进过程流程化,减少人员参与而不牺牲训练质量,大幅提升算法训练效率。在旷视Brain++的底层支撑下,旷视开发了可部署于云端、...转载 2019-10-21 10:39:18 · 1336 阅读 · 0 评论 -
BAT面试有关散列(哈希)表的面试题详解
HashTable底层数组+链表实现,无论key还是value都不能为null,线程安全,实现线程安全的方式是在修改数据时锁住整个HashTable,效率低,ConcurrentHashMap做了相关优化。初始size为11,扩容:newsize = olesize*2+1计算index的方法:index = (hash & 0x7FFFFFFF) % tab.length1、哈希...原创 2019-10-18 11:54:53 · 460 阅读 · 0 评论 -
微信抢红包插件 English Version
这个Android插件可以帮助你在微信群聊抢红包时战无不胜。当检测到红包时,插件会自动点击屏幕,人工点击的速度无法比拟。你正在查看的是dev分支,这个分支包含大量实验性的修改,不再更新。如果你希望有一个可以立即使用的插件请切换到stable分支。注: stable分支的插件只点击最新的红包,根据目前测试抢红包成功率100%。dev分支在stable分支的基础上尝试了大量修改和优化,能使用但无法...原创 2019-10-17 20:40:14 · 1609 阅读 · 2 评论 -
GitHub 标星 6.2k+!前 Google 工程师出品,最佳开发工具大全!
一位曾经的谷歌工程师,花费两年时间,辛苦整理了一份清单。这个名为 “xg2xg” 的清单,原本是这位前谷歌工程师(ex-Googler),为所有离职的谷歌工程师写的一份 “厂外” 生存指南。但实际上,这个大全实打实地也成为了一份最佳开发工具大全。所有的程序员,都能受益于此。 https://github.com/jhuangtw-dev/xg2xg...转载 2019-10-15 15:56:07 · 164 阅读 · 0 评论 -
适配指导 | Android Q Device ID 权限变更
Android Q为加强用户的隐私保护,对系统标识符进行了限制。我们在测试中发现很多应用需要对该变更进行适配,本文将对发现的问题进行说明,以便应用开发者更好的选择适配方案。变更从 Android Q 开始,应用必须具有 READ_PRIVILEGED_PHONE_STATE 特许权限才能访问设备的不可重置标识符(包含 IMEI 和序列号)。而这个权限只可能赋予给预装在系统分区的应用,所以将影响...翻译 2019-10-14 19:33:55 · 6567 阅读 · 1 评论 -
那些得到腾讯面试offer的人欢欣雀跃背后,又有多少人在痛苦纠结中傻傻的等待?
互联网行业高薪资、大厂光环、发展前景好,竞争也是相当残酷和激烈。腾讯、阿里等BAT企业每年都会收到10W+份简历,程序员的录取率不到1%!那些得到腾讯面试offer的人欢欣雀跃背后,又有多少人简历状态一直灰着,仍在痛苦纠结中在傻傻的等待?成功的人毕竟是少数,下面看一份腾讯Android客户端面试网友分享的失败经验总结:1、自己真的很菜,基础不牢固,犯了很多致命错误,能过面试才怪呢!2、回...原创 2019-10-12 15:54:55 · 613 阅读 · 0 评论 -
美团面试者的福音-无畏挑战,极速成长
随着金九银十的招聘高峰的到来,互联网行业的金九银十跳槽季也正在吐故纳新,然而受到今年经济大环境增长放缓的影响,今年的就业形势比往年形式更加严峻一些。在这种情下,对于一批有跳槽想法的程序员,如何提升有效提升面试成功率,竞聘得到理想的工作岗位,提升薪资水平呢?在2019年金秋收获的季节,我们整理了美团技术团队精选的114篇技术干货,制作成一本厚达1200多页的电子书呈送给大家。希望能帮助到有志向加入...原创 2019-09-23 11:43:26 · 334 阅读 · 0 评论 -
今日头条APK瘦身之路
随着版本迭代,功能增加安装包体积也会慢慢增大。今日头条576版本APK达到了25M,通过一系列的优化,到目前的607版本为12M。本文主要是介绍头条APK瘦身中用到的一些方法。APK分析既然是要优化APK的大小,那首先就得看下APK文件的构成。Android Studio在2.2版本添加 APK Analyzer功能,可以直接打开apk文件,如下图所示APK文件主要有如下几部分组成:...转载 2019-09-21 16:42:08 · 666 阅读 · 0 评论 -
一直认为Android不好找工作的同学,你的问题在这里!
步入职场,很多初学Android程序员疑惑不知如何处理职场所遇到工作问题和技术深造的学习方向,移动互联网未来职业的发展方向?比如有同学问我:“ 李老师,本人对抖音真的很感兴趣。我该怎么学?”要回答这些问题,我们先从Android需要学习的基础理论知识出发,在此分享一份《Android知识大纲》给大家,再结合自身的经历,一起探讨成为高级架构师所需的职业技能,希望能帮助到在工作中遇到困惑的程序员朋友。...原创 2019-09-20 11:10:33 · 685 阅读 · 0 评论 -
至迷茫的移动互联网工作者:看数据和趋势
标题一、移动互联网的定义移动互联网是移动和互联网融合的产物,继承了移动随时随地随身和互联网分享、开放、互动的优势,是整合二者优势的“升级版本”,即运营商提供无线接入,互联网企业提供各种成熟的应用。移动互联网被称为下一代互联网web3.0。比如dropbox,uDrop这类应用就是典型的移动互联网应用。移动互联网业务和应用包括移动环境下的网页浏览、文件下载、位置服务、在线游戏、视频浏览和下载等业务...原创 2019-09-18 11:07:41 · 448 阅读 · 0 评论 -
腾讯十年开发者发自腾讯一线的真实Android面试资料
已经步入九月中旬,职场的金九银十跳槽季正悄然进行,不同的是今年比往年形式更加严峻一些,但是9、10月份仍然会有一波离职、求职潮。作为求职者来说,面试是一道坎,很多人会恐惧面试,即使是工作很多年的老鸟,可能仍存在面试的焦虑。所以今天笔者就在这里分享一波福利(文末有领取方式!),里面包含了一些高阶Android方面的技术资料,里面包括有高级UI、性能优化、移动架构师、NDK、混合式开发(ReactN...原创 2019-09-17 11:47:41 · 1196 阅读 · 4 评论 -
国民级App性能优化方案+深层次实践=让你真正进阶的资料
如何吃透Android性能优化技能&黑科技,使你的App达到极致的流畅与稳定,今天我们主要详解掌握性能优化难点及工具使用。1.性能优化分析工具学习在开始代码优化之前,先得学会使用性能分析工具。以下三个工具都是谷歌官方推出的,可以帮助我们定位分析问题,从而优化我们的APP。System TraceSystrace是一个收集和检测时间信息的工具, 它能显示CPU和时间被消耗在哪儿了...原创 2019-09-16 14:15:35 · 259 阅读 · 0 评论 -
如果你想成为Android高级架构师,千万记得要学好Dagger2
**一、什么是Dagger2**Dagger2是Google提供的依赖注入框架,依赖注入为Android中组件之间的解耦提供了很好的解决方案。使用它可以自动生成创建依赖关系所需要的代码。减少很多模板化的代码,更易于测试,降低耦合,创建可复用可互换的模块。已经在越来越多的开源项目中被使用,其已经发展成为未来的一个技术趋势。二:为什么要使用Dagger2举例说明使用的时候我们就要如果...原创 2019-09-12 16:59:53 · 288 阅读 · 0 评论 -
程序员:每一份不忘初心的情怀, 都是对技术的追求
1、真正的情怀,是从不矫情这几年“情怀”大约快成了贬义。创业讲情怀,产品讲情怀,好像没点情怀都不好意思出门见人。我们曾经充满热情,是一位开源软件倡导者,我们崇尚全栈工程师才有未来的理念,我们渴望改变世界。但是现在我们每天都处于焦虑之中。有程序员网友在问答平台,征集为啥要做程序员,初心是什么?回答褒贬不一,消极言论居多,下面我们看看网友如何答复。另有网友回复:“一位大牛曾经说过:“我以...原创 2019-09-12 10:53:37 · 1135 阅读 · 0 评论 -
程序员:时间就是最好的创意
在这个物资丰富的时代,大众更趋向于简单的美和朴素的精致。18世纪,卢梭和康德就把“怀旧”定义为“对一段过去时光的怀念”。一项针对80后的调查显示,43.7%的人表示自己有时怀旧,37.5%的人经常怀旧,从不怀旧的人只有1.5%。社会在日新月异发展,每个人为了跟上这个「快节奏」的状态,也不可避免地要将自己的生活调成加速档,浮躁焦虑是我们很难摆脱的时代通病。复古所带来的永恒性,是当下我们年轻人在...原创 2019-09-24 10:27:18 · 284 阅读 · 0 评论 -
Flutter浪潮下的音视频研发探索
前言现在市面上的图像,音视频软件越来越多,最近两年也是直播,短视频的红利期。抖音的火爆,不仅意味着垂直短视频可以获得爆发式增长,综合平台嵌入短视频,更能极大提高用户活跃度。因此掌握并熟练运用音视频、图像技术已经是当前互联网时代不可或缺的技能,而且这个技能是具有沉淀性质的。本次分享的主题是 Flutter 浪潮下的音视频研发探索,首先对 Flutter 做一个简单介绍以及选择 Flutter 作...原创 2019-09-25 10:42:39 · 293 阅读 · 0 评论 -
为 Android 应用打造精良的 Chrome OS 使用体验
从发布我们的首款平板电脑和可拆分式笔记本,到在日本和德国等新市场推出 Chromebook,我们一直在努力使 Chrome OS 设备的生态系统满足如今应用用户们的需求。随着人们越来越多地在大屏幕设备或者多型态设备上使用应用,开发者们的作品也得以吸引大量全新的用户。Android 支持各种各样的大屏幕设备,包括平板电脑、可折叠设备、Chrome OS 笔记本等等。由于 Chromebook 在容...原创 2019-10-11 13:52:23 · 959 阅读 · 0 评论 -
程序员应聘经验的重要性
由于开发人员岗位技术含量要求很高,因此我们程序员很难不会在接受大量工作面试之前感到紧张。当我们接到有关面试机会的通知时,然而技术招聘人员倾向于在考虑候选人参与之前优先考虑其开发人员招聘过程的其他方面。尽管这次面试机会听起来如何不错,但是招聘人员忽略了我们程序员的最大利益。为了更好的提升面试体验,避免企业失去顶尖技术候选人,以下几种积极的求职体验可以帮助企业在竞争中脱颖而出,以聘请开发人员。被拒...原创 2019-10-11 11:31:17 · 229 阅读 · 0 评论