Android 开发国际化

ART 和 Dalvik 虚拟机的区别,主要是 AOT,Ahead-Of-Time 预编译。

熟悉 DEX 文件结构。

单元测试:JUnit4,AndroidJUnitRunner,Mockito 框架的使用。

自动化测试:Monkey / Monkey Runner ,Espresso ,UI Automator 等。

掌握模块化开发方式:主要注意分好层、模块间跳转通信。

代码重构能力,推荐书籍:《重构改善既有代码的设计》、《重构与模式》

Google 动态化框架 App Bundles

Jetpack,Google 推出的新一代组件、工具和架构指导,旨在加快 Android 应用开发速度。Jetpack 主要分为 4 部分:

大前端趋势下移动端程序员要凉?这些进阶技能助你逆袭

Android开发常用的第三方库:

响应式编程:RxJava、RxAndroid,Google 的Agera

网络库:包括Retrofit,OkHttp,Volley

图片:Fresco,Gilde,Picasso

依赖注入:Dagger2

数据库:Realm,ORMLite,GreenDAO,ObjectBox

数据总线:EventBus,otto

内存泄漏检测工具 LeakCanary 等

各个技能点如果详细拓展开,会形成相当庞杂的一张知识图谱,建议大家自行梳理总结消化。

3. OOAD 和设计模式

在架构设计方面,首先要掌握的就是面向对象的开发和设计。具体知识点包括:

**面向对象三大特性:**封装,继承,多态。

五大基本原则(SOLID 原则),单一职责原则,开放封闭原则,里氏替换原则,依赖倒置原则,接口分离原则。

23 种设计模式:常用的有工厂、单例、适配器、桥接、组合、代理、命令、观察者、策略、状态模式等等。

4. APP架构设计

包括 MVC、MVP、MVVM、MVI、VIPER、Clean Architecture、Flux。目前除了 MVC 外 MVP 和MVVM 用得比较多,具体的架构设计还要结合业务去考虑。

(二) 软技能

人在职场,行走江湖,想进阶高级程序员光有技术深度是不够的,还需要掌握众多软技能,注意综合职业素养的磨练。有很多人一开始重视程度不足,在职场后半段的上升过程中,容易遇到瓶颈。

下面是我个人总结出的高级程序员必备软技能,供大家参考。

**1. 快速学习能力:**包括技术深度和广度,能够不断探究新技术,不断学习。

**2. 沟通能力:**加强表达、阅读、编写能力,即使在技术发达的今天也绝不会过时。因为任何方式的沟通在企业内部都是非常有必要的。

**3. 团队协作能力:**开发人员很容易陷入孤立的人际交往状态,但开发工作永远都不可能是一个人完成,只有成员真正能融入团队内,顺利与其他同事沟通合作,才能体现出其真正的价值,被列为未来职位晋升候选人的几率也更大。

**4. 时间管理能力:**可以参考时间管理「四象限法则」,有重点地把精力和时间集中用于处理重要但不紧急的工作,这样可以做到未雨绸缪。

大前端趋势下移动端程序员要凉?这些进阶技能助你逆袭

**5. 影响力:**一方面是业务影响力,另一方面是技术影响力。其中,提高技术影响力的方式包括:多参与技术分享,把积累的知识进行总结和传播;参加技术方案评审,把技术经验分享出去;帮助新同学解决技术问题;在博客、Github、StackOverflow 等平台上对外分享。

6. 文档编写能力:

代码注释。很多程序员很少写注释,或者注释过多,都是不合适的。多参考开源项目的注释规范。

编写技术设计文档。包括流程图,类图,功能时序图等等。

此外推荐一本书:《软技能——代码之外的生存指南》

大前端趋势下移动端程序员要凉?这些进阶技能助你逆袭

二. 技术专家VS管理,哪条路更适合你?

工作 3-5 年后已经进阶到高级程序员了,很多人开始面临一个问题:未来发展方向是技术专家还是技术管理,哪一条职业发展路径更适合自己?

选择哪条路线,首先要明确自己想要什么。想做技术还是管理,都跟目标和职业规划有关,每个人的实际情况不同,目标就不同,建议尽量做和自己的性格相符合的选择,并且坚持。哪怕一时半会看不出效果,长期总是能够看到效果的。

1. 怎样的程序员适合做技术专家?

*技术专家的核心就是深入而精通。对某个技术领域很熟悉、对代码编写保持热情、持续学习新的技术、能够静下心来做技术,而不是急功近利。性格相对内向、不擅长沟通协调、不希望花大量时间带团队、主要负责把关键技术做到专业和,这样的人更适合往技术路线发展,比如技术专家,架构师。

2. 怎样的程序员适合转型技术管理?

首先要明确,通常所说的技术管理者都需要做哪些事?

  • 团队建设:人员激励、团队文化、梯队建设。
  • 任务管理:任务分工、任务协作。
  • 管理规划:新技术调研,支撑新业务的重构等。

相应地,需要的能力包括:向上汇报向下传达能力、团队管理能力、人员培养能力、上下游部门合作把控能力、业务需求沟通能力、重大问题的决断能力、长远目标规划能力、执行力等等。

综合来看,管理能力和技术能力的要求差别较大。作为技术管理者首先应该有角色认知的改变,不能以程序员的角度去看待问题,需要站在更高角度,从全局思考问题。推荐有志走管理路线的移动端程序员参考这本书:《成为技术*》**。

3. 两种发展路径的异同点

**(1) 不同点:**技术专家更依赖个人技术能力,需要结合业务做好技术规划,框架设计,性能优化以及技术创新;技术管理者是协助团队一起把产品做出来,负责团队内外的组织沟通和相互协调。

**(2) 相同点:**终究需要面对管理,只是管理工作的多和少之分。即使你是架构师,也需要 lead 一个技术团队。

因此,不论你未来是走纯技术路线还是非技术路线,都需要增长自己的管理技能,因为到***总归是需要管理沟通的。当你级别非常高,却还不跟任何人打交道,完全靠个人能力来贡献的情况是很少见的。

4. 如果选择错误,是否还有二次选择机会?

我认为需要先把职业目标和职业规划想好,经常改变对职业影响较大。

**(1) 技术转向管理:**要提前掌握相关管理知识并在角色认知上做出改变,以团队为出发点去思考问题,对业务了解更多,提高部门内的影响力,有合适的晋升机会可进行转型。

**(2) 管理转回技术:**如果你面对诸多跨部门沟通,在性格等因素上感觉不合适,需要尽快做出决策,转回技术开发。

三. 大前端趋势下,移动端程序员如何保持竞争力?

我从招聘网站上摘录了某些一线公司的职位描述要求:

3 年以上工作经验、深入了解移动端的底层和原理、独立主导或开发过一款以上产品的核心项目、丰富的项目经验或管理能力、有 React Native 或者Weex 的实战经验、掌握一些前端开发技术,HTML / JavaScript / CSS 等。前后端开发经历是加分项。

可以看到,市场对 Android 程序员的要求越来越高,除了深入掌握 Android 底层原理,对前端 JS 等技术也有要求。

**今天我们已经进入了终端碎片化的时代。**从 2007 年 iPhone ***代发布至今的 12 年里,智能手机并没有被取代的迹象。但创新仍在继续,比如智能手表、TV、眼镜、头戴 VR 等等,可以想象这样的设备仍会继续增多。

这些新设备也是新平台,与智能手机类似,可以安装第三方应用,且这些平台基本都支持浏览器或内嵌浏览器引擎。早期 Hybrid 和后来 React Native 等探索,在显示终端应用的开发上,前端开发已成为必备技术。

**因此,大前端趋势对移动端程序员而言,*的影响就是新的移动开发技术栈。

移动设备作为主流终端,其应用开发技术也应该是大前端最关注的技术。以前移动开发技术栈以原生开发为主,现在的趋势是跨平台技术愈演愈烈。

那么,在如今技术快速变化的环境下,移动端程序员该如何保持竞争力?

首先,加强 Android / iOS 技术深度储备,深入理解系统底层原理,对新技术持续投入。

其次,逐步完善前端技术栈,广度扩充,熟悉前端 JS,以及 RN,flutter 等跨平台框架。

选择 Android 细分领域并提高,比如应用开发、逆向安全、音视频、车联网、物联网、手机开发、SDK 开发和智能电视盒子开发等等,在其中选择一个并不断深入。

本文在开源项目:https://github.com/Android-Alvin/Android-LearningNotes 中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…

SDK 开发和智能电视盒子开发等等,在其中选择一个并不断深入。

本文在开源项目:https://github.com/Android-Alvin/Android-LearningNotes 中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…

AndroiAndroid程序员最大的悲哀是什么?d程序员最大的悲哀是什么?相关推荐

  1. 关于程序员的那些事——一个五年程序员的总结

    一晃,做了五年多的程序员了,感觉自己应该是程序员大军中比较典型的一个,班科生毕业,直接加入了软件开发的行列,先是小公司,然后大公司,走了一条典型的程序员的路线. 虽然我不是大牛,但是感觉在我这样普通程 ...

  2. 项目总监批评程序员穿大裤衩上班情商低!程序员一气之下要离职!项目已到一半了,总监着急发帖求助!...

    项目总监批评程序员穿大裤衩上班太随意,程序员反驳说是成都下暴雨了,总监恼羞成怒指责程序员情商太低,结果人家要离职!总监懵逼了,项目到一半了,这可咋整呢? 程序员友军纷纷出来打卡,站队程序员,说是大裤衩 ...

  3. 程序员薪资两极分化,如何成为高薪程序员?

    整理 | 李磊 出品 | CSDN(ID:CSDNnews) 现代管理学之父彼得·德鲁克在<知识社会>中说,40 年前,从事知识与服务劳动的人占总劳动力的比例不到 1/3.今天的发达国家, ...

  4. 程序员微信头像_这才是程序员的内心独白

    在互联网公司的各个职业当中,程序员可以算是最善于自黑的群体之一了.自称"码畜",管工作叫"搬砖",最常见开"头发少"这种玩笑,还经常调侃自己 ...

  5. python算程序员吗_我算是优秀的程序员吗?

    心态 我经常问自己,我算是优秀的程序员吗? 有的时候我觉得自己是优秀的程序员,什么时候呢? 当我解决问题的时候,当我学会一个技术,并且能应用于项目中的时候.我都会心里夸自己"你牛,你牛,你真 ...

  6. 程序员如何用糖果实现盈利 - [别人家的程序员01]

    程序员如何用糖果实现盈利 - [别人家的程序员01] 程序员如何用糖果实现盈利 - [别人家的程序员01] 前言 CandyJapan 网站如何从零走到今天 平台收支状况 如何做分析.写代码 总结 程 ...

  7. 程序员最痛苦的事,就是程序出错;程序员最最痛苦的事,就是程序出错了还没有错误信息!--IIS Service Unavailable 问题如何解决...

    今天有人问如何处理IIS网站出现"Service Unavailable"的情况. 在网上google了一下,导致这个出错的原因很多,而"Service Unavaila ...

  8. 小程序获取头像试试水 02《 程序员变现指南之 微信QQ 小程序 真的零基础开发宝典》

    本系列教程是针对粉丝的变现教程,还不是粉丝的可以关注我并且到社区:https://bbs.csdn.net/topics/603436232 进行打卡,不是老粉的也可以获取最终的技术变现学习,最终还有 ...

  9. 小程序的 HelloWord 01《 程序员变现指南之 微信QQ 小程序 真的零基础开发宝典》

    本系列教程是针对粉丝的变现教程,还不是粉丝的可以关注我并且到社区:https://bbs.csdn.net/topics/603436232 进行打卡,不是老粉的也可以获取最终的技术变现学习,最终还有 ...

  10. 程序员进阶之路:四个程序员职业阶段,通常对应不同的薪资待遇!

    IT行业可谓现在的热门行业,程序员也是很多人羡慕的工作.薪水高,不用东跑西颠,敲敲键盘,看看屏幕,一切工作全都搞定,轻松而方便. 但是,果真如此吗? 不尽然,实际上,程序员的职业生涯也是一个求道的过程 ...

最新文章

  1. 求解最大公约数算法(包含四种方法)
  2. SQL Server 2012 安全新特性:包含数据库
  3. SQLServer数据库自增长标识列的更新修改操作
  4. 快乐学算法之:字典树Trie
  5. GitLab 在多分支中的一个push
  6. qemu搭建arm运行linux内核,centos使用qemu搭建ARM64运行环境
  7. Hibernate一对多映射示例注释
  8. Pravega Flink connector 的过去、现在和未来
  9. 从来没见过这么多的资源~~好好找找吧,一定有你需要的
  10. 如何获取国际标准时间
  11. JAP的类关系 @OneToMany 和 @ManyToManys
  12. 编程入门先学哪种语言好
  13. allegro差分信号走线_Cadence差分线走线规则
  14. RoboCupRescue心得
  15. 帝国html5图片站模板,html5响应式自适应帝国CMS整站模板源码瀑布流文章图片资讯文章站...
  16. 论文笔记:BING and BING++(论文+程序)
  17. python中arcsec_python绘制基本初等函数图像
  18. 车辆侧翻预警系统介绍
  19. python+cuda编程(一)
  20. COBIT简介 (一)

热门文章

  1. Eclipse知识点精粹
  2. Flink及Storm、Spark主流流框架比较-实时框架比较
  3. sgi集群管理软件SMC安装步骤整理
  4. 从flw中提取mp3
  5. 重磅!Linux基金会白皮书:开源软件技术不受美国出口管制
  6. deeplabv3+——训练自己的数据集 torch1.12.0 cuda11.3
  7. word格式角落的直角问题又名裁剪标记
  8. 有梦想的人,始终在路上!(记阿里实习生霸面经历,拿到offer)
  9. python爬虫 多线程 爬取网站排行榜上的所有小说
  10. Windows 系统45个小技巧(建议收藏)