A. 面試android高級開發工程師具備哪些技能
各階段的Android工程師
初級安卓開發工程師
掌握扎實的java基礎,了解各種設計模式,熟練掌握Android UI控制項、Android Java層API的相關使用。往中級層次發展時,繼續深入學習java編程技術,掌握更多Android開發需要的庫,還要精通ml、json解析,會做socket
c/s端的程序。
中級安卓開發工程師
除了上面提到的必備技能外,中級開發人員需要延伸到精通NDK JNI方式的開發,熟悉Android framework,會移植類似Fmpeg、Mplayer這樣的開源項目,並在Android上運行。
高級安卓開發工程師
作為高級app開發工程師,你只需了解,並不需要親自操作初級和中級工程師的工作流程,但是,你需要有一個整體知識構架,安卓開發各方面所涉及的知識你都有要了解,並有自己獨到的見解。需要熟練掌握Linux驅動開發,並對Linux內核結構很精通,掌握Android移植,包括硬體移植。
B. 安卓開發需要學什麼
安卓開發需要學:
一、應用程序
Android以Java為編程語言,使介面到功能,都有層出不窮的變化,其中Activity等同於J2ME的MIDlet,一個 Activity 類負責創建視窗,一個活動中的Activity就是在 foreground(前景)模式,背景運行的程序叫做Service。
二、中介軟體
操作系統與應用程序的溝通橋梁,並用分為兩層:函數層(Library)和虛擬機(Virtual Machine)。 Bionic是 Android 改良libc的版本。
Android 同時包含了Webkit,所謂的Webkit 就是Apple Safari瀏覽器背後的引擎。Surface flinger 是就2D或3D的內容顯示到屏幕上。Android使用工具鏈(Toolchain)為Google自製的Bionic Libc。
三、硬體抽像層
Android 的 HAL(硬體抽像層)是能以封閉源碼形式提供硬體驅動模塊。HAL
的目的是為了把 Android framework 與 Linux kernel 隔開。
讓 Android 不至過度依賴 Linux
kernel,以達成 kernel independent 的概念,也讓 Android framework
的開發能在不考量驅動程序實現的前提下進行發展。
四、編程語言
Android 是運行於 Linux kernel之上,但並不是GNU/Linux。因為在一般GNU/Linux 里支持的功能,Android 大都沒有支持。
包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。Android又以bionic 取代Glibc、以Skia 取代Cairo、再以opencore 取代FFmpeg 等等。
五、安全控制
目前Android 的 Linux kernel控制包括安全(Security),存儲器管理(Memory Managemeat),程序管理(Process Management),網路堆棧(Network Stack),驅動程序模型等。
下載Android源碼之前,先要安裝其構建工具Repo來初始化源碼。Repo 是 Android 用來輔助Git工作的一個工具。
參考資料來源:網路—android開發
C. 做安卓軟體開發需要學習什麼技術
Android的開發技術很多,在開始學習的時候不可能一次性全部學會,也沒有必要一開始都全部學會,但是有些技術是非常常用的,需要在開始時打好基礎,這些技術時:
1、Activity生命周期
雖然Android中有四大組件,但是不可否認Activity是最常用的。所以熟練掌握Android的生命周期是必須的。其實生命周期就是記住 Activity的那些方法在什麼時候被系統調用,這樣才可以把對應的邏輯代碼寫到合適的方法內部去。
至於服務和廣播組件可以稍微緩一下,到實際使用的時候再學習都可以。
2、界面開發技術
界面開發是一種基本的技術,幾乎所有的程序裡面都需要用到。在Android開發中界面開發分為3種:
1)使用xml文件布局
使用xml首先對於界面進行布局,然後在Activity裡面進行引用是最常見的應用軟體開發技術,這種方式使用的最大,需要學習的內容也最多。學習時需要熟悉:
a)五種Layout布局
深刻理解五種布局組織控制項的方式是一個基本的基礎,這樣你才可以在實際的界面中靈活的使用每種布局結構,構造出需要的界面。
b)常用控制項
控制項有很多,至少要知道每種控制項是做什麼的,至於裡面的特定參數和方法可以學要的時候再去查
c)界面美華
系統的控制項很多時候無法滿足要求,需要通過添加背景更換圖片等進行美化,要熟悉每種控制項如何去美華。
掌握了上面的內容,通過布局的嵌套就可以製作出各種界面,如果在熟悉include的使用就可以減少xml的重復,方便後期的修改和維護了。
2)使用代碼動態創建
有些時候需要動態的創建一些布局和控制項,這個就需要使用LayoutInflater去創建一些動態的界面了。
3)自己繪制界面
游戲中常用,繼承SurfaceView自己繪制。
3、數據存儲技術
Android中的數據存儲方式有3種:
1)SharedPrefereneces存儲
對於簡單的數據可以使用該方式存儲,以鍵值對的方式存儲一些基本的數據。
2)文件存儲
將數據以文件的形式存儲,可以是手機自身的存儲也可以是SD卡,文件的數據格式自己定義。
3)SQLite資料庫存儲
使用標准SQL語句進行操作,復雜數據的首選。
4、網路編程
現在的Android程序不需要聯網的已經不多了。所以網路編程也是必須的,一般的公司都會封裝有自己的聯網結構,但是基本的聯網還是要熟悉。
1)HTTP聯網
使用Http聯網+Json數據格式是現在很多客戶端的首選。
2)Socket聯網
至於藍牙等連接方式則可以在項目需要的時候學習。
對於手機的系統功能,如撥打電話、發送簡訊、讀取系統參數等則可以根據需要在學習,不麻煩的。
其次,手機軟體相關
Android開發不同於普通的電腦軟體開發,需要了解手機的操作習慣,知道手機的屏幕不大、內存有限,電池有限等,在實際開發和設計時盡量考慮。
D. 一個資深的Android開發者需要掌握哪些技能
1.Android/iphone平台手機終端軟體開發精通Android開發平台及框架,一年以上實際開發經驗;
2.精通Android GUI程序開發;
3.1年以上J2ME開發經驗,熟悉J2ME編程;熟悉Linux環境編程優先 ;從事過嵌入式開發工作2年以上。
4.熟悉HTML/WML/HTTP,具有良好的編程思想;
5.熟悉C/C++或者Java開發語言和環境;
6.有一年以上移動終端應用軟體開發經驗,有Android或者iPhone開發經驗尤佳;
7.基礎扎實,精通常用數據結構與演算法和設計能力;
8.熟悉移動終端特性和開發特點; 熟悉移動終端網路編程,了解3G\WiFi等技術;
9.熟悉C++/C#, MSSQL/MySQL資料庫開發;熟悉多線程、Socket或ACE等網路通信編程技術;
10.熟悉java各種編程方法,比如多線程,jni,idl等。 熟悉JVM的運行機制,移植或者擴展過JVM到嵌入式平台者優先,比如phoneme 等。
11.精通Android平台UI開發優先;英語良好,能閱讀英文資料;
工作職責:
1.負責Android平台的瀏覽器開發。
2.在Android手機上設計並開發應用程序或游戲;
3.Android平台框架層的維護以及擴展。
4.移植各種流行的框架體系(多媒體,藍牙,無線)到android上負責Android項目的開發工作;
5.負責Android項目的架構設計、方案的制定;
6.跟進Android的新技術發展。纂寫設計開發及實現文檔;
7.根據產品功能需求設計並完成軟體實現;
8.參與產品需求分析並制定技術實施方案;
E. 做安卓開發都需要會什麼求了解
①Java基礎知識 ②Linux基礎知識 ③資料庫基礎知識 ④網路協議
⑤Android基礎知識 ⑥伺服器端開發知識①Java基礎知識
很多朋友一上手就開始學習Android,似乎太著急了一些。Android應用程序開發是以Java語言為基礎的,所以沒有扎實的Java基礎知識,只是機械的照抄別人的代碼,是沒有任何意義的。萬丈高樓平地而起,Java就是築起高樓的每一塊磚頭。那麼Java學到什麼程度才算是過關呢?我個人認為至少要掌握以下兩個方面的內容:
a)Java基礎語法:具體的知識點列表可以在這里下載:《Java知識點列表》V1.0。這部分內容沒有討價還價的餘地,必須爛熟於胸。至於具體的學習方法,可以看書或者是看視頻,但是關鍵是要多加練習,無論是書上的練習還是視頻裡面的練習,都需要仔仔細細的完成;
b)設計模式:由於在Android系統的框架層當中,使用了大量的設計模式,如果沒有這個方面的知識,對於Android的理解就會大打折扣。設計模式的種類非常之多,一個一個的全部掌握,是不現實的,必須首先掌握面向對象的基礎設計原則,有了這些基礎原則的支持,就可以舉一反三。這部分內容可以在《Effective Java》和《Agile.Software.Development:Principles,Patterns.and.Practices》這兩本書中找到。
②Linux基礎知識
大家都知道,Android系統的基礎是Linux操作系統。在開發過程當中,我們也需要使用到一些Linux命令。所以說一些Linux的基礎知識是必須的(話說現在的程序員,不懂Linux都不好意思跟人家打招呼),推薦大家看看《鳥哥的私房菜》這本書,寫的相當不錯;
③資料庫基礎知識
這個比較簡單,就是一個增刪改查的資料庫操作,可以看一下這本書:《SQL編程練習與解答》
④網路協議
至少需要學習兩種基礎的協議,HTTP協議與Socket協議;
⑤Android基礎知識
⑥伺服器端開發知識
由於很多Android應用程序都需要伺服器端的支持,所以掌握一些伺服器端開發知識還是非常有必要的。至於選擇哪一種伺服器端知識進行學習,就比較麻煩了,因為技術的種類實在是太多了:
a)Java EE:就是上面郵件當中所提到的SSH—Struts+Spring+Hibernate。這種技術的優點的功能完整、強大,已經使用了很多年,而且既然大家已經非常熟悉Java了,那麼學習SSH看起來也順理成章。但是使用這種技術開發伺服器端程序,非常麻煩。即使是一些簡單的功能,也可能需要大量的代碼和配置文件來實現;
b)PHP:簡單易學,開發快速。但是我們需要多學一種語言,是否得不償失,就要大家自己判斷了;
c).NET:這項技術的特點和Java EE差不多,但是要想掌握.NET,則需要掌握c#,也是個麻煩的事情;
d)ruby on rails:這是我個人最喜歡的伺服器端技術,簡潔,優雅,寥寥幾行代碼,就可以實現很復雜的功能,但是這需要Ruby語言知識作為基礎;
至於選擇哪一種知識,就看大家自己的判斷了,畢竟每個人想法不一樣,愛好也不相同。
2怎樣去獲得這些技能基礎。
安卓開發學習書籍建議買 精通Android2 ,或者 Android2高級編程 這兩本書,講解的細致,但是一定要結合sdk來看。國內的不要買。。。。(切身體會,千萬別買)看完之後就可以自己動手做做項目了。
對於java基礎,我現在的感覺是 如果要深入學習android平台,java基礎一定要好(里邊包括各種java類庫的用法,本地代碼jni什麼的)。但如果平時隨便做做應用的話,會面向對象編程就完全可以了。把獲取這些技能基礎量化為100%的話,那麼看書這個途徑只能為你提供15%的進步。
看視頻,這也是許多自學android開發的新手必經之路,畢竟看書只有你一個人的思維在活躍,看視頻至少是兩個人的思維在碰撞,你能發現你與別人的不同,如果你有心,你就能進步更多。基礎知識不用我擔心太多,至少想學android的,找基礎知識的資料還是沒有問題的。在此你也可以試著了解一些android的基礎視頻。
F. 安卓開發工程師都需要會什麼求指導
各階段的Android工程師掌握的專業技術:
初級安卓開發工程師
掌握扎實的java基礎,了解各種設計模式,熟練掌握Android UI控制項、Android Java層API的相關使用。往中級層次發展時,繼續深入學習java編程技術,掌握更多Android開發需要的庫,還要精通ml、json解析,會做socket
c/s端的程序。
中級安卓開發工程師
除了上面提到的必備技能外,中級開發人員需要延伸到精通NDK JNI方式的開發,熟悉Android framework,會移植類似Fmpeg、Mplayer這樣的開源項目,並在Android上運行。
高級安卓開發工程師
作為高級app開發工程師,你只需了解,並不需要親自操作初級和中級工程師的工作流程,但是,你需要有一個整體知識構架,安卓開發各方面所涉及的知識你都有要了解,並有自己獨到的見解。需要熟練掌握Linux驅動開發,並對Linux內核結構很精通,掌握Android移植,包括硬體移植。
G. 做安卓平台游戲開發需要學什麼
你可以先去【繪學霸】網站找「游戲特效/unity3D」板塊的【免費】視頻教程-【點擊進入】完整入門到精通視頻教程列表: www.huixueba.net/web/AppWebClient/AllCourseAndResourcePage?type=1&tagid=305,306&zdhhr-11y17r-982802712495360219
想要系統的學習可以考慮報一個網路直播課,推薦CGWANG的網路課。老師講得細,上完還可以回看,還有同類型錄播課可以免費學(贈送終身VIP)。
自製能力相對較弱的話,建議還是去好點的培訓機構,實力和規模在國內排名前幾的大機構,推薦行業龍頭:王氏教育。
王氏教育全國直營校區面授課程試聽【復制後面鏈接在瀏覽器也可打開】:
www.cgwang.com/course/gecoursemobilecheck/?zdhhr-11y17r-982802712495360219
在「游戲特效/unity3D」領域的培訓機構里,【王氏教育】是國內的老大,且沒有加盟分校,都是總部直營的連鎖校區。跟很多其它同類型大機構不一樣的是:王氏教育每個校區都是實體面授,老師是手把手教,而且有專門的班主任從早盯到晚,爆肝式的學習模式,提升會很快,特別適合基礎差的學生。
大家可以先把【繪學霸】APP下載到自己手機,方便碎片時間學習——繪學霸APP下載: www.huixueba.com.cn/Scripts/download.html
H. 學習android開發需要哪些基礎
樓主您好~很高興能為您解答,開發android首先您要有一定的java基礎,因為android開發是基於java的,java基礎您可以不用很深入的研究,畢竟要把java全部學完也是要一定的時間的,android也是基於java編程的,學android就相當於學java的嘛,如果樓主您需要的話我這里有一些資料可以分享給您!希望能幫到您
I. 安卓開發需要學習什麼
學習分三個階段:
1,Android基礎階段:平台架構特性(JAVA/C) Market/應用程序組件 環境搭建與部署/打包與發布 AVD/DDMS/AAPT 調試與測試 相關資源訪問/資源製作 Activity/Service/Broadcast Receiver/Content Provider/原理(生命周期)及深層實現
2,Android進階初級:組件Widget/ 菜單Menu/ 布局Layout 詳解 Xml解析(Pull/Dom/Sax)/JNI 解析SQL資料庫原理,。
SQLite /SharedPreferences/File詳解 多媒體Audio/Video/Camera 詳解
3,Android進階高級:藍牙/WIFI SMS/MMS 應用實現 深層次解析GPS原理。
實現LocationManager/LocationProvider 進行定位/跟蹤/查找/趨近警告以及Geocoder正逆向編解碼等技術細節 2D圖形庫(Graphics/View)詳解 SDCARD/感測器/手勢 應用實現
(9)安卓高級開發需要什麼擴展閱讀:
知識體系
1、Unix/Linux平台技術:基本命令,Linux下的開發環境
2、企業級資料庫技術:SQL語言、SQL語句調優、Oracle資料庫技術
3、Java 語言核心技術:Java語言基礎、Java面向對象編程、JDK核心API、Java集合框架、Java網路編 程、JavaI/O編程、Java多線程編程、Java異常機制、Java安全、JDBC、XML
4、軟體工程和設計模式:軟體工程概述、配置管理及SVN、UML、基本設計模式
5、Android應用開發基礎:Android開發平台、Eclipse+ADT開發環境、AVD及感測模擬器調試、Android核心組件、Android常用組件、Android高級組件、文件及網路訪問、SQLite資料庫編程、後台服務編程
6、互聯網核心技術: HTML、CSS、JavaScript、JQuery、Ajax應用
7、Android高級應用開發:音頻視頻攝像頭、互聯網應用、GPS和位置服務、Google Map、2D3D繪制、感測器開發、游戲開發、電話及SMS服務、網路BluetoothWi-Fi等。
8、Android系統級開發:移植、驅動、NDK(C方向)。
9、JavaEE核心技術:Servlet核心技術、JSP核心技術、Struts、Spring、Hibernate框架。