作者darkk6 (Mr. Pan)
看板AndroidDev
标题[分享] 开发程式将 Icon 加入 SmallApp Dock
时间Thu May 30 22:05:06 2013
网志好读版:
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
1F:推 Assyla:推 05/30 23:56
2F:→ nobody1:推 05/31 11:21
3F:推 PTTco:推 05/31 14:31
4F:推 kiffy:推推 06/05 14:05