2012年11月23日 星期五

Snoy Small App 開發入門

Sony Xperia 系列在 2012 年後的新機種陸續都加入了 Small App 的功能,
簡單來說就是 Sony 自己提供的一個簡單的 framework , 可以讓小視窗浮動
在畫面上( alwasy on top),感覺就像開啟一個新視窗。

比如說在逛 PTT 的時候有網站連結要連,可以用 Small WebView 來開啟:
這個功能其實蠻實用的,前幾個月換了 Xperia TX 後,就一直在關注這個東
西的發展。

自製 Small App :  Small MultiClip
PS : 上面連結文章中的下載位置是舊的囉,請參考新的下載位置 Small MultiClip
已於 Google Play 上架: MultiClipboard for SmallApp




只是靠別人不如靠自己, 想實作一些有用的 Small App , 應該也可以做得到吧XD
但是很可惜,網路上資料真的不多。

底下是實際測試和蒐集來的資料,讓大家可以試著開發第一個 Sony Small App。

【注意】
有的 Sony 手機不支援 Small App ,或者是要額外透過 SmallAppManager 來啟動
這部分就得看各自的機型了,底下是 Sony Xperia TX 手機的流程和步驟
如果是 Sony Xperia Tablet S ,可以參考這裡:
http://ppt.cc/0qbF ( TX 的一些概念也相同,只是設定不太一樣而已 )


PS : 這篇文章主要是寫給有開發經驗的人看的,如果沒開發經驗又看不懂,請先上網補齊自己應該有的知識。

【Small App SDK】
上面的 Small App SDK 是 for tablet S , 並不是用於 Xperia TX,可惜
的是以我自己的功力目前在網路上找不太到 TX 的 SDK 在哪,所以只好
祭出 Decompile  幫我處理 Library 的部分(參考底下)。

【抽出 Small App Library】
先用任何備分軟體或者 adb shell , 將手機中的 small app 的 apk 檔給備份出來,
如 Market 上的 Small WebView
(如何將 apk 抽出就看大家的功力了,如果這部分遇到問題歡迎詢問)

抽出後把 apk 裡面的 classes.dex 解壓縮出來,並利用 dex2jar 將 dex
轉為 jar 檔,只留下 com\sony\smallapp\ 底下的所有 class。

Library 下載點: com.sony.smallapp.jar  (若有版權疑慮會移除)

【建立 Android 專案】
透過 Eclipse 建立 Android 專案,為了保險起見, miniSDK 請設定在 API 14 以上,
記得是 4.0 後才知原這個東西的,且並不需要新增 Activity,留白就好。
建立完成後,請把剛剛下載的 jar 複製到 {EclipseWorkSpace}/你的專案名稱/libs/ 底下

接著回到在 Eclipse專案中重新整理一下就可以抓到了。


【建立 Class】
接著在 src/ 底下建立一個 Class (Package name  記得要打),繼承自 SmallApplication:


【修改 AndroidManifest.xml】
找到 AndroidManifest.xml 檔案,直接修改 xml 內容:
http://pastie.org/5422463 (礙於 Blogger 排版問題,我把 code 放在這裡)

最主要的部份就是 
<uses-permission android:name="com.sony.smallapp.permission.SMALLAPP" />

<service> </service> 之間的內容
 
特別注意兩個用 { } 刮起來的部分,要改成你自己的名字。

【初始化 Code】
接著在剛才建立的 Class 加入底下內容:
http://pastie.org/5422487
當然,數值和屬性可以自己慢慢試試看,大概可以看出一些端倪。
PS : 記得建立 layout 的 xml 啊

到這邊完成之後,安裝到 TX 裡面應該就可以使用了。
 接著該怎麼應用就看大家自己的想法了。

另外 Small App 的 Document 可以參考 tablet S 的 Small App Document,
剩下的可以試著用 JD-GUI 去 decompile com.sony.smallapp.jar
直接看有哪些方法可以呼叫。

未來如果還有多一點的研究的話,會再陸續補上。

7 則留言:

  1. dark大開發的剪貼簿small app很棒,希望可以在play上架,讓更多人可以看到!

    回覆刪除
    回覆
    1. 哈~ 謝謝您~
      最近有這個打算,
      差不多修改好準備要上架了~
      只差還沒申請開發者帳號 > <

      不好意思再多等個幾天吧 > <
      到時候還會在 ptt 上推廣 XD

      刪除
  2. http://forum.xda-developers.com/showthread.php?t=2057295

    我有在xda上看到有人在討論!
    不過貌似因為沒有英文介紹的關係,所以好像不太熱絡QwQ
    感覺如果有英文介紹的話會更容易推薦給歪果仁!XD!

    感謝版主做出這麼好用的軟體(y)

    回覆刪除
    回覆
    1. 哈,謝謝您的支持~
      英文介面的介紹昨天才剛用好XD

      不過因為破英文,所以也不知道他們看不看得懂XD

      PS : 更新到 v1.4.0 囉~

      刪除
  3. 請問一下~我最近想要利用Eclipse開發軟體,但一直遇到一個問題~就是Eclipse 一直抓不到Sony TX的裝置,想請問一下,要如何解這樣的問題,謝謝。

    回覆刪除
    回覆
    1. 你好~ 不好意思 大部分都是想到才會上來看

      首先請先確認開發所需的環境是否都具備

      Android SDK , Java SDK , Eclipse IDE
      Sony TX 的 Adb driver , 手機開啟 use debugger mode

      網路上很多相關教學文章,都確定了應該不會遇到問題

      刪除