[分享] 開發程式將 Icon 加入 SmallApp Dock

看板AndroidDev作者 (Mr. Pan)時間11年前 (2013/05/30 22:05), 編輯推噓3(301)
留言4則, 4人參與, 最新討論串1/1
網誌好讀版: http://darkk6.blogspot.tw/2013/05/sony-smallapp-dock.html Sony 最近的手機 : Xperia TX , T , V , Z... 等,有所謂的 SmallApp 讓視窗可以浮在最上層不影響下層的操作。 之前曾發表過如何開發 Sony SmallApp 的文章,有興趣可以參考看看 不過當時 Sony SmallApp 的 framework 還是屬於舊版, 現在新版本的 SmallApp 就不能這麼做了,要稍微修改一下 然而包含我自己在內,很多人其實對在任何地方只要按下多工鍵(紅圈處), 就可以叫出 SmallApp 列的這項設計感覺到方便實用: http://ppt.cc/fUX1 (我個人習慣將黃圈處這條工具列稱作 SmallApp Dock) 其實只要加一點點小技巧,就可以讓自己撰寫的程式能夠被 Sony 的 SmallApp Mamager 抓到,放進這個 SmallApp Dock 中, 這樣一來,想隨時隨地執行你的程式,就會方便很多。 如果自己不是用 Sony 手機,也可以在開發的專案裡面加入這個功能 讓 Sony 用戶可以從 SmallApp Dock 呼叫出自己的程式。 此方法還沒確定支援的機型,比 Xperia TX 還新的 T , V , Z 都可行, 而 Xperia TX 韌體版本應該在 197 以上的可以, 307 的可能要 root 後做一些手腳。 運作原理其實是真的建立一個 Sony SmallApp , 在 Small App 初始化的時候 (也就是在 onCreate 的地方),用 intent 打開自己寫的程式(Activity...etc), 接著再將 SmallApp 給 finish() 掉 而在做專案的時候,不需要將完整的 SmallApp Library 包進我的的 apk 這樣檔案會變肥,而且對非 Sony 用戶來說其實意義不大。 我們需要的是在撰寫程式的時候 Eclipse 能夠 reference 到這些方法 但在 build 的時候不要把 lib 編譯到 classes.dex 中,方法如下: (如果將 .jar 放進專案的 lib/ 資料夾底下,是會被編譯到 dex 裡) 首先需要 sony smallApp 的 framework,可以到 Sony Developer World 下載 SmallApp SDK 最新版本的 framework ,或者我這邊的備份檔案: Sony Developer World: http://ppt.cc/aO_Q 這個縮網址..好表情符號啊... 【com.sony.smallapp.jar : http://ppt.cc/7yz7 】 幾個月前從 Developer World 抓下來的,這個 lib 只提供開發時的參考 而已,lib 本身並沒有實際功能 【com.sony.smallapp(combine).jar : http://ppt.cc/fq6B 】 這是從 Sony 手機中 SmallAppManagerService.apk 抽取出來的 lib 包含舊版的 framework 和新版的 framework 都在裡面,lib 並非只 是參照,而是有實際功能。 其實在這邊只需要用到官方提供的參照用的 jar 即可。 步驟如下: Step1 : 到 Eclipse 專案處按右鍵,選擇 Build Path=>Add Libraries http://ppt.cc/xBW0 Step2 : 選擇 User Libraries http://ppt.cc/iA80 PS : 如果之前有新增過,這邊會出現已經有的 User Library , 打勾即可 Step 3 : 點選 New , 並輸入一個名稱 http://ppt.cc/iPN- Step 4 : 點一下剛新增的 Library ,接著 Add External JARs,並找到Lib的檔案 http://ppt.cc/LXVZ PS : 這邊我用的是抽取的 Combine 版本 Step 5 : 按下 OK 後,記得勾選要採用這個 Library http://ppt.cc/cGPe http://ppt.cc/1MTH 這樣一來就會在專案中看到這個 Lib 了 http://ppt.cc/eC8- 接著在 AndroidManifest.xml 裡面加入權限: <uses-permission android:name="com.sony.smallapp.permission.SMALLAPP" /> 以及 <uses-library android:name="com.sony.smallapp.framework" android:required="false" /> PS : use-library 要在 <application> </application> 裡面 也就是要求要使用系統的 com,sony.smallapp.framework 這個 lib 因為 required 是 false , 所以對一般非 Sony 手機不會有任何影響 接著新建立一個 class , extends SmallApplication , 假設叫做 SmallAppEntry http://pastie.org/7983729 裡面做的其實就是 start 我們程式的 Activity,如這裡的 EntryActivity, 接著隔一小段時間後讓這個 SmallApp 自殺。 最後在 AndroidManifest.xml處新增這個 SmallApplication 的 intent-filter即可,較完整 XML 如下: http://pastie.org/7983705 這樣一來 Sony 的手機就可以用囉~ 希望有幫到大家 :) 至於較舊的 TX , 印象中系統本身沒有 smallapp framework library 所以如果有 root 的話,可以自行增加這個檔案,這樣在 <use-library> 的部分就可以抓到檔案了 http://ppt.cc/3n7j -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.47.177.109

05/30 23:56, , 1F
05/30 23:56, 1F

05/31 11:21, , 2F
05/31 11:21, 2F

05/31 14:31, , 3F
05/31 14:31, 3F

06/05 14:05, , 4F
推推
06/05 14:05, 4F
文章代碼(AID): #1HfroLtB (AndroidDev)