高級Android工程師]所要達到的非技術要求:
1.溝通:為什么把溝通放在第一位辕录?因為在平日開發(fā)過程中幾乎一大半的時間實在和各部門溝通与殃,更換一個icon會和UI爭得你死我活员魏,會為了某些需求文檔上的語義不清和偉大的pm據(jù)理力爭适揉,在測試過程中會和QA為了某些事遺留線上crash還是最新版本改出來的問題爭論欲低,留給我們開發(fā)的時間其實不多药版,所以說為了提高我們的開發(fā)效率德召,良好的溝通技巧事必不可少的白魂,其實大部分的程序員都是屬于筆記內向的,但是我們可以觀察在我們的身邊哪些性格比較外放同時技術水平不一定最好的同事能在這個職場上混的更好上岗,所以說不管是為了自己今后的發(fā)展也好福荸,為了今天的開發(fā)任務能按時完成也好,大家都需要去提高溝通技巧肴掷,至少你要去學著主動和別人溝通敬锐,這樣也可以讓問題盡早的暴露辞嗡,而不會造成延期和線上問題。最后我想說的是我們雖說現(xiàn)在是程序員滞造,但是我們絕不僅僅是程序員续室,我們要做一個有著產品思維、有著運營思維谒养、有著Qa思維的程序員Mφ(UI思維就算了,太天馬行空了买窟,哈哈)
2.態(tài)度:態(tài)度不僅體現(xiàn)在你的工作態(tài)度和別人溝通上丰泊,更體現(xiàn)在你遇到困難的時候,不論何時始绍,不論deadline壓的多么的緊瞳购,大家都要把自己的態(tài)度端正好,要正視自己現(xiàn)在的身份亏推,把自己的本職工作做好学赛。同時態(tài)度也體現(xiàn)在我們的心態(tài)上,特別是提測臨近而線上問題和遺留老問題紛至沓來的時候吞杭,更需要又一個良好積極向上的態(tài)度來應對一切盏浇,就我的個人經驗,一定要不斷的給自己心里暗示:什么問題都是可以解決的芽狗,什么bug都是可以解決的(如果自己實在解決不了绢掰,及時和自己的上級領導溝通,盡早暴露問題)
3.潛力:很多人都覺得自己都畢業(yè)好多年了童擎,哪還有潛力滴劲?!這種觀念是錯的顾复,你的潛力將伴隨你很久班挖,很多很多年前我的一位老領導和我說過一句話讓我受益匪淺:如果你想在這個行業(yè)做到做好,一定要不斷發(fā)掘自己的潛力捕透,超過別人的時間段不是周一到周五聪姿,而是周末別人都在嘻嘻哈哈的時候,如果你每個周末都能給自己定個小目標乙嘀,然后堅持去完成末购,你就能慢慢的超越很多人,現(xiàn)實生活中我們會遇到很多阻塞我們的事情虎谢,這時候就需要良好的心態(tài)來平衡了盟榴!堅持!
說了這么多看似題外話的內容婴噩,接下來我們還是講點大家最關心的問題吧:
高級Android工程師所要達到的技術的要求:
1.Android的基本知識
四大組件擎场、Fragment羽德、自定義控件、動畫迅办、組件之間的消息傳遞等等宅静,這些都是基本知識也是開發(fā)過程中所必須掌握的,同時也是為今后的發(fā)展所打的基礎站欺,在這個基礎上我們還要掌握組建的生命周期呀姨夹,activity啟動模式的區(qū)別和場景應用、scheme跳轉協(xié)議矾策、 組件之間消息傳遞的機制磷账、動畫的種類和區(qū)別、屬性動畫的特點和作用等
2.Android的技術難點AIDL贾虽、Binder逃糟、多進程、View的繪制流程蓬豁、事件分發(fā)绰咽、消息隊列等。這類知識對于定位自己為高級Android工程師的人來說是必須掌握的庆尘,同時他也是能鑒別高級和初中級工程師的一塊試金石剃诅,其中binder是Android系統(tǒng)進程間通信最重要的手段之一巷送,現(xiàn)階段app的發(fā)展離不開多進程的運用驶忌,經常會啟動例如定位、推送等需要在后臺開啟動的進程來來保證主進程的內存運行笑跛;所以合理的使用多進程也是十分必要的付魔;view的繪制是我們自定義控件的理論基礎,只有掌握了view是如何繪制的才能個性化的自定義控件飞蹂;事件分發(fā)一直是Android開發(fā)的難點之一几苍,也是必須掌握的,后期我也會在博客上推出這個系列陈哑;關于handler機制也是android的一塊難點妻坝,因為包括Asynctask、系統(tǒng)啟動惊窖、Intentservice等底層都是通過handler來實現(xiàn)的刽宪,所以掌握后handler機制不僅能提高你的實戰(zhàn)開發(fā)能力,更能讓你系統(tǒng)的了解整個android系統(tǒng)運作的情況界酒。
3.網絡框架的理解現(xiàn)如今Android的網絡框架可謂紛繁雜亂圣拄,但不外乎這三類:網絡請求框架、圖片加載框架毁欣、事件處理框架庇谆、IOC框架岳掐,其中的代表分別是Retrofit/volley/Okhttp,fresco/glide/picasso饭耳,eventbus/rxjava串述,butterknife/dagger/dagger2,平時應該多看下這些的源碼的設計理念寞肖,不僅可以糾正我們的一些代碼漏洞剖煌,我們要知道這些成熟的開源框架在github上已經經過了無數(shù)次的檢驗,所以學習這些框架能快速提高我們的代碼能力逝淹,畢竟在大家還沒有轉型前寫代碼的能力是我們工程師的根本耕姊。
4.Android系統(tǒng)的一些核心機制的運作:
在Android源碼中最重要的三個類:ActivityManagerService/PackageManagerService/View,推薦大家周末的時候可以去閱讀下這部分的源碼栅葡,閱讀源碼能提高我們今后設計架構自己代碼的能力茉兰,同時也能從底層了解整個android系統(tǒng)的運行原理,其他一些比如主線程的消息循環(huán)欣簇、主線程如何和AMS如何跨進程交互规脸、SystemServer進程中的各種Service的工作方式、AsyncTask的工作原理等熊咽。這些知識也是作為一個Android高級開發(fā)工程師必須掌握的莫鸭,不能整天沉溺于ui和四大組件的交互,要站在更高的角度去考慮Android的有些問題横殴。
5.android編譯構建
構建編譯打包是我們開發(fā)過程中的最后一環(huán)被因,但是也是最容易被很多人忽視的一個知識點,現(xiàn)在的大型app開發(fā)團隊都有自己的自動化構建工具衫仑,比如常用的jenkins梨与,在這個基礎上大家要對一些常用的工具有深入的了解:比如git的使用和它的內部原理,gradle如何加快我們編譯apk的時間以及它的一些基本語法文狱,proguard的作用和混淆的內部原理粥鞋,lint是如何來檢測我們代碼中的問題的和如何自定義lint配置等。
作者: DocMike
鏈接:https://www.imooc.com/article/19339
來源:慕課網
本文原創(chuàng)發(fā)布于慕課網 瞄崇,轉載請注明出處呻粹,謝謝合作!