一年Android工作经验,今日头条 阿里 百度 网易 美团 小米 快手面经

前言 人生困难重重,在漫长而艰辛的前行路上,坚持不懈、脚踏实地的“低头拉车”固然重要。但认清形势、找准目标的“抬头看路”也很关键,甚至决定着你能否达到成功彼岸。只寻求远方的梦想,而不付出当下的努力,那是迷梦;只知道埋头苦干,而不认清方向,那是徒劳。 先简单说说我最近的面试经历吧。面试的公司很多...

2017-06-22 20:11:53

阅读数 17214

评论数 64

浅析Android插件化

前言 在Android 9.0的jar包中,可以发现很多函数添加了@hide,这表示google显示了对@hide api的反射调用,上有政策,下有对策,我天朝人民的智慧是无穷尽的,具体的方案可以参考一种绕过Android P对非SDK接口限制的简单方法。按理说只要在Android 9.0的手机反...

2019-04-28 21:42:14

阅读数 92

评论数 0

基于ASM的组件化框架

背景 我们在开发一个应用时,会随着时间、人员和需求的增多,我们的代码也会以一个非常快的速度在迭代,同时由于每个人的开发水平不一样,就会有各种各样的问题,如果一直在一个project中开发,很快演变成一个高耦合、臃肿和复杂的项目,所以我们就需要对项目进行优化,我们经常听的有模块化、组件化和插件化,这...

2019-03-25 14:06:07

阅读数 77

评论数 0

apk打包流程

aapt资源编译 编译assets目录和res/raw目录下的资源 编译res目录下的资源文件 给res目录下的每个资源赋予一个资源ID,生成resource.arsc资源索引文件 解析并编译AndroidMainifest.xml 资源打包成*.ap_,资源ID常量定义自R.java 资源索...

2019-02-25 13:44:13

阅读数 87

评论数 0

字节跳动屏幕适配方案解读

说来惭愧,这个方案在微信公众号推出来的时候,我才去了解我司自己的适配方案。字节跳动屏幕适配方案 重点 为什么要做屏幕适配 从数据上告诉你安卓手机屏幕的碎片化 我司的适配方案 适配中出现的问题 实际演练 为什么要做屏幕适配 在Android开发中,由于Android的碎片化严重,屏幕分辨率千奇...

2019-01-19 12:57:25

阅读数 225

评论数 0

手摸手带你走进Kotlin Coroutine

参考文章 kotlin官网 kotlin github Roman Elizarov 视频(基于1.3之前的,一些用法已经改变,但是主要看原理和思想) Roman Elizarov 视频深入(基于1.3之前的,一些用法已经改变,但是主要看原理和思想) Roman Elizarov 基于1.3讲解 ...

2018-12-24 11:33:37

阅读数 518

评论数 0

轻量级的MVVM

背景 现在的项目中各种开发框架都有,MVC,MVP,MVVM。比较混乱,虽然也推出了MVVM,但是由于没有强制和代码历史的问题,大部分的时候还是使用之前的开发框架进行开发,所以现在整个项目的结构比较复杂和混乱。 先设立一个小目标,先在咱们组内,统一开发框架,实践出真知,在实践中检测这个框架的易用性...

2018-11-25 17:11:01

阅读数 273

评论数 0

Gradle-自定义plugin

为什么要学习Gradle Gradle目前已经应用于多个Android开发的技术体系中,比如构建系统、插件化、热修复和组件化,如果不了解Gradle,那么对于上述技术体系的了解会大打折扣 上述一段文字是比较传统的解释,我开始系统的学习gradle是因为,项目由于引入了组件化的开发模式,模块之间...

2018-10-28 13:57:14

阅读数 109

评论数 0

优雅的使用Kotlin

优雅的使用Kotlin 这篇文章并不会从零开始来教你怎么使用Kotlin,Kotlin对于笔者来说也是一个新概念,由于大势所趋(Google所有的官方Demo都开始用Kotlin,各大第三方Library也开始适配Kotlin),所以不会Koltin寸步难行呀~,经过一段时间的学习和练习,对Kot...

2018-09-26 11:31:13

阅读数 409

评论数 0

优雅的监听软键盘隐藏

背景 Android软键盘的显示和隐藏,从开始做直播这块,就一直困扰着我。 从布局挤压,到输入区显示不全,再到闪屏以及卡顿,这里的坑让我跌倒无数次。 各种布局监听,回调,代码冗余、复杂、与业务强耦合无法复用,还是没有很好的解决键盘的弹出和隐藏 为了给用户更好的操作体验,决定找到一种最优解决方案...

2018-08-11 16:43:28

阅读数 969

评论数 4

Retrofit2源码阅读

本次分析的要点: 1. Retrofit中的动态代理和整个流程(Proxy、ServiceMethod、OkHttpCall) 2. Retrofit中的转换器和适配器(Converter、CallAdapter) Retrofit整体流程和动态代理 首先我们回顾一下retrofit的...

2018-07-31 10:59:56

阅读数 258

评论数 0

OkHttp3源码分析

重点 本文打算从三点来剖析OkHttp3: * 网络请求的整理流程-会使用 * 拦截器模式-易扩展 * 缓存和连接池-高性能 整体流程 我们在阅读某一类源码之前,首先要学会怎么使用,其次才是去了解内部的实现原理,实现方案上有什么技巧。 okhttp的一张流程图: 官方用...

2018-06-28 14:40:10

阅读数 934

评论数 0

绘制性能优化-ConstraintLayout

ConstraintLayout是2016年Google发布的,这种新的布局方式支持了编辑器的方式,从布局和性能上都做了一定的优化,同时也增加了一些新的概念,例如约束链和设置大小比例。本文从将会从性能上与传统的布局进行比较,并且给出使用在项目上的建议。 Android的绘制流程 首先回顾一...

2018-05-31 20:48:26

阅读数 700

评论数 0

Android 投影MAC,Vysor pro 破解

投影工具 当我们需要做产品演示,或者需要在手机上做一些讲解时,需要让大家看到手机屏幕,这个时候就需要一款好的投影工具。 现在比较好用的是: Vysor是一款可以使用电脑操作安卓手机的谷歌浏览器插件,非常流程和方便,但是免费版的话,画面质量非常差,后面会介绍怎么破解。 AirDroid 是一...

2018-04-24 16:49:39

阅读数 2917

评论数 0

Gradle学习笔记

gradle学习笔记(一) 概念 Gradle本身是基于Groovy脚本语言进行构建的,并通过Domain Specific Language(DSL语言)进行描述和控制构建逻辑的。 参考的文档: 官方文档 中文翻译文档 Gradle用户指南 Android Studio构建指南 A...

2018-03-30 19:19:08

阅读数 213

评论数 0

AOP在Android中最佳用法

AOP AOP(Aspect Oriented Programming)是面向切面编程,AOP和我们平时接触的OOP编程是不同的编程思想,OOP是面向对象编程,提倡的是将功能模块化,对象化。而AOP的思想则是提倡针对同一类问题统一处理,当然,我们在实际编程过程中,不可能单纯的AOP或者OOP的思...

2018-02-28 16:58:51

阅读数 1710

评论数 0

基于Kotlin实现注解生成器(Annotation Processor)

随着一些使用注解生成器(annotationProcessor)的框架的流行,例如ButterKnife、dagger2、EventBus 3.0。我需要了解注解生成器的相关知识。 APT APT(Annotation Processing Tool)是一种处理注解的工具,它对源代码文件进...

2018-01-30 14:38:04

阅读数 1482

评论数 1

解决 android-apt plugin is incompatible with the Android Gradle plugin. Please use 'annotationProcesso

在使用EventBus 3.0的时候,在Android Studio 执行Sync Project的时候出现了这个错误 android-apt plugin is incompatible with the Android Gradle plugin. Please use 'annotati...

2018-01-29 15:40:25

阅读数 3923

评论数 0

Gradle发布Library到JCenter

之前工作的时候,认为只用关注代码本身就可以,将代码写好,其他的都不需要关心,但是这个认识的狭隘的,任何可以提升我们开发效率的工具或者语言我们都应该适当的去关注一下。 平常在工作中我们常常会引用到第三方的开源库,比如Fresco、EventBus等。在gradle中用compile引用:compi...

2017-12-31 16:27:17

阅读数 260

评论数 0

MAC更新系统后,android studio提示git不能使用,提示missing xcurn at

今天更新mac系统后,然后就踩了这个坑启动Andtoid studio右下角提示然后点击 fix,调到设置页面git路径出现了问题提,我这里的解决方案是,下载一个git for mac的版本,安装完成后,在android studio页面改变git的路径就ok

2017-12-31 15:25:43

阅读数 247

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭