
移动开发
初壹十五a
https://github.com/xiangjiana/androids
展开
-
冬困秋乏春无力?来一份全面的面试宝典洗洗脑
就在前两天迎来了最难熬的一天“冬至”。到了冬天,就有点犯困,果然是冬困秋乏春无力。所以趁着年底总结一份比较全面的面试宝典,给自己洗洗脑。温故而知新(以下是整理的面试宝典的核心笔记图)(顺手留下GitHub链接,需要获取相关面试或者面试宝典核心笔记PDF等内容的可以自己去找)https://github.com/xiangjiana/Android-MS更多完整项目下载。未完待续。源码...原创 2019-12-24 17:38:47 · 585 阅读 · 0 评论 -
吃一堑长一智,作为程序员的我们记住这几点
正文1、多沟通,先理解需求,再动手写代码。墨菲定律真的很适用需求沟通,你不理解的需求做出来往往都是错的!这样只会浪费时间,浪费精力。2.写代码前先要理好思路,接着再写代码也不迟拿到需求,按照要实现的功能,先分析去实现的思路。 在分析实现思路的时候,可以一边分析,一边用中文把它写下来。或者你在工具里直接写成注释,那接下来的工作就是一个个翻译的过程,很容易实现了。可以避免少走很多弯路。...原创 2019-10-16 14:20:23 · 228 阅读 · 0 评论 -
腾讯面试笔记:volatile关键字与synchronized关键字在内存的区别
本专栏专注分享大型Bat面试知识,后续会持续更新,喜欢的话麻烦点击一个关注volatile关键字与synchronized关键字 作为Android开发者 我们总是傻傻的分不清。这一小节中,我们从腾讯面试中给大家讲解他们之间的作用和区别,在了解他们区别之前 我们得看看什么是线程安全性线程安全性:线程安全性包括两个方面①可见性。②原子性。线程之间的通信:线程的通信是指线程之间以何...原创 2019-10-15 15:26:29 · 486 阅读 · 1 评论 -
还不懂Binder的原理?你损失了一张腾讯offer
本专栏专注分享大型Bat面试知识,后续会持续更新,喜欢的话麻烦点击一个关注先上一份BATJ系列面试文的面试目录腾讯面试官:谈一谈Binder的原理和实现一次拷贝的流程心理分析:能问出该问题,面试官对binder的理解是非常深入的。想问求职者对Android底层有没有深入理解求职者:应该从linux进程通信原理的两次拷贝说起,然后引申为什么binder却只有一次拷贝 ,最后阐述内核空...原创 2019-07-18 20:42:50 · 576 阅读 · 1 评论 -
腾讯Android面试:Handler中有Loop死循环,为什么没有阻塞主线程,原理是什么
面试官: Handler中有Loop死循环,为什么没有阻塞主线程,原理是什么心理分析:该问题很难被考到,但是如果一旦问到,100%会回答不上来。开发者很难注意到一个主线程的四循环居然没有阻塞住主线程**求职者:**应该从 主线程的消息循环机制 与Linux的循环异步等待作用讲起。最后将handle引起的内存泄漏,内存泄漏一定是一个加分项先来一份整理的面试目录前言Android的...原创 2019-07-15 16:06:44 · 4126 阅读 · 2 评论 -
2019Android74道高级面试合集(含BAT字节跳动等等)
前言最近半年,常常有人问我 “Android就业市场究竟怎么样,我还能不能坚持下去 ?”现在想想,移动互联网的发展不知不觉已经十多年了,Mobile First 也已经变成了 AI First。换句话说,我们已经不再是“风口上的猪”。移动开发的光环和溢价开始慢慢消失,并且正在向 AI、区块链等新的领域转移。移动开发的新鲜血液也已经变少,最明显的是国内应届生都纷纷涌向了 AI 方向。 可以说...原创 2019-07-05 16:54:01 · 587 阅读 · 0 评论 -
阿里巴巴面试:Binder通信原理与机制
本专栏专注分享大型Bat面试知识,后续会持续更新,喜欢的话麻烦点击一个关注先上本次更新的BAT面试知识总目录先上一张Binder 的工作流程图。(如果不清晰,可以 复制图片链接到浏览器 或 保存到本地 查看,我经常都是这样看图的哈)一开始上手,陌生的东西比较多,But,其实并不复杂。喔,流程图是用 ProcessOn 画的。很棒的在线画图工具。出发前预备子弹 我们知道进程之间,虚拟...原创 2019-07-13 20:38:11 · 485 阅读 · 0 评论 -
200行代码打造超越一线互联网公司的换肤架构
本专栏专注分享大型Bat面试知识,后续会持续更新,喜欢的话麻烦点击一个关注文末有次文章的视频教程面试官: 网易云QQ的换肤是怎么做到的,你对换肤有了解吗?看过换肤的原理没?心理分析:没有接触过换肤技术 第一次听到该名词肯定会很茫然。面试官考的是对资源加载,监听布局,有没有了解.本文从换肤实战一对一讲解。告诉你如何做以及实现。文章末尾带换肤项目源码求职者: 从监听布局开始到 换肤原理,详...原创 2019-07-09 15:42:56 · 252 阅读 · 0 评论 -
腾讯面试合集:热修复连环炮(热修复是什么 有接触过tinker吗,tinker原理是什么)
本文为大型面试分析,需要的可以点个关注废话不多说,先来一张此系列文的面试资料目录1.热修复是什么热修复无疑是这2年较火的新技术,是作为安卓工程师必学的技能之一。在热修复出现之前,一个已经上线的app中如果出现了bug,即使是一个非常小的bug,不及时更新的话有可能存在风险,若要及时更新就得将app重新打包发布到应用市场后,让用户再一次下载,这样就大大降低了用户体验,当热修复出现之后,...原创 2019-07-16 17:54:30 · 633 阅读 · 0 评论 -
Android 高效开发之研发效能
在如今红海厮杀的移动互联网,快速试错变得越来越重要,敏捷开发也被越来越多的团队所推崇。有些时候为了效率我们甚至愿意牺牲部分性能,而选择在合适的时间去偿还这些“债务”。我们都希望在保证质量的前提下,为自己的团队提速。一、组织的研发效能1.1 何为研发效能在讨论如何优化组织研发效能之前,先思考一下什么是研发效能。我们平常开发的过程,是从产品的一个需求想法,转变为功能并且发布上线。这个过程...原创 2019-08-23 17:52:58 · 812 阅读 · 0 评论 -
字节跳动面试:对于Tersorflow你怎么理解的,有做过人工智能的应用吗
本专栏专注分享大型Bat面试知识,后续会持续更新,喜欢的话麻烦点击一个关注面试官: 对于Tersorflow你怎么理解的,有做过人工智能的应用吗心理分析:了解tersorflow并且应用到项目中的,可谓少之又少。国内几乎没有多少Android开发者对人工智能有过认识。也不明白人工智能对Android带来的风险与机会。如果面试官问到了tersorflow 一定是想深挖你。在问这个问题就已经...原创 2019-08-20 18:20:30 · 1150 阅读 · 0 评论 -
去抖音面试被问到硬编码与软编码区别,如何选取硬编与软编?
Android的视频相关的开发,大概一直是整个Android生态,以及Android API中,最为分裂以及兼容性问题最为突出的一部分。摄像头,以及视频编码相关的API,Google一直对这方面的控制力非常差,导致不同厂商对这两个API的实现有不少差异,而且从API的设计来看,一直以来优化也相当有限,甚至有人认为这是“Android上最难用的API之一”以微信为例,我们录制一个540p的mp...原创 2019-09-11 15:23:45 · 7642 阅读 · 0 评论 -
移动端视频开发通过什么方式实现直播?十分钟带你快速了解
本专栏专注分享大型Bat面试知识,后续会持续更新,喜欢的话麻烦点击一个关注现在的移动端的音视频这些在近段时间非常火热,那么我们先来找一个岗位看看作为一个移动端视频开发工程师我们要做些什么呢岗位场景之前去面试的时候,面试官问到之前做过直播嘛?你们是通过什么方式实现直播效果的心里分析:直播技术实现有很多种,如果之前有过直播经验90% 都会说 我用的某某第三方的直播框架,而面试官是不想听...原创 2019-09-17 18:59:04 · 2273 阅读 · 0 评论 -
你必须学会的OkHttp,带你快速上车
引子OkHttp 知名第三方网络框架SDK,使用简单,性能优秀,但是内核并不简单,此系列文章,专挑硬核知识点详细讲解. 何为硬核,就是要想深入研究,你绝对绕不过去的知识点正文大纲OkHttp是什么?OkHttp怎么用?OkHttp源码核心类之一:分发器详解OkHttp源码核心类之一:拦截器简述一.正文1.OkHttp是什么OkHttp是时下非常流行的网络编程框架,由行业...原创 2019-09-18 15:50:34 · 248 阅读 · 0 评论 -
Kotlin 基础(二)- DSL
所谓 DSL 领域专用语言(Domain Specified Language/ DSL),其基本思想是“求专不求全”,不像通用目的语言那样目标范围涵盖一切软件问题,而是专门针对某一特定问题的计算机语言。Kotlin DSL 定义:使用 Kotlin 语言开发的,解决特定领域问题,具备独特代码结构的 API 。一、DSLDSL(domain specific language),即领域...原创 2019-09-20 14:49:37 · 434 阅读 · 0 评论 -
EventBus的源码详解与架构分析,使用EventBus会造成什么弊端,带你复现整个思路历程
本专栏专注分享大型Bat面试知识,后续会持续更新,喜欢的话麻烦点击一个star面试官: 为什么会用到EventBus,EventBus的源码详解与架构分析,使用EventBus会造成什么弊端心理分析:eventbus对程序员相爱相恨,爱 爱在太方便了,恨 恨在对程序的可读性有致命的伤害,小公司会用但面试的时候不会考,大公司不会用,但面试的时候使劲考。从该文中我们可以找到如何面试上大公司的...原创 2019-09-20 16:14:52 · 612 阅读 · 0 评论 -
盘点 几个令程序员们泪流满面的瞬间 先心疼自己三秒钟
「1」公司实习生找 Bug「2」在调试时,将断点设置在错误的位置「3」当我有一个很棒的调试想法时「4」偶然间看到自己多年前写的代码「5」当我第一次启动我的单元测试时「6」数据库的Delete语句忘了使用限定词where…「7」明明是个小bug,但就是死活修不好…「8」当我尝试调整生产数据库中的一些东西时「9」好像真的没人发现我产品里的bug…「10」下班前我还有...原创 2019-09-27 19:31:31 · 234 阅读 · 0 评论 -
每日一道面试题,2019Android大型Bat面试知识分享
前言最近半年,常常有人问我 “Android就业市场究竟怎么样,我还能不能坚持下去 ?”现在想想,移动互联网的发展不知不觉已经十多年了,Mobile First 也已经变成了 AI First。换句话说,我们已经不再是“风口上的猪”。移动开发的光环和溢价开始慢慢消失,并且正在向 AI、区块链等新的领域转移。移动开发的新鲜血液也已经变少,最明显的是国内应届生都纷纷涌向了 AI 方向。 可以说...原创 2019-07-08 21:07:38 · 486 阅读 · 0 评论 -
android 通过修改图片像素实现CircleImageView
CircleImageView实现方法有很多种,各有优缺点,因此需要按照不同的场景使用。我们今天使用修改图片像素的方法实现CircleImageView,主要知识点无非是勾股定理和点到圆形的距离。素材图片:效果如下:1、clipPath裁剪画布该方法支持的最小版本是Android 4.3(API Level 18),方便快捷,但是不支持硬件加,此外也存在Path既有的缺点,不支持抗锯齿...原创 2019-06-27 17:43:48 · 632 阅读 · 0 评论 -
android 启动速度优化
app的启动速度在用户体验方面是一个重要的指标,当一个可替代行强的app启动异常缓慢时,必然会导致用户的流失。App启动方式 冷启动 热启动 温启动冷启动(Cold start)冷启动是指APP在手机启动后第一次运行,或者APP进程被kill掉后在再次启动。可见冷启动的必要条件是该APP进程不存在,这就意味着系统需要创建进程,APP需要初始化。在这三种启动方式中,冷启动耗时最长,对于冷启动...原创 2019-06-03 17:32:01 · 375 阅读 · 0 评论 -
android bitmap的缓存策略
在这篇文章中:1.lrucache2.disklrucache3.缓存策略对比与总结不论是android还是ios设备,流量对于用户而言都是宝贵的。在没有wifi的场景下,如果加载批量的图片消耗用户过多流量,被其知晓,又要被念叨一波~如何避免消耗过多的流量呢?当程序第一次从网络加载图片后,就将其缓存到移动设备上,这样再次使用这个图片时,就不用再次从网络上下载为用户节省了流量。目前...原创 2019-06-03 17:12:43 · 363 阅读 · 0 评论 -
Android高级开发-布局渲染流程与优化
扩展知识CPU(中央处理器)与GPU(图像处理器)主要是设计目标不同,针对不同的应用场景。多缓存多分支,适用于复杂的逻辑运算,主要负责Measure,Layout,Record,Execute的计算操作。CPU擅长逻辑控制和通用类型数据运算。CPU的运算速度取决于请了多么厉害的教授,教授处理复杂任务的能力高,但简单重复的任务,还是人多快。众核少缓存,适用于结构单一的数据处理,主要负责Rast...原创 2019-06-03 16:01:50 · 363 阅读 · 0 评论 -
Android之HashMap详解
前言HashMap是面试中比较常见的问题,这一篇,我们将通过阅读源码,了解其设计原理以及以下问题HashMap的实现原理初始容量为什么是2的倍数如何resize是否线程安全常用参数 //最大容量 2的30次方 static final int MAXIMUM_CAPACITY = 1 << 30; //初始容量为16 扩容时才会触发 st...原创 2019-06-06 15:08:13 · 3824 阅读 · 0 评论 -
Android面试被问到内存泄漏了咋整?
前言内存泄漏即该被释放的内存没有被及时的释放,一直被某个或某些实例所持有却不再使用导致GC不能回收。Java内存分配策略Java程序运行时的内存分配策略有三种,分别是静态分配,栈式分配,和堆式分配。对应的三种策略使用的内存空间是要分别是静态存储区(也称方法区),栈区,和堆区。静态存储区(方法区):主要存放静态数据,全局static数据和常量。这块内存在程序编译时就已经分配好,并且在程序整...原创 2019-06-12 17:03:59 · 519 阅读 · 0 评论 -
再学Android之WebView
WebView最近一直在做web前端开发,做了预定酒店系统,后台管理系统,小程序等,正好趁机复习一下Android的WebView先简单介绍一下,Android在4.4之后采用了Chrome内核,所以我们在开发web页面的时候,es6的语法,css3的样式等大可放心使用我将分下面几个模块去介绍Android上面WebViewWebView自身的一些方法 //方式1. 加载一个网...原创 2019-06-12 16:25:48 · 586 阅读 · 0 评论 -
面试官说“一开始工资不会给你太高,你可以接受吗?” 怎么怼回去??
面试时总是会遇见几个奇葩的面试官,问一些你根本不用回答,就想直接怼回去的问题!看看这些程序员遇见这样的面试官,都是怎么回答问题的!面试开始……0、面试官: 一开始工资不会给你太高,你可以接受吗?程序员:我一开始工作表现不会太好,你可以接受吗?emmmmmm1、面试官: “你觉得,你最大的缺点是什么呢?”程序员:“坦诚。”面试官:“哎,我想坦诚不能算是个缺点吧?”程序员:“你怎么...原创 2019-06-05 16:42:37 · 878 阅读 · 0 评论 -
2019中级Android开发社招面试解答之性能优化篇
注:因为实际开发与参考答案会有所不同,再者怕误导大家,所以这些面试题答案还是自己去理解!面试官会针对简历中提到的知识点由浅入深提问,所以不要背答案,多理解。1.图片的三级缓存中,图片加载到内存中,如果内存快爆了,会发生什么?怎么处理?参考回答:首先我们要清楚图片的三级缓存是如何的如果内存足够时不回收。内存不够时就回收软引用对象2.内存中如果加载一张500X500的png高清图片.应...原创 2019-06-11 16:21:14 · 6274 阅读 · 1 评论 -
2019AndroidBAT.字节跳动74道高级面试第二篇
前言经过一波一波的淘汰与洗牌,剩下的都是技术的金子。就像大浪褪去,裸泳的会慢慢上岸。而真正坚持下来的一定会取得不错成绩。毕竟Android市场是如此之大。从Android高级的蓬勃的就业岗位需求来看,能坚信我们每一位Android开发者的梦想 。接下来我们针对Android高级展开的完整面试题2019Android74道高级面试题合集目录(含BAT 字节跳动等等)阿里巴巴–Android...原创 2019-07-08 16:59:04 · 288 阅读 · 0 评论 -
每日面试题分享,祝你剑指苍穹斩获Offer
前段时间,有位道友告诉我他要去面试了,隔了几天我问他面试的结果怎么样了,他说这几天面试的全挂了。并且说了自己打错了很多。在这里我整理了一些面试题目,希望广大道友能少犯错误,斩获offer.注:因为实际开发与参考答案会有所不同,再者怕误导大家,所以这些面试题答案还是自己去理解!面试官会针对简历中提到的知识点由浅入深提问,所以不要背答案,多理解。1.谈谈ThreadLocal用法和原理?Th...原创 2019-06-27 16:52:26 · 327 阅读 · 0 评论 -
Flutter 实现 View 的移动拖拽
您好,欢迎关注我的,本文章是关于 Flutter 的系列文,从简单的 Flutter 介绍开始,一步步带你了解进入 Flutter 的世界。你最好有一定的移动开发经验,如果没有也不要担心,在我的专栏底部给我留言,我会尽我的能力给你解答。上一篇专栏,是教大家如何实现Flutter的主题。本专栏介绍在Flutter中如何拖拽View,并讲解会遇到的坑。先来看效果:第一步在main方法中用...原创 2019-07-02 16:31:09 · 3298 阅读 · 2 评论 -
2019最新中级Android面试题目,有着几篇就够了
注:因为实际开发与参考答案会有所不同,再者怕误导大家,所以这些面试题答案还是自己去理解!面试官会针对简历中提到的知识点由浅入深提问,所以不要背答案,多理解。1.组件化中路由、埋点的实现参考回答:因为在组件化中,各个业务模块之间是各自独立的, 并不会存在相互依赖的关系, 所以一个业务模块是访问不了其他业务模块的代码的, 如果想从 A 业务模块的 A 页面跳转到 B 业务模块的 B 页面, ...原创 2019-06-18 16:45:06 · 1291 阅读 · 0 评论 -
为何学这么多技术,却做不好Coder!
高考分数出来了,看着各地状元都在豪言壮志要干一番大事情。想起了多年前自己参加高考的样子,那是我也坚信学好数理化,走遍天下都不怕。那时,我也相信,上了一个不错的大学就能够让自己过上不错的生活。然而,现在,所看的书已经已经从《高等数学》、《离散数学》变成了《团队应该这样带》、《谈判力》、《腾讯传》等,一切不能赚钱的知识都不想学。你是知识的奴隶吗?公司之中的一名实习生,最近向公司告辞,说准备后面...转载 2019-06-18 16:30:33 · 308 阅读 · 0 评论 -
Flutter系列(八)自定义主题并切换保存
您好,欢迎关注我,本文章是关于 Flutter 的系列文,从简单的 Flutter 介绍开始,一步步带你了解进入 Flutter 的世界。你最好有一定的移动开发经验,如果没有也不要担心,在我的专栏底部给我留言,我会尽我的能力给你解答。上一篇专栏,是教大家如何发布自己的Flutter库到公共库。本篇是我关于Flutter的第八篇文章,相信通过之前的学习,大家对Flutter开发需要掌握的小技巧...原创 2019-07-01 16:20:05 · 812 阅读 · 0 评论 -
Flutter系列(三) 整体架构
您好,欢迎关注我的专栏,本篇是关于 Flutter 系列的第三篇,从简单的 Flutter 介绍开始,一步步带你了解进入 Flutter 的世界。你最好有一定的移动开发经验,如果没有也不要担心,在我的专栏底部给我留言,我会尽我的能力给你解答。上篇文章我们介绍了用 Flutter 开发第一个跨平台应用程序,相信大家一定印象深刻,本篇文章介绍 Flutter 平台的整体架构。一.核心原则之前...原创 2019-06-21 16:18:52 · 603 阅读 · 0 评论 -
不得不看的Flutter与Android混合开发
记得在flutter刚出来时,笔者就开始学习flutter。但由于当时嫌弃flutter复杂的层级组合且未推出稳定版,所以当时就放弃了深入学习,现如今随着flutter的蓬勃发展及大佬们的力推,就又入坑flutter。虽说flutter能够跨平台,但由于现在几乎都是现成的项目,所以不可能用flutter来重头开发,所以目前几乎都是采用native+flutter的混合开发方案。那么该方案该如何...原创 2019-06-17 17:06:39 · 1340 阅读 · 2 评论