Android培训
美国上市Android培训机构

400-111-8989

热门课程

10个自问自答让你了解Android应用开发

  • 时间:2017-06-26
  • 发布:Android培训
  • 来源:Android教程

这次小结Android开发领域的思考,整理一个入门篇:10个自问自答让你了解Android应用开发。

一、什么是Android应用开发?

Android应用开发指的是针对Android系统(此处默认为Android手机)进行APP开发工作。从技术角度具体包含应用层、系统层、Framework和底层的相关内容。

1、应用层:市场上手机应用都是基于应用层去完成Android开发

2、系统层:像小米、华为这样的硬件厂商做手机系统的二次开发,包括手机系统上自带的一些软件开发,严格来讲,都不属于Android应用开发

3、Framework层: 可以简单理解为开发模块给应用层调用

4、底层:偏硬件层,一般懂底层的内容对应用开发有帮助

二、碉堡了,原来Android系统的手机有这么多!!

200多个,慢慢翻

共200+款不同Android手机品牌,从品牌名首字母A到Z排序,看看哪些是你没听过但市场上还在销售的?

* AGM; 爱贝多:奥洛斯(aloes);

爱来福(ailyfu);安桥(ONKYO

* BIHEE;波导(BiRD);贝尔丰(BIFER);保千里(PROTRULY);白米(BAI MI);BROR;铂爵;白米(BAIMI);BIXING;B&O PLAY

* 锤子;长虹(CHANGHONG);

CONQUEST;传奇(SAGA);COTTEE ;CAPPU;初上科技;创星;CEnXn;CAT

*朵唯(DOOV);大显(DaXian);迪美(DIM);蝶变(db);

迪卡龙(DICAREN); 大Q;德赛(DESAY);东北丰(DBEIF);DATANG;东北风(DBEIF)

* eBEST;EPHONE;ECETD;E·XUN

* 格力(GREE);谷歌(Google);

广信(KINGSUN);Gigaset;国美;(GOME); 观

*Philips

* 华为; HTC;黑莓(BlackBerry);

海信(Hisense);海尔(Haier) ;HONOR;华硕(ASUS);华度(huadoo)

HALOVE;恒享(HEEXON)恒宇丰;(HEYUF); 恒语(HEEYU);Haipainoble;HAIMI; HANMAC;

恒远通达(HeroTod);海派贵族(Haipa)

* ivvi; IMOO

* 金立(Gionee);金圣达(GRSED);京立(Gineek);

京凯达(JKL);JBL;捷语(gofly)金德力(GOISUN);

基伍(G'FIVE);金天纬(KINWEI);金铂(GOBO);金柏利;

京瓷(KYOCERA) 金荣通(KRTONE)

* 酷派(Coolpad);康佳(KONKA);酷比(koobee);酷和(KHU);酷维(coovei);柯达(Kodak); Kindle

* 乐视(Letv);联想(Lenovo);LG;乐丰(lephone);乐视TV(Letv);聆韵(Lingwin);厘米;蓝魔(Ramos)

* 魅族(MEIZU); 美图(meitu);摩托罗拉(Motorola);MANN;MI;万有(WANYOU);meetuu;Microsoft;

马歇尔(Marshall);米辣椒(MPEPPE)

木糖醇(MuTuCu);MyTop;摩乐;(MOLOO); 美翼(Meiwings);MONSTER

* 努比亚(nubia);诺基亚(NOKIA);纽曼(Newman);诺亚信(NOAIN);尼凯恩(neken); 纽曼(Newmine);

NUOFEI;nubia;纽曼;NOMI;NAMO;Next bit

* OPPO;欧奇(ouch);普拉(pulada)

* 青橙(GreenOrange)全普(QUALPER)

* 荣耀;锐族;

* 三星(SAMSUNG);索尼(SONY);守护宝;索爱(soaiy);SUGAR;神舟(HASEE); 赛博宇华(SOP);

硕尼姆(Sonim)三姆斯(SGMSGMS);SOYES; SAMWEI;索野(SOYES);首家(SOJA);sjny;

SILENT CIRCLE;silent circle

* 天语(K-Touch);TCL;TETC;唐为(TANGWEI);天宏时代(Skyhon);TT.ONE; Temsent;tonino lamborghini

* unruly; UIMI;

* vivo;VETAS;VERTU;VOTO;Vilovo;VEB

* 微软(Microsoft);唯米(Weiimi);沃普丰(well phone);为可(VK);外星人(Alienware);威图;WE;Weiimi;微诺

* 小米(MI); 小辣椒;夏普(SHARP);先科(SAST);小蜜蜂(bee);炫华(xuanhua);小格雷;XPELL;小霸王;心迪(XiND)小霸王(SUBOR);XTYOU;小香叶(XIAOXYE)

* 一加;优思(Uniscope);誉品(YEPEN);优购(UooGou);易百年;艾尼卡(AINIKA);英特奇(intki);

云狐手机(NFOX);YAAO;优它(YOTAPHONE);YLTphone;

易博士;亿和源(YHYON);YOSTAR

* 中兴(ZTE);ZUK;詹姆士(GERMY);中国移动;中江(Z.JIANG);中兴健康(ZTE Health);ZTG中天语;

中诺(CHINO-E);职业者。

当然,上面的200多款Android手机品牌只作个了解,28原则,在中国市场上比较知名和市场占有率靠前的主要还是下面这些:

小米、华为、锤子、oppo、vivo、三星、魅族、中兴、金立、酷派、乐视、联想、微软、HTC等

评语: iOS开发同学比Android开发同学要幸福太多了

三、Android领域公认的20位大牛有哪些?(偏国内)

1、任玉刚:出过一本书,很多人学Android都是读他的书,之前在百度,目前在滴滴

2、张勇:360插件的作者,插件化是国内Android绕不开的话题

3、黎三平:支付宝Android客户端开发

4、Jaker Wharton: 业内公认大神,基本上做Android的都知道他

5、郭霖:《第一行代码》的作者,偏应用层

6、罗升阳:系统层的高手,之前在YY,熟悉源码、框架

7、张鸿洋:CSDN上博客专家

8、邓凡平:CSDN上博客专家,系统层的高手

9、徐宜生:CSDN 博客专家。著有《Android 群英传》 和《Android 群英传·神兵利器》 两本书,现任沪江网 Andriod 开发

10、dodola : 百度开发,在 Android 热修复技术领域有研究,开源有 HotFix, RocooFix。HotFix 广为人知

11、Android CJJ: GUI 领域的强者。善于开源各种动画组件。github 上经常活跃

12、代码家: 中国 Android 领头羊。早年间写的项目托管在 github 后引起众多开发者追随,每一个都是经典。在排行榜上中国区也一直处于top1位置。个人运营了gank 网站。为开发者提供优质的技术资料。

13、廖祜秋:阿里背景,早期开心网的开心农场,后期在阿里,现在去美国了

14、张维术:技术大牛

15、技术小黑屋:活跃于知乎和技术社区

16、大头鬼:阿里背景

17、范怀宇:豌豆荚背景

18、trinea: Github活跃大牛,安居客资深Android工程师,2010 年加入阿里巴巴,开始工具开发和性能优化工作。目前在上海安居客负责 Andorid 客户端技术。

19、柯元旦:系统层的高手

20、杨云君:系统层的高手

四、初级Android开发工程师的日常分哪几块?

1、UI开发

2、和服务端联调

3、Android打包

4、单元测试和集成测试

5、解决bug

6、性能优化

五、Android开发知识体系

图片为PNG格式,可保存点击大图查看

Android初级学习:

1、开发语言:java 

2、开发工具:eclipse

3、网络协议:HTTP , TCP ,UDP

4、数据库: MySQL(其它常见数据库还有Oracle、Redis、MongoDB、SQL Server)

5、服务器环境相关,作了解:Linux  / Nnix 、 (Ngix)

6、界面:QT、MFC

7、项目管理工具:SVN、Git、项目集成

8、四大组件最常用的:Activity

9、UI开发:View、Fragment、多线程相关

10、Android打包机制

11、Android与HTML5的交互

12、网络请求封装

13、App数据、图片缓存设计

14、设计模式:27种设计模式

等等

进阶学习 :

1、框架设计

2、版本管理

3、内存优化

4、自动打包

5、持续集成:持续提交代码、持续编译、持续测试和持续修复bug,技续集成最主重的三个策略:版本管理、自动构建、单元测试。

  • 版本管理

  • 自动构建

  • 单元测试 

6、Crash异常日志收集、统计

7、Crash分析

8、竞品技术分析

9、性能优化

10、Android逆向

等等

六、如何确保项目稳定上线?

1、产品经理功能定义清晰,约定不随意改需求或加功能

2、设计师的视觉图在开发阶段也不会随意更改

3、公司里有项目经理的角色,小公司不一定专门设有项目经理,但需要有一个人把控项目进度,此人有可能是CTO,有可能是测试,也有可能是Android leader

4、项目迭代模式适合自己公司现状

  • 敏捷开发,互联网版本小迭代通常用敏捷模式

  • 瀑布式开发,适合大型版本或项目

4、招聘到最优秀的开发人员,一堆优秀的同事一起共事,想低效和做得差也不行

5、迭代中测试,除了测试工程师要测这外,开发工程理财也要自测。

  • 功能测试:开发提交测试包后,由测试工程师负责完成功能黑盒测试

  • 冒烟测试: 在版本发布前,针对于功能模块去完成白盒测试。就好像工厂里要批量生厂电路板之前,先测其中一块,如果有问题冒烟了,那就肯定是有问题了

  • 服务器测试

  • Monkey压力测试

七、Android开发工程师的痛点?

1、开发功能多、时间紧、迭代快、没有时间学习

---时间是挤出来的,合理安排工作时间,周末多充电

2、各种Android手机适配、rom问题和Crash异常,问题复杂,有时千头万绪,压力山大

---压力的源头还是能力的不足,一旦能力提升了,压力也随之弱化了

3、年龄增长状态下滑,开发的黄金时间为毕业后1-5年,没有家庭的羁绊,30岁以后精力和创造力下降。

---保持好的开发状态,做到是什么年纪有什么样的技术水平 。不要30多了和20多头的开发水平一样

4、技术瓶颈难以突破,技术提升缓慢

---多请教业内比你做得好的人,想到自己问题的症结。到底是环境原因,还是项目原因,还是你自己方法或努力程度原因

5、扁平化管理架构,管理晋升缓慢 

---不必太再意一定要写管理线,当然如果对管理特别感兴趣希望能带团队,那么一步一步向公司证明你的能力吧,抓住机会从1-2人带起,做得好了然后越带越多

6、大部分互联网公司开发加班较多,没有太多个人生活

---事实证明,这世界上没有什么工作是完美的。互联网公司的普遍薪酬远超出其它行业,举个例子,制造业知名名企工作5年的工程师待遇8K, 你刚毕业进入一家不错的互联网公司,待遇10K。所以你要知道互联网公司发展快,但市场竞争也严峻得多,必须快节奏做产品,才能让公司不至于处于危险境地。

7、长期电脑前静态开发状态,身体亚健康

---注意劳逸结合,我公司的开发工程师经常累了就离开座位喝喝茶,吃吃东西,做做俯卧撑

八 、怎么在有效时间面试出一个Android开发工程师的真实技术水平?

这个问题和我和技术leader都有点头疼的问题,因为往往花2-3小时技术面,极尽全力判断此人是否符合公司标准,最终面试通过了,但后来发现进入项目中表现不如人意,过不了试用期需要辞退就特别尴尬了

1、面试时主要可以从哪些层面或维度去面试呢?

技术水平(一面由team  leader面试,重点考查技术水平)

  • Android项目

  • JAVA相关

  • 计算机理论基础

  • 代码水平

  • 解决哪些复杂问题和面临过哪些挑战

  • 聪明程度(智商层面)

领域知识(二面由部门负责人或技术交叉部门面,重点考查领域知识储备)

  • 对业务了解程度

    • 常调用API类应用,像美团、京东、携程、支付宝等App,页应多,都需要客户端频繁调用API数据,而需要涉及支付流程,因此做这类应用开发的开发人员需求对UI、网络、登陆、支付第三方接口等流程非常熟悉

    • 不常调用API应用,比如新闻类,浏览器类,天气类等等,产品更多关注的是手机系统内部数据的读写,这类App开发人员需要对ActivityManager, Service、BroadcastReceiver之类知识很熟悉

    • 游戏类应用 ;  如果公司技术有需要用游戏引擎的话,那开发人员需要掌握Cocos2d-x或Unit3d, lua等

  • 对行业了解程度

    • 比如传统IT行业与互联网行业在迭代开发上就有区别

软件技能(三面由CTO或部门负责人面,重点考查软性技能和为人气质是否能和团队长期发展)

  • 心态

  • 性格

  • 上进心

  • 学习能力

  • 沟通能力

  • 表达能力

  • 抗压能力

  • 价值观

2、我个人认为很基础的面试问题

  • Activity的生命周期

  • 解释对自定义View和layout的理解

  • Activity与view的区别

  • 网络协议中的HTTP,TCP,UDP的工作原理以及三者的不同点

  • 有没有处理过自动打包和开发到上架的完整流程? 用的打包工具是什么?

  • listview优化的流程和实现方法

  • 平时提升技术的手段

  • 客户端和服务端的数据交互

九、Android开发leader要怎么才能做到有效管理?

1、技术讨论。需求过完后,组织团队技术架构讨论;

2、任务分工。了解每个开发人员擅长的地方,工作清晰分工;

3、新人培养。新人入职很简单和高效的办法就是让新人看标杆老成员代码,快速使其融入和思考自我差距和问题;

4、工作进展。每日下班前开发进展同步;

5、代码质量。每周例会总结和code-review;

6、技术难题。及时解决团队成员遇到的技术难题;

7、问题解决。日常bug和线上突发bug修复管理;

8、培训提升。月度季度技术分享;

9、正向激励。考核结果的参考维度:代码质量、非常规bug数量、解决问题响应速度、开发时间、对团队的技术贡献;无论是功劳还是苦劳,只要团队成员真诚付出了努力和汗水,就需要给予肯定和赞赏,即使有时一两句表扬的话对方会很受鼓舞,当然确实做的不好也要惩罚。

10、团队管理。技术型团队采用弱管理思路,充分授权,有问题leader及时帮忙; 此外,建议除了公司级的团建外,一个好的leader会擅长处理好团队成员关系,除了工作关系,私交也最好不错。

小结,做到以上,那你的团队会是一支战斗力极高的队伍。出现问题,团队凝聚力极高,二话不说就会上前线解决问题,不会互相推诿或不信任。

十、Android开发的职业规划

1、走管理线:

初级Android开发工程师--中级Android开发工程师 --高级Android开发工程师--Android开发主管--Android开发经理--技术总监 

--CTO/CEO

2、走技术线

技术线1:

初级Android开发工程师--中级Android开发工程师--高级Android开发工程师--Android开发专家

技术线2:

Android开发工程师--iOS开发工程师---客户端专家

技术线3:

Android开发工程师--服务器开发工程师---全栈工程师--技术专家

注:

管理线精力重心会放在团队管理和员工管理、项目管理上,已经不用自己写代码了

技术线精力重心会至少有50%还在写代码,其他时间帮助团队技能提升等

3、HR建议

心态上

  • 终身快速学习,不至于被市场淘汰

知识上

  • 广度和深度扩展

  • 加强计算机理论基本功

技能上

  • 项目中历练本领,早上成为解决问题的能手。

上一篇:雇用Android APP开发公司时应避免的错误
下一篇:2017Android 面试回忆录(腾讯/阿里/滴滴/美团...)

Android中基于回调的事件处理

Android系统事件的响应教程

如何利用Sanitizer解决Android开发中遇到的Bug?

Android开发中基于监听的事件处理

选择城市和中心
贵州省

广西省

海南省

台湾