在早期我写博客比较多的阶段,建立了非常多的交流群,后来因为上班之后,时间越来越少,所以很多群我都不再管理了,非常惭愧,很多群我可能超过半年以上没有看过。

但是上周我的一个群不见了,让我深刻意识到,我并没有时间管理这些群,还是有比较大的监管风险的,索性我就间接解散了几个,与此同时我也建立了一个比较容易管理的星球,用来接纳小伙伴。

这个星球的目的很纯粹,就是聚集一大批开发者,大家可以自由提问、分享。

刚好上周有人问小缘是如何学习的,那就给大家分享一些,我觉得轻松又有一定价值的内容。

1. 提问:小缘你咋学的Android?为啥我们不一样。

小缘:我的话,我之前上下班的路上,坐地铁的时候,会看一些电子书,现在因为住的地方离公司比较近,就改踩单车了。

还有就是,帮别人解决问题,也能学习到不少东西。可能某个知识点你平时没有注意到,但是在帮忙解决问题的过程中,刚好碰到了。

剩下的就是多看代码,多思考,多练习啦。

学完一个知识点之后,最好自己写代码验证一下,这样能加深理解,还有增强记忆。

看SDK的代码,也能学到很多东西。比如平时在写代码的时候,调用了一个SDK的方法,那么可以随手Ctrl点击进去,看看它里面是怎么实现的,还有看看它的文档注释,有没有值得注意到地方,这样能加深自己对这个类的理解。养成了这个习惯之后,进步很会很快的。

2. 提问:我是一名工作多年Android,很想进大厂。做了很多项目,也是全部死掉的,本人也是个普通全日制的二本。如果想进大厂,面试的着重点和方向该从哪些出发。
1. 时机

想进大厂,最佳的时间就是3年左右工作经验的时候,3年以上,甚至5年以上,难度会大很多,为什么呢?因为有横向对比。

当然也不是没有机会,就是看能力。

2. 面试

面试,大多数情况下大厂面试官对一般的app没太大兴趣,所以很少会让你演示,这一点你不用太过于担心,遇到也别怪我呀,确实很少。

3. 再说面试准备
  • a.算法要准备,几乎所有大厂都有考察算法,当然了,并不需要准备太难的,看看leetcode初中级即可。

  • b. 基本android上的原理要充分理解,事件分发,handler,自定义view,属性动画,刷新机制等等,这些答对了不加分,答错了凉的比较快。

  • c. 所有你简历上写到的第三方库的原理,定制,如何优化扩展。要么你不要写,写了就做好充分的准备。

    例如你写了tinker,你不能只说我用过,挺好用的,打patch传到bugly就行。

    你要做好准备,问你各种固化资源,activity占坑,dex diff,dexclassloader,以及为何要选择全量合成,N上兼容性问题…

  • d. 业务上的亮点,比如你做启动优化,做的比较极致,可以拿出来吹一波,一定要“极致”,百度都能搜到的,那可能不算。 可以参考我最近推送的启动优化文章,有说支付宝,头条相关方案的;也可以参考邵文之前的专栏内容。

    类似的业务优化有很多:

    h5页面打开速度,稳定性,包体积等等,还是要说一句,得说极致的方案,不是随便找个博客看看。
    这些极致方案,自己如果没有操作过,可以参考一些大厂开源项目,例如稳定性滴滴booster。

  • e. 关于新技术,不会就直接明说暂时没有接触就好了,只要不是岗位要求,一般不至于因为这个因素淘汰。

  • f. 最后运气也很重要,提前确定投递的岗位严重缺人,缺人程度一定和招聘难度成反比,不管他承不承认。

3. 提问:近期打算换坑,无奈不知道现在简历该怎么写,比如好的模板,布局,内容等等,有哪位大佬能分享一下简历的书写格式规范之类的。

简历相关,本号已经有两篇内容,完全可以满足了。

Android面试相关文章以及github整理

给大家 3 个走心的面试建议

4. 分享:回答问题可以正向思考,如何低成本实现,以属性动画为例。

我非常喜欢问一个关于属性动画的问题,以下是模拟对话。

我: 网上有很多文章,说属性动画跟以前的动画的区别就是,属性动画把View移动到别的位置,依然能响应用户事件。

面试者: 对对对。

我: 那你能说说为什么吗?

面试者: 因为它真的位置改变了。

我: 这个位置改变指的是真的layout发生变化了么。

面试者: 嗯……是的(有些犹豫)。

我: 那我们很多布局都是RelativeLayout,布局间相互有依赖,那岂不是属性动画移动一个控件,其他依赖布局都得跟着动。

面试者: 嗯…是这样的(很犹豫)

我: 那这样性能好差呀,谁敢随便做动画。

面试者: 沉默

我: 好吧,我们换个思路,假设view没有真的layout发生变化。我们想“能够在view移动后能响应用户事件,你会怎么做?”

面试者: 没思路。

我: 想想参数,我们有:

  1. 用户点击时的x,y坐标。
  2. view的自己所在的区域。
  3. 相对变化的属性值,比如想左移动了100。

这个结合起来做不到吗?

面试者: 明白了,有这些参数完全可以。把用户触摸的x,y与view所在区域与变化属性值一起比较,肯定知道触摸在不在目标位置。

我: 对,所以想要能够目标位置响应用户事件,并不用动layout,成本太高。我们在事件分发那里加个判断就算出来了。

属性动画也是类似的原理。

面试者: 学到了,多谢~

最后,我一个肯定「努力会有回报」的人,所以我日常给大家推荐的作者或者项目,都是实打实做了非常多分享的,能认识他们,我倍感荣幸。

小缘你咋学的Android?为啥我们不一样~相关推荐

  1. 生物信息学 linux版本,学生物的为啥要学点生物信息学!

    原标题:学生物的为啥要学点生物信息学! 我们和牛人差在哪里? 你眼中的学术大牛是什么样子?灵光的idea?精湛的实验技术?其实给你留下更深印象的是他们的财大气粗,高深莫测的数据挖掘能力以及论文里美轮美 ...

  2. 学计算机的机械硕士好找工作吗,学机械的为啥转行特别多?网友:一言难尽,就业率高,质量不高...

    学机械的为啥转行特别多?网友:一言难尽,就业率高,质量不高,据媒体报道,机械专业的就业率是名列前茅的,但是在半年内的离职率却是最高的,而且普遍的学生就业质量不太满意,因此转行的人特别多,有机械专业的网 ...

  3. 从android刷机入手学点android和linux架构知识

    写在开头因为本人也只是大一的学生这篇文章只是自己的一个类似笔记的东西,所以许多东西都借鉴了许多大佬,因此要尊重原作者,因此借鉴都会注明来源. 常规开头就是linux是什么,linux的发展历史,lin ...

  4. 码农人生——从未学过Android如何开发Android App 案例讲解-第002期案例

    标题有点晃眼,本次分享是002期博文的实践故事,不会有任何代码.也不会教别人android 如何开发,类似博文已经有大批大批,而且还会有陆陆续续的人写,我写的文章,主要是经验之谈,希望总结出的一些方法 ...

  5. 纹身学计算机专业,为啥学纹身一定要拜师,看完你就知道了

    原标题:为啥学纹身一定要拜师,看完你就知道了 为啥学纹身一定要拜师,看完这篇文章你就知道了 如果是零绘画基础的同学想学纹身, 那么拜师自然就成了是他们的必经之路. 也有一些有绘画基础的想学纹身, 觉得 ...

  6. android要学什么,android入门要学什么 应该做哪些学习准备

    当今现实生活中,随着移动互联网飞速发展,还真是没有一门专业的技术无法生存,比如说互联网IT行业中的android大家应该都不陌生吧,市场上的android开发人才是相当匮乏的,那么作为准android ...

  7. 一个Demo学完Android中所有的服务

    注:这个例子来自"安卓巴士",经阅读,理解,写此文章 说明:这个例子实现了Android中常见的许多服务,下面是实现的截图 接下来,以源代码的方式分析这个例子 1.MainActi ...

  8. 从头开始学一个android activity

    一.类层次结构: 二.什么是Activity,如何理解Activity 1.  用户与应用程序的交互的接口 2.  控件的容器,我们要把控件摆放在这个容器中 三.如何创建一个Activity 新建一个 ...

  9. 2kids学汉字 android,新2Kids学汉字

    新2Kids学汉字app这是一款教育学习类应用辅助软件,也是专为保护孩子眼睛精心打造的,课程设计上,2Kids非常注重产品的教学效率,认识基础汉字,培养自主阅读习惯,欢迎大家前来下载使用. 新2Kid ...

最新文章

  1. 一些.net持久化框架的例子
  2. 北斗导航 | 高精度GNSS Correction Service国际标准化
  3. java类使用其他类的变量_如何将java类中的变量加载到其他类
  4. Web自动化测试 Selenium+Eclipse+Junit+TestNG+Python
  5. cmake的使用 cmake不是内部或外部命令
  6. 分布式系统以及CAP原理
  7. redis java 缓存服务器_java中对Redis的缓存进行操作
  8. 2019年1月13日【回家】
  9. 从Retrofit的源码来看 HTTP
  10. atitit.身份认证解决方案attilax总结
  11. 三菱FX1N与东元Teco N310变频器通讯实战程序
  12. PaddlePadlle2.3实现人脸关键点检测
  13. int i=-20; unsigned int j = 10; i+j;的问题
  14. 爱上调试:div初探,参照物的重要性!
  15. 读《弗洛伊德:作家与白日梦》
  16. 什么是等保?等保流程又具体包含哪些内容呢?
  17. 实现 Trie (前缀树)
  18. PhysX官方手册翻译
  19. filetransferdmg魅族下载_filetransfer.dmg魅族下载
  20. 打包时出现No matching provisioning profile found错误的解决方法

热门文章

  1. 基于javaEE技术的驾驶证(驾校、交规)模拟考试系统的设计
  2. 多线程编程的锁问题解析(锁竞争死锁活锁及Date Race等)
  3. 新版白话空间统计(20)空间关系概念化之点临近
  4. CAD2018软件安装
  5. 无线电测向/定向越野运动中计分使用的打卡器的开发
  6. 点云拟合—圆柱面 非线性最小二乘实现
  7. 关于超女的一些YY,转自耳机大家坛的一个帖子。
  8. 数据驱动销售——个性化推荐引擎
  9. 连接mysql时报1067错误
  10. 540s inter 固件_TLC闪存时代真正来了!Intel连发四款TLC SSD