當前位置:編程學習大全網 - 源碼下載 - 怎樣用Cornerstone給Android平板加上窗口

怎樣用Cornerstone給Android平板加上窗口

除了文件管理器之外,與桌面系統的另壹大區別就是只有全屏應用,沒有窗口。在我看來桌面系統只所以能夠實現高效操作,窗口式的多任務是壹大優勢,其效率超過移動系統的多任務切換。因此,即使將 iPad 加上鼠標和鍵盤,它仍是壹個移動系統,無法在效率上與桌面系統媲美。 android開發環境

由於**對 iOS 系統的控制比較嚴格,只能期待**對系統某些方面的改進。但是在 平板上,第三方開發者可以創造性的發揮了。

移動設備使用傳統的桌面窗口?看起來也不是壹個好主意,手指控制窗口的位置和大小比鼠標困難的多。或者根據是否有外接設備區分兩種模式:全屏模式和多窗口模式?看起來也復雜了壹些。

如果能夠像桌面系統壹樣,擁有窗口式多任務,但是又不用管理窗口,是否可行呢?這就是我們要提到的 Cornerstone:Android 上的壹個瓦片式窗口管理器。

硬件抽像層

Android 的HAL(硬件抽像層)是能以封閉源碼形式提供硬件驅動模塊。HAL 的目的是為了把 Android framework 與 Linux kernel 隔開,讓 Android 不至過度依賴 Linux kernel,以達成 Kernel independent 的概念,也讓 Android framework 的開發能在不考量驅動程序實現的前提下進行發展。

HAL stub 是壹種代理人(Proxy)的概念,Stub 是以 *.so 檔的形式存在。Stub 向 HAL“提供”操作函數(Operations),並由 Android runtime 向 HAL 取得 Stub 的Operations,再 Callback 這些操作函數。HAL 裏包含了許多的 Stub(代理人)。Runtime 只要說明“類型”,即 Module ID,就可以取得操作函數。

中介軟件

操作系統與應用程序的溝通橋梁,應用分為兩層:函數層(Library)和虛擬機(Virtual Machine)。 Bionic是 Android 改良libc的版本。Android 同時包含了Webkit,所謂的Webkit 就是Apple Safari 瀏覽器背後的引擎。Surface flinger 是就2D或3D的內容顯示到屏幕上。Android使用工具鏈(Toolchain)為Google自制的Bionic Libc。

Android采用OpenCORE作為基礎多媒體框架。Open CORE可分7大塊:PVPlayer、PVAuthor、Codec、PacketVideo Multimedia Framework(PVMF)、Operating System Compatibility Library(OSCL)、Common、OpenMAX。

Android 使用skia 為核心圖形引擎,搭配OpenGL/ES。skia與Linux Cairo功能相當,但相較於Linux Cairo, skia 功能還只是雛形的。2005年Skia公司被Google收購,2007年初,Skia GL源碼被公開,Skia 也是Google Chrome 的圖形引擎。

Android的多媒體數據庫采用SQLite數據庫系統。數據庫又分為***用數據庫及私用數據庫。用戶可通過ContentResolver類(Column)取得***用數據庫。

Android的中間層多以Java 實現,並且采用特殊的Dalvik 虛擬機(Dalvik Virtual Machine)。Dalvik虛擬機是壹種“暫存器型態”(Register Based)的Java虛擬機,變量皆存放於暫存器中,虛擬機的指令相對減少。

Dalvik虛擬機可以有多個實例(Instance), 每個Android應用程序都用壹個自屬的Dalvik虛擬機來運行,讓系統在運行程序時可達到優化。Dalvik 虛擬機並非運行Java字節碼(Bytecode),而是運行壹種稱為.dex格式的文件。

安全權限機制

Android本身是壹個權限分立的操作系統。在這類操作系統中,每個應用都以唯壹的壹個系統識別身份運行(Linux用戶ID與群組ID)。系統的各部分也分別使用各自獨立的識別方式。Linux就是這樣將應用與應用,應用與系統隔離開。

系統更多的安全功能通過權限機制提供。權限可以限制某個特定進程的特定操作,也可以限制每個URI權限對特定數據段的訪問。

Android安全架構的核心設計思想是,在默認設置下,所有應用都沒有權限對其他應用、系統或用戶進行較大影響的操作。這其中包括讀寫用戶隱私數據(聯系人或電子郵件),讀寫其他應用文件,訪問網絡或阻止設備待機等。

安裝應用時,在檢查程序簽名提及的權限,且經過用戶確認後,軟件包安裝器會給予應用權限。從用戶角度看,壹款Android應用通常會要求如下的權限:

撥打電話、發送短信或彩信、修改/刪除SD卡上的內容、讀取聯系人的信息、讀取日程信的息,寫入日程數據、讀取電話狀態或識別碼、精確的(基於GPS)地理位置、模糊的(基於網絡獲取)地理位置、創建藍牙連接、對互聯網的完全訪問、查看網絡狀態,查看WiFi狀態、避免手機待機、修改系統全局設置、讀取同步設定、開機自啟動、重啟其他應用、終止運行中的應用、設定偏好應用、震動控制、拍攝圖片等。

壹款應用應該根據自身提供的功能,要求合理的權限。用戶也可以分析壹款應用所需權限,從而簡單判定這款應用是否安全。如壹款應用是不帶廣告的單機版,也沒有任何附加的內容需要下載,那麽它要求訪問網絡的權限就比較可疑。 android開發實戰經典

使用過 的用戶可能會對瓦片式窗口管理器有所了解。由於 Linux 的開放性,產生了許多實驗性的窗口管理器,其中就有瓦片式窗口管理器(Tiling window manager),比如 Awesome。瓦片窗口管理器的特點是所有的應用在屏幕上平鋪開來。由於沒有窗口重疊,用戶無需手動調整窗口大小,可以完全用鍵盤控制。

瓦片式窗口管理很有創意,但是上並不友好,比較適合追求高效的 Geek 們。

Cornerstone 借鑒了瓦片式窗口管理,但是進行了改進。它只有三個窗口(主窗口和兩個輔窗口),並且在窗口上增加了位置切換和應用啟動按鈕。妳也可以直接關掉它,進入全屏狀態。具體使用可以看這個視頻。

Access="sameDomain" align="middle" height="400" width="480" quality="high" src="/player./sid/XMzUzMTUyODc2/v.swf">

從視頻看,Cornerstone 的使用非常簡單,比全屏的多任務切換要高效許多。設想妳把 Android 平板接上鼠標和鍵盤,然後運行 Corner Stone,看起來是否更像桌面電腦了呢?

現在,Cornerstone 已經引起了 Cyanogenmod 開發者的關註。CM 開發者 Sven Daw 剛剛在 Google+ 上提到了 Cornerstone,認為它非常出色,而且很容易加入到 CM 之中。“我們或許會把它加入 cm9。它需要壹些美化,但是這個概念簡直太棒了。” android開發視頻教程

或許我們很快就能在 Android 平板上使用 Cornerstone 了。

  • 上一篇:ultraedit如何運行C語言?
  • 下一篇:solaris和sunos有什麽區別阿
  • copyright 2024編程學習大全網