去年寫過一篇Demo Android Phone through your PC/MAC,介紹「DroidEx.jar」這個可以透過電腦螢幕展示 Android 手機畫面的工具。
這次要介紹的是 Android Screen Monitor 這個同類型的工具。
Android Screen Monitor 跨平台,從網頁下載之後,先將手機連上電腦,接著只要輸入
java - jar asm.jar 即可於螢幕顯示手機畫面,相當方便喔。
去年寫過一篇Demo Android Phone through your PC/MAC,介紹「DroidEx.jar」這個可以透過電腦螢幕展示 Android 手機畫面的工具。
這次要介紹的是 Android Screen Monitor 這個同類型的工具。
Android Screen Monitor 跨平台,從網頁下載之後,先將手機連上電腦,接著只要輸入
java - jar asm.jar 即可於螢幕顯示手機畫面,相當方便喔。
Android 2.2 中新增了應用程式直接安裝到 SD 卡執行 (不少人稱這個功能作 App2SD), 要使用這個功能只要在目前程式中做幾個設定:
1. 專案的 Project Build Target 版本設定為 2.2 (API 8) 2. 修改 AndroidManifest 清單
設定 Project Build Target 版本
在 Eclipse 專案列表中按右鍵,選取 properties 選項,會彈出設定視窗。 在上面選擇左側的 Android 標籤,在右側 Build 欄位勾選「Android 2.2」選項(沒有這選項的請參考 管理 SDK 來升級 SDK),如此一來編譯時才能認得我們接下來在 AndroidManifest 清單中所做的設定。
修改 AndroidManifest 清單
在 manifest 標籤中加入一個「android:installLocation」屬性,實際程式碼如下
<manifest xmlns:android="http://schemas.android.com/apk/res/android"> package="com.demo.org" android:versionName="1.0" android:versionCode="1" android:installLocation="preferExternal" > .... 說明
android:installLocation="preferExternal" 清單中加入以上宣告後,編譯好的程式仍然可以適用於較低版本的機器,只有在程式安裝到 Android 2.2 版之後的系統上,系統才會自動將這個程式安裝到 SD 卡中。
安裝到 SD 卡中時程式會預作一次加密,讓只有安裝本程式的機器能存取這個程式,避免了程式可能會輕易被盜拷的疑慮。
沒有用到 Service、桌面小工具(Widget)、或動態桌布(Live Wallpaper)功能的程式比較適合儲存到 SD 卡,例如遊戲或 BMI 等小程式。
因為當機器使用 USB 和電腦連線,將 SD 卡掛載成磁碟機時,這些儲存在 SD 卡中執行的程式將會被中斷。
其他提示請參考 Android 官方文件。
現在在 Google I/O 2010 會場看現場發表會。Froyo 真的是非常高完成度的版本,除了機器 OS 本身之外,還支援了許多對開發者、對使用者都有利的特性:
開發者:
新版開發工具支援 Library Project,意思是同時開發試用版 / 正式版時,終於可以共用多數程式碼和資源檔,而不用完全開兩個專案出來
支援 Data Backup API,表示任何應用程式都可以使用 Android Cloud 將程式中的資料記錄到雲端上,換到任何其他台手機上都可以備份回來。
允許遠端控制機器
多種模式的 Mobile AdSense
應用程式可以直接安裝到 SD 卡,得以在 Android 上實現大型遊戲等應用
Google TV 上也能裝 Android 應用程式。這表示什麼?表示開發 Android 平台遊戲就能打進電視遊戲市場!使用者
應用程式 / 網頁都有 2~3 倍以上的執行速度
應用程式能從 SD 卡中執行
在網頁版 Market 上點選安裝,在機器上即能自動下載
語音辨識功能、桌面搜尋功能更強大
有新版本應用程式可以自動從 Market 更新
搭載 Froyo 的設備能直接變成行動 AP (tethering) 開發者們又很有事情可以做了 :)
在 Android 機器上,螢幕的解析度可以用「螢幕大小」和「螢幕點距」兩個參數來表示。
一般的方法
在 Android 1.6 版以後,可以使用 config.screenLayout 語句來判斷螢幕大小
> Configuration config = getResources().getConfiguration();
> if((config.screenLayout&Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_NORMAL){
> }
>
UPDATE 2010/4/14: sam 說 「config = new Configuration ()」只會回傳預設的 Configuration, 而非當前的 Configuration. 找了一下最好是使用 getResources ().getConfiguration ()
支援的參數與代碼如下
> DisplayMetrics dm = new DisplayMetrics();
> getWindowManager().getDefaultDisplay().getMetrics(dm);
> if((dm.densityDpi == dm.DENSITY_HIGH)){
> }
> 支援的參數與代碼如下
根據Android 版本使用圖表,2010 年 1 月時 Android 1.5 市佔率還是接近 1/3,但是這 1/3 的機器上並無法使用上面的 API。
在 1.5 版上,其實仍然可以用 density 語句來判斷螢幕點距比率
> DisplayMetrics dm = new DisplayMetrics();
> getWindowManager().getDefaultDisplay().getMetrics(dm);
> if((dm.density >= 1.5)){
> }
>
density 的值 1 代表一般點距,1.5 代表高點距,0.75 代表低點距。要偵測市面上所有的機器是否是高解析度機型,只要運用以上方法,就可以自動偵測出螢幕大小和點距囉。
一篇經驗分享文章,分享 Android 上使用 AdMob 廣告營利的經驗與注意事項 2010 世界杯,我的 Android 之旅 蠻不錯的
另一篇移动应用排名与开发者的机会亦有可觀