基於Android 4.4 開發的多視窗系統 開放原始碼
Hi, 這是我基於Android 4.4開發的多視窗系統,還有很多不足,還請多多指教啊,程式碼已經全部開源。
Done:
1. APP以視窗化顯示
在 PhoneWindowManager::layoutWindowLw() 中通過packageName過濾,使指定的APP以非全屏尺寸顯示,因為一個APP通常是以一個task為單位,顯示多個activity,因此採用packageName過濾的方法。
2. 多個APP同時處於 onResume 狀態
修改AMS中通知onPause()的地方,指定pkg不通知pause。關於AMS中activity生命週期控制的地方,是以後需要著重優化的。
3. 修改Window的touch region
修改InputMonitor::addInputWindowHandleLw(), 使得Window攔截touch event的region只在本視窗範圍內。
4. Touch的window 上移到螢幕頂層
在AMS,WindowSession中新增介面,在ViewRootImpl裡攔截touch event,通過 windowSession通知WMS,和AMS,將Window 和 task 移至頂層。
5. RecentActivity 啟動到 APP stack中
由於同stack中task切換時的visibility切換還較好控制,但是如果跨stack切換,控制較為困難,因此將RecentActivity移至APP stack中啟動,這樣撥出RecentActivity,切換APP時,不會出現一些顯示上的bug。
6. 為Window增加titlebar
在PhoneWindow::generateLayout() 中增加titlebar,包括close, minimum, maximum, drag area, resize。
minimum尚未實現,因為還要結合AMS做一些控制activity生命週期的工作。
7. 增加入口APP
提供使用者選擇讓哪個APP以視窗化形式啟動,並在ServiceManager中註冊了一個自定義的service,裡面存放了要視窗化顯示的pkgs,然後供framework各處呼叫。
Next plan:
1. 修正各種bug
bug之多簡直不忍直視了。。。關鍵還是對原始碼很多地方不夠熟悉,因此總是頭痛醫頭,腳痛醫教。
2. 熟悉AMS控制流程
設計合理的多視窗activity生命週期,完成 minimum。
更新於20140730-------------------------------------------------------------------------------------------
簡單的介紹multi window開發過程的PPT:下載地址
相關文章
- 開放原始碼有利於系統安全原始碼
- 基於vue3.0+electron新開視窗|Electron多開窗體|父子模態視窗Vue
- 基於thinkphp開發的wemall微信商城原始碼系統修復PHP原始碼
- 短視訊系統原始碼,關於懸浮窗的縮放、拖動等應用原始碼
- 榴蓮微視系統開發原始碼出售原始碼
- 關於多鏈錢包系統開發技術邏輯及規則(開發原始碼)原始碼
- 多商戶商城開發(功能)丨多商戶商城系統開發(開發方案)丨多商戶商城成品原始碼系統原始碼
- 基於ThinkPHP開發的多商戶微信商城小程式原始碼PHP原始碼
- 關於/合約跟單系統開發/合約量化系統開發原始碼功能/方案原始碼
- 基於ffmpeg的Android播放器開原始碼 Posted onAndroid播放器原始碼
- KBQA: 基於開放域知識庫上的QA系統
- 一個開放原始碼的高階NIDS系統(轉)原始碼
- 基於 NanoHttpd 的 Android 視訊伺服器開發NaNhttpdAndroid伺服器
- 基於tp8框架開發野兔廣告聯盟系統原始碼定製框架原始碼
- 區塊鏈(多鏈多幣種)錢包系統搭建開發應用(原始碼檢視演示)區塊鏈原始碼
- 全新開發蘿蔔影視原始碼金色版 視訊影視系統APP原始碼原始碼APP
- 教育直播APP原始碼開發系統APP原始碼
- 跨境商城系統開發原始碼部署原始碼
- 艾倍生系統開發原始碼部署原始碼
- 基於AI知識庫RAG的綜合視窗系統AI
- 多鏈錢包開發原理丨多鏈錢包系統開發(詳情及流程)丨多鏈錢包系統原始碼分析原始碼
- 基於tp開發的線上教育系統
- 直播系統原始碼,ios系統開發的基本架構原始碼iOS架構
- 多商戶商城系統定製(平臺開發)原始碼案例原始碼
- Linux系統鼻祖暢談開放原始碼的未來(轉)Linux原始碼
- 量化合約開發(原始碼)丨量化合約系統開發(海外版)丨量化合約系統開發(多語言)原始碼
- 期權現貨交易系統開發|秒合約系統開發原始碼原始碼
- 量化合約系統開發(原始碼)合約量化系統開發(技術)原始碼
- 微軟將開放《我的世界》AI開發平臺原始碼微軟AI原始碼
- 開發基於JSP Servlet JavaBean的網上交易系統(含原始檔)JSServletJavaBean
- Thinkphp開發的積分商城系統原始碼詳情開發示例PHP原始碼
- 基於本人開發的許可權系統開發的企業站
- 基於THINKPHP3.2 開發 商城系統PHP
- TP開發的原始碼下載站系統,素材下載站原始碼系統,線上下載原始碼系統原始碼
- 基於代 碼生成器的快速開放平臺,learun框架原始碼下載框架原始碼
- 知識付費系統原始碼基於PHP開源的網站內容付費原始碼原始碼PHP網站
- 合約量化系統開發(原始碼搭建)原始碼
- 暖小白代理系統開發原始碼部署原始碼