編輯:關於Android編程
在開始Android開發前,必須先了解大名鼎鼎的Module-View-Control模式。
View: 顯示信息給用戶,並接受用戶操作。
Control: 相應各種事件,並進行相關處理。
Module:負責數據的獲取,加工處理與保存。
View設計與實現:
方案1:
采用Android默認的XML模式,層次結構: Layout -> View
動態UI: Fragment
方案2:
采用HTML,移植或實現HTML解析,動態創建管理GUI元素。
方案3:
自己設計GUI框架,實現GUI的管理與開發。
方案1的優缺點:
優點: 開發成本低,可以快速開發。
缺點:受Android平台框架限制,沒法提供行業專業領域的最優方案。
方案2:
就做日本BML解析器的經驗來看,復雜度很高,適合100人以上公司。
但可以快速移植其他平台的資源,適合快速開發。
方案3:
投入成本大,只適合大公司。但可以針對行業特點,提供應用領域的專業解決方案。
這方面遇見到的最好的開發工具是Embedded Wizard,開發效率是方案1的3-5倍,可惜一個授權5000歐元。
http://www.embedded-wizard.de/home.html
個人覺得可以先用方案1,在特定領域深入研究學習後,可以轉方案2或3。
方案3應該是最強大的,選擇了方案3其實就等價於你站在了Android開發者位置。
這個時候,你可以選擇最好的資源解碼與壓縮算法,最適合應用領域的腳本語言,更加方便的接口,可以跨平台支持Windows/IPhone/Android/linux
對於底層來說,只是2D/3D引擎的不同。
基本框架如下:
設計IDE,設計行業專用控件
|
設計腳本語言
|
編寫編譯器,將腳本語言轉化為特定平台代碼
Control:
Android對應的是Activity。
Module:
Module通常對應數據。關於Module的職責,我覺得借用數據庫的ACID來描述最合適。
原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability)
根據數據來源,大致可分為以下幾種:
1> 來自運行進程
2>來自SD卡文件
3> 來自硬件I/O
4> 來自網絡(比如WebService、FTP、HTTP等)
5> 來自數據庫
View-> Control
主要是采用Listener模式。Activity裡建立View控件與Listener實現之間的綁定。當用戶觸發View控件的相關動作後,
框架會調用綁定的Listener實現。
由於時間關系,目前還沒有深入研究Android實現。
有個疑問:
按照默認的思維,通常實現如下:
while(1)
if (有來自用戶的交互消息) {
根據位置和Glyph樹,決定當前要處理的View
調用控件的Listener 疑問點
}
疑問:
一般會馬上執行注冊的Listener實現, 有辦法延遲執行嗎?比如signal-slot機制的postsignal方法。
Control -> View
調用setContentView(R.layout.main)建立View與XML資源的聯系。
調用findViewById(R.id.name)來獲取子控件。
調用控件的setOnXXXListener方法來綁定相關Listener實現。
Module-> View
這兩者之間的橋梁是Adapter。
Activity-> Module
Service關系,對於耗時間的操作,需要開啟多個後台Service。
NDK是什麼?Android平台是基於java實現,運行於虛擬機Dalvik;故而使用Android SDK創建應用程序需要使用java語言來編寫實現。不過並不僅限於使用
Galaxy S7 俨然已經成為目前最受關注的智能手機之一,許多人還將其稱作是目前最佳的智能手機。三星在這部手機身上帶回了對於 microSD 卡的支持,但
React Native號稱能跨平台開發IOS和Android的原生應用,想來必定會成為一種趨勢。剛好計劃開發一款手機APP,又沒有相應的開發資源,決定自己摸索著試試。第
Windows Manager是一款窗口管理終端,可以遠程連接到Linux的X桌面進行管理,與服務器端產生一個session相互通信。最近在網上看見一個人在烏