高级开发
初壹十五a
https://github.com/xiangjiana/androids
展开
-
Android 纯音生成方法
因项目需要在 APP 中播放纯音,耳机测听的需求,了解在 Android 系统中,纯音播放有两种方式,一种是在程序中模拟出一个波形满足正弦波的音频数据,另一种就是事先准备好多个音频文件然后直接播放。若使用事先准备的音频,效果是可以达到(且可能更好),但需要准备各种分贝、频率的音频文件,算下来,要制作上百个,所以这里讨论通过程序模拟生成纯音。所有声音都是有正弦波组成,只不过纯音是固定频率的正...原创 2019-08-06 23:07:39 · 1200 阅读 · 2 评论 -
2019AndroidBAT.字节跳动74道高级面试第二篇
前言经过一波一波的淘汰与洗牌,剩下的都是技术的金子。就像大浪褪去,裸泳的会慢慢上岸。而真正坚持下来的一定会取得不错成绩。毕竟Android市场是如此之大。从Android高级的蓬勃的就业岗位需求来看,能坚信我们每一位Android开发者的梦想 。接下来我们针对Android高级展开的完整面试题2019Android74道高级面试题合集目录(含BAT 字节跳动等等)阿里巴巴–Android...原创 2019-07-08 16:59:04 · 267 阅读 · 0 评论 -
BAT架构师花近十年时间整理的Android核心知识清单(Android岗)
整理了一份Android核心知识点。覆盖了底层开发,架构,性能优化,Flutter大量知识点。如果需要获取到这个【核心知识点整理】文档的话帮忙转发一下然后再关注我得到获取方式吧!如果需要获取到这个【核心知识点整理】文档的话帮忙转发一下然后再关注我查询主页获取领取方式...原创 2019-07-02 16:14:44 · 313 阅读 · 0 评论 -
2019最新Android中级面试题目汇总解答[上]
注:因为实际开发与参考答案会有所不同,再者怕误导大家,所以这些面试题答案还是自己去理解!面试官会针对简历中提到的知识点由浅入深提问,所以不要背答案,多理解。Android进阶延伸点1、如何进行单元测试,如何保证App稳定 ?参考回答:要测试Android应用程序,通常会创建以下类型自动单元测试本地测试:只在本地机器JVM上运行,以最小化执行时间,这种单元测试不依赖于Android框...原创 2019-06-18 15:34:39 · 683 阅读 · 0 评论 -
Flutter系列(三) 整体架构
您好,欢迎关注我的专栏,本篇是关于 Flutter 系列的第三篇,从简单的 Flutter 介绍开始,一步步带你了解进入 Flutter 的世界。你最好有一定的移动开发经验,如果没有也不要担心,在我的专栏底部给我留言,我会尽我的能力给你解答。上篇文章我们介绍了用 Flutter 开发第一个跨平台应用程序,相信大家一定印象深刻,本篇文章介绍 Flutter 平台的整体架构。一.核心原则之前...原创 2019-06-21 16:18:52 · 567 阅读 · 0 评论 -
Flutter系列(二) 创建第一个应用
您好,本篇是关于Flutter的系列篇,从简单的Flutter介绍开始,一步步带你了解进入Flutter的世界。你最好有一定的移动开发经验,如果没有也不要担心,在我的专栏底部给我留言,我会尽我的能力给你解答。上篇文章我们简单的介绍了Flutter开发环境,相信大家已经可以自己构建基于Flutter的开发环境了吧,本篇文章介绍如何运行起来属于你的第一个Flutter应用。本专栏默认使用Mac...原创 2019-06-20 16:52:47 · 369 阅读 · 0 评论 -
android 启动速度优化
app的启动速度在用户体验方面是一个重要的指标,当一个可替代行强的app启动异常缓慢时,必然会导致用户的流失。App启动方式 冷启动 热启动 温启动冷启动(Cold start)冷启动是指APP在手机启动后第一次运行,或者APP进程被kill掉后在再次启动。可见冷启动的必要条件是该APP进程不存在,这就意味着系统需要创建进程,APP需要初始化。在这三种启动方式中,冷启动耗时最长,对于冷启动...原创 2019-06-03 17:32:01 · 362 阅读 · 0 评论 -
Flutter 系列(一)安装与配置
您好,欢迎关注我的专栏,本篇是关于Flutter的系列篇,从简单的Flutter介绍开始,一步步带你了解进入Flutter的世界。你最好有一定的移动开发经验,如果没有也不要担心,在我的专栏底部给我留言,我会尽我的能力给你解答。上篇文章我们简单的介绍了一下什么是Flutter,相信大家已经摩拳擦掌想真枪实弹的试一试了吧,本篇文章就介绍如何配置Flutter的开发环境。本专栏默认使用MacOS...原创 2019-06-19 16:26:12 · 414 阅读 · 0 评论 -
android bitmap的缓存策略
在这篇文章中:1.lrucache2.disklrucache3.缓存策略对比与总结不论是android还是ios设备,流量对于用户而言都是宝贵的。在没有wifi的场景下,如果加载批量的图片消耗用户过多流量,被其知晓,又要被念叨一波~如何避免消耗过多的流量呢?当程序第一次从网络加载图片后,就将其缓存到移动设备上,这样再次使用这个图片时,就不用再次从网络上下载为用户节省了流量。目前...原创 2019-06-03 17:12:43 · 344 阅读 · 0 评论 -
Android高级开发-布局渲染流程与优化
扩展知识CPU(中央处理器)与GPU(图像处理器)主要是设计目标不同,针对不同的应用场景。多缓存多分支,适用于复杂的逻辑运算,主要负责Measure,Layout,Record,Execute的计算操作。CPU擅长逻辑控制和通用类型数据运算。CPU的运算速度取决于请了多么厉害的教授,教授处理复杂任务的能力高,但简单重复的任务,还是人多快。众核少缓存,适用于结构单一的数据处理,主要负责Rast...原创 2019-06-03 16:01:50 · 341 阅读 · 0 评论 -
手写消息总线LiveDataBus
Android四大组件和线程间通信方式有很多,比如Handler管道、广播、接口回调、rxBus、EventBus等,但是这些方式都存在一些瑕疵,具体的优缺点如下:那么有没有一种通信方式可以集以上所有框架的优点于一身,并且避免以上缺点呢?答案就是作者今天要分享的livedatabus,livedatabus是基于原生的livedata实现的通信框架,它拥有以下的优点:首先我们来看一下Liv...原创 2019-05-29 17:06:21 · 391 阅读 · 0 评论 -
Android Jetpack - 使用 Navigation 管理页面跳转
在今年的 IO 大会上,发布了一套叫 Android Jetpack 的程序库。Android Jetpack 里的组件大部分我们都接触过了,其中也有一些全新的组件,其中一个就是 Navigation。简介Navigation 是用来管理 APP 里页面跳转的。起初,我以为它是用来代替 startActivity 的,但其实并不是,大家往下看就知道它的作用了。另外,iOS 的同学可能会有似曾...原创 2019-05-29 15:58:02 · 2828 阅读 · 0 评论 -
每日一问:Android 中内存泄漏都有哪些注意点?
内存泄漏对每一位 Android 开发一定是司空见惯,大家或多或少都肯定有些许接触。大家都知道,每一个手机都有一定的承载上限,多处的内存泄漏堆积一定会堆积如山,最终出现内存爆炸 OOM。而这,也是极有可能在 Android 面试中一道常见的开放题。内存泄漏的根本原因是一个长生命周期的对象持有了一个短生命周期的对象如果你对垃圾回收机制有所了解,我想这个问题基本难不住你,因为知道了原理,自然不会去...原创 2019-06-06 16:34:55 · 386 阅读 · 0 评论 -
Android之HashMap详解
前言HashMap是面试中比较常见的问题,这一篇,我们将通过阅读源码,了解其设计原理以及以下问题HashMap的实现原理初始容量为什么是2的倍数如何resize是否线程安全常用参数 //最大容量 2的30次方 static final int MAXIMUM_CAPACITY = 1 << 30; //初始容量为16 扩容时才会触发 st...原创 2019-06-06 15:08:13 · 3777 阅读 · 0 评论 -
android 通过修改图片像素实现CircleImageView
CircleImageView实现方法有很多种,各有优缺点,因此需要按照不同的场景使用。我们今天使用修改图片像素的方法实现CircleImageView,主要知识点无非是勾股定理和点到圆形的距离。素材图片:效果如下:1、clipPath裁剪画布该方法支持的最小版本是Android 4.3(API Level 18),方便快捷,但是不支持硬件加,此外也存在Path既有的缺点,不支持抗锯齿...原创 2019-06-27 17:43:48 · 617 阅读 · 0 评论 -
每日一道面试题,2019Android大型Bat面试知识分享
前言最近半年,常常有人问我 “Android就业市场究竟怎么样,我还能不能坚持下去 ?”现在想想,移动互联网的发展不知不觉已经十多年了,Mobile First 也已经变成了 AI First。换句话说,我们已经不再是“风口上的猪”。移动开发的光环和溢价开始慢慢消失,并且正在向 AI、区块链等新的领域转移。移动开发的新鲜血液也已经变少,最明显的是国内应届生都纷纷涌向了 AI 方向。 可以说...原创 2019-07-08 21:07:38 · 463 阅读 · 0 评论 -
手写消息总线LiveDataBus,让你永无后顾之忧
做了很久的面试专题,不知道对各位需要面试和有跳槽想法的小伙伴有没有帮助,今天收集一篇关于LiveDataBus方面的文章,面试方面的收集,后续我还会持续更新如果觉得有用可以点个关注Android四大组件和线程间通信方式有很多,比如Handler管道、广播、接口回调、rxBus、EventBus等,但是这些方式都存在一些瑕疵,(比如EvebtBus可能现在用的人比较少了,个人见解可以能算半个过...原创 2019-07-22 17:20:50 · 417 阅读 · 0 评论 -
2019年最新Android面试精讲--带你复制年薪70W的神话
其实如果你技术深度足够,大必不用为就业而忧愁。每个行业何尝不是这样,最开始的风口,到慢慢的成熟。Android初级在2019年的日子里风光不再, 靠会四大组件就能够获取到满意薪资的时代一去不复返。**经过一波一波的淘汰与洗牌,剩下的都是技术的金子。就像大浪褪去,裸泳的会慢慢上岸。**而真正坚持下来的一定会取得不错成绩。毕竟Android市场是如此之大。从Android高级的蓬勃的就业岗位需求来看...原创 2019-07-29 17:38:26 · 591 阅读 · 1 评论 -
在腾讯面试,被问到组件化如何实现,组件化与插件化的差别在哪里,该怎么选型?
本专栏专注分享大型Bat面试知识,后续会持续更新,喜欢的话麻烦点击一个关注面试官: 组件化如何实现,组件化与插件化的差别在哪里,该怎么选型心理分析:面试官从架构层次 了解求职者是否用过 模块化 组件化 和插件化,在过去经验有没有运用过这些技术到项目中,这道题属于一个连环炮。求职者该格外小心求职者:应该从App开发的需求来定义技术选型,分别说说模块化,组件化 插件化的优势和区别先上一...原创 2019-07-24 17:22:49 · 2016 阅读 · 1 评论 -
Android 高质量开发之存储优化
数据的交互及存储是任何开发都绕不过的事情,Android平台涉及数据存储有:SharedPreferences存储数据、文件存储数据、SQLite数据库存储数据、使用ContentProvider存储数据、网络存储数据一、引言Android 提供了很多种持久化存储的方案,存储就是把特定的数据结构转化成可以被记录和还原的格式,这个数据格式可以是二进制的,也可以是 XML、JSON、Prot...原创 2019-07-23 17:17:17 · 783 阅读 · 0 评论 -
腾讯面试合集:热修复连环炮(热修复是什么 有接触过tinker吗,tinker原理是什么)
本文为大型面试分析,需要的可以点个关注废话不多说,先来一张此系列文的面试资料目录1.热修复是什么热修复无疑是这2年较火的新技术,是作为安卓工程师必学的技能之一。在热修复出现之前,一个已经上线的app中如果出现了bug,即使是一个非常小的bug,不及时更新的话有可能存在风险,若要及时更新就得将app重新打包发布到应用市场后,让用户再一次下载,这样就大大降低了用户体验,当热修复出现之后,...原创 2019-07-16 17:54:30 · 588 阅读 · 0 评论 -
还不懂Binder的原理?你损失了一张腾讯offer
本专栏专注分享大型Bat面试知识,后续会持续更新,喜欢的话麻烦点击一个关注先上一份BATJ系列面试文的面试目录腾讯面试官:谈一谈Binder的原理和实现一次拷贝的流程心理分析:能问出该问题,面试官对binder的理解是非常深入的。想问求职者对Android底层有没有深入理解求职者:应该从linux进程通信原理的两次拷贝说起,然后引申为什么binder却只有一次拷贝 ,最后阐述内核空...原创 2019-07-18 20:42:50 · 555 阅读 · 1 评论 -
阿里巴巴 说说 Android 虚拟机Dalvik与ART区别在哪里?
本专栏专注分享大型Bat面试知识,后续会持续更新,喜欢的话麻烦点击一个关注废话不多说先上面试目录Android开发中我们接触的是与Java虚拟机类似的Dalvik虚拟机和ART虚拟机,下面梳理一下三者区别和原理:一,Dalvik虚拟机 Dalvik虚拟机( Dalvik Virtual Machine ),简称Dalvik VM或者DVM。Dalvik 发音有道词典并没有收录。说说来...原创 2019-07-11 16:10:29 · 257 阅读 · 0 评论 -
腾讯Android面试:Handler中有Loop死循环,为什么没有阻塞主线程,原理是什么
面试官: Handler中有Loop死循环,为什么没有阻塞主线程,原理是什么心理分析:该问题很难被考到,但是如果一旦问到,100%会回答不上来。开发者很难注意到一个主线程的四循环居然没有阻塞住主线程**求职者:**应该从 主线程的消息循环机制 与Linux的循环异步等待作用讲起。最后将handle引起的内存泄漏,内存泄漏一定是一个加分项先来一份整理的面试目录前言Android的...原创 2019-07-15 16:06:44 · 4044 阅读 · 2 评论 -
2019Android74道高级面试合集(含BAT字节跳动等等)
前言最近半年,常常有人问我 “Android就业市场究竟怎么样,我还能不能坚持下去 ?”现在想想,移动互联网的发展不知不觉已经十多年了,Mobile First 也已经变成了 AI First。换句话说,我们已经不再是“风口上的猪”。移动开发的光环和溢价开始慢慢消失,并且正在向 AI、区块链等新的领域转移。移动开发的新鲜血液也已经变少,最明显的是国内应届生都纷纷涌向了 AI 方向。 可以说...原创 2019-07-05 16:54:01 · 565 阅读 · 0 评论 -
200行代码打造超越一线互联网公司的换肤架构
本专栏专注分享大型Bat面试知识,后续会持续更新,喜欢的话麻烦点击一个关注文末有次文章的视频教程面试官: 网易云QQ的换肤是怎么做到的,你对换肤有了解吗?看过换肤的原理没?心理分析:没有接触过换肤技术 第一次听到该名词肯定会很茫然。面试官考的是对资源加载,监听布局,有没有了解.本文从换肤实战一对一讲解。告诉你如何做以及实现。文章末尾带换肤项目源码求职者: 从监听布局开始到 换肤原理,详...原创 2019-07-09 15:42:56 · 231 阅读 · 0 评论 -
Flutter 实现抽屉动画
您好,欢迎关注我的,本文章是关于 Flutter 的系列文,从简单的 Flutter 介绍开始,一步步带你了解进入 Flutter 的世界。你最好有一定的移动开发经验,如果没有也不要担心,在我的专栏底部给我留言,我会尽我的能力给你解答。上一篇专栏教大家如何在Flutter中拖拽View,并讲解了会遇到的坑。这篇会深化View拖拽实例,利用Flutter Animation、插值器以及Animat...原创 2019-07-03 17:32:57 · 1210 阅读 · 0 评论 -
2019最新Flutter 面试知识点集锦(二)
紧接上文2019最新Flutter 面试知识点集锦(一)PlatformViewFlutter 中通过 PlatformView 可以嵌套原生 View 到 Flutter UI 中,这里面其实是使用了 Presentation + VirtualDisplay + Surface 等实现的,大致原理就是:使用了类似副屏显示的技术,VirtualDisplay 类代表一个虚拟显示器,调用...原创 2019-05-27 16:33:56 · 651 阅读 · 0 评论 -
20道25K+Android工程师面试必问面试题
很多朋友都或多或少经历过很多面试,而有的人拿到了自己心仪的offer,有的人却被拒之门外。那么今天整理了一份面试经常会问到的题目,希望可以帮助到更多的人。本文讲解:我们为什么要选择离职面试必问面试题如何选择心仪的公司一.我们为何选择离职工资跟不上消费上班找不到归宿感和成绩感,上班感觉和坐牢一样在公司没有发展空间(之前我有一篇介绍选择公司注重薪资和个人薪资的文章,可以参考从...原创 2019-05-17 17:48:38 · 1500 阅读 · 0 评论 -
Android 开发面经,历时两月斩获BAT+头条四个公司 Offer
拿了 BAT+头条 四个 offer;同时也在帮公司招聘,筛选简历并面试。对技术面试这回事有一些体会,在此分享。坦白说,我对我个人在这次求职中的表现并不十分满意,面试前没有做足够充分的准备——数次被面试官出的题目“虐”、应对面试的压力时没能做到沉着冷静、在面试中未能完整地把自己的积累与优势表现出来……所以本篇文章并不是一个“成功者”的经验分享,而是一个普通人经历过各种面试后的一个总结与反思。一...原创 2019-05-14 17:28:30 · 509 阅读 · 1 评论 -
写给有 Android 开发经验的你们
前言不是要你给出每一个问题的标准答案,而是要你给出这个问题的你的、自己的答案。一 关于简历面试首先要提到的就是简历,简历这个东西真的是一个很深奥的事情,为什么深奥,其实是对像和我这样的人深奥:学历不好、工作经历不好。当然,这和目前技术研发人才需求的大环境也有关系,而且上述两点会越来越影响简历的通过性。说一个真实的事情大家就有概念了,这是一个前同事私下告诉我的,他比我先一年多离开公司,然后到了...原创 2019-05-09 16:45:40 · 174 阅读 · 0 评论 -
2019最新百度、头条、小米、360、网易、等公司 Android 社招面试题目
一.拼多多"备受争议"的一家电商公司,发展很快,不过这不是我想说的重点,我想说的是,拼多多的两位技术面试官很和蔼(当然hr同学也很好了~),提出的问题很新颖,就拿Handler来说吧,大部分的公司都会直接问,说说你对消息机制Handler的理解,拼多多的提问大概意思是:1.让你设计一个线程池,如果调用者在传入的Runnable任务时,在run方法直接使用了Handler,会发生什么?2.1...原创 2019-05-09 16:37:12 · 336 阅读 · 0 评论 -
最新百度、头条、小米、360、网易、等公司 Android 社招面试心得
总人很多人去寻找名叫“面经”一样的东西,其实就是一个个具体的题目,然后临阵磨枪,去“背”答案,如果一直是这样的话,我相信你的能力不会有任何提高,即使工作三年五年也达不到高级工程师的水平,事实证明这类“程序员”占大多数。而且我认为一个“面经”真正有价值的内容是面试前你是如何学习的,面试中面对不会的题目你是如何回答的,以及面试后的你的感受和总结,而不是冷冰冰的罗列题目。一.想要分享的内容开篇我...原创 2019-05-13 17:57:36 · 697 阅读 · 0 评论 -
Android 开发面试 “67” 问
如何才能通过一线互联网公司面试?相信这是很多人的疑惑,希望看完本篇文章能给大家一些启发。下面的截图就是我第一次的面试题记录,当天面试完晚上回到家写下的几个问题。现在从上面的几个问题,发展成了6K star的项目,以下问题是我整理的最新的一线公司面试记录,文章最后有我多年面试的经验分享给大家。基础问题相关(问题答案在下文):1、接口的意义-百度2、抽象类的意义-百度3、内部类的作用-...原创 2019-05-08 21:08:42 · 225 阅读 · 0 评论 -
Android进阶:五、RxJava2源码解析 2
上一篇文章Android进阶:四、RxJava2 源码解析 1里我们讲到Rxjava2从创建一个事件到事件被观察的过程原理,这篇文章我们讲Rxjava2中链式调用的原理。本文不讲用法,仍然需要读者熟悉Rxjava基本的用法。一.Rxjava2 的基本用法Rxjava是解决异步问题的,它的链式调用让代码看起来非常流畅优雅。现在我们带上线程切换以及链式调用来看看。下面代码是示例: O...原创 2019-04-25 17:14:29 · 212 阅读 · 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-04-25 16:40:57 · 478 阅读 · 0 评论 -
Android进阶:三、这一次,我们用最详细的方式解析Android消息机制的源码
决定再写一次有关Handler的源码Handler源码解析一、创建Handler对象使用handler最简单的方式:直接new一个Handler的对象Handler handler = new Handler();所以我们来看看它的构造函数的源码: public Handler() { this(null, false); } public Ha...原创 2019-04-24 17:10:13 · 163 阅读 · 0 评论 -
Android进阶:二、从源码角度看透 HandlerThread 和 IntentService 本质
上篇文章我们讲日志的存储策略的时候用到了HandlerThread,它适合处理“多而小的任务”的耗时任务的时候,避免产生太多线程影响性能,那这个HandlerThread的原理到底是怎样的呢?我们现在从源码角度解读HandlerThread:继承自Thread,是一个可以使用Handler的Thread。因为在run方法内维护了一个Looper,可以通过Handler发送消息的方式,来通知...原创 2019-04-23 14:58:56 · 242 阅读 · 0 评论 -
Android进阶系列:八、自定义View之音频抖动动效
自定义动画效果——音频抖动效果绘制一个矩形:想要绘制一个矩形,继承View,并重写onDraw方法即可。复杂一点还可以重写onMeasure方法和onLayout方法进行大小测量和位置测量。但本文不打算写那么复杂的view,故只需要重写一个onDraw方法即可:private RectF rectF = new RectF();//绘制矩形 private float lineWid...原创 2019-04-27 20:19:44 · 1595 阅读 · 0 评论 -
从BAT这种公司平薪跳槽头条,是否值得?
有一个朋友之前就职于阿里,之前交流关于跳槽的问题,具体是这样的:阿里工作3年,拿到了头条的offer.但是非常纠结要不要接的问题。于是几个朋友聚在了一起讨论了这个问题而且最近好多读者也在参加面试,接下来就分享下对于如何选择Offer.从哪些方面看这这个事情的问题的看法一.先谈谈程序员为什么要跳槽1.因为程序员都是“香饽饽”首先,这个市场对优秀人才的需求,总是很高的。我很多优秀的同事,每...原创 2019-04-26 15:54:48 · 603 阅读 · 0 评论