公告版位
新版部落格:blog.changyy.org
目前分類:Android (52)
- May 16 Thu 2013 23:32
Android 開發筆記 - 使用 mDNS 偵測裝置與 TXT record 處理方式 @ Mac 10.8
- Feb 17 Sun 2013 22:17
Android 開發筆記 - 網路廣播程式及實作原理 (使用FFmpeg播放mms)
- Feb 14 Thu 2013 00:38
Android 開發筆記 - 使用第三方函式庫流程 (以FFmpeg為例)
雖然 Android framework 已經有不錯的函式庫,但總是會有不足之處。這時就先來玩玩 FFmpeg 吧,首先要做的事就是編譯出可以在 Android 執行的函式庫,網路上不少編譯 FFmpeg for Android(ARM) 的文章,最後我就在 Ubuntu 12.04 64Bit 上試編一下,並在 Mac OS 10.8 上把玩 Eclipse 囉
- Dec 20 Thu 2012 22:41
Android 開發筆記 - 使用 keytool 處理 keystore 匯入、合併、更改密碼、更改 alias name
接近半年前幫公司上架一支 Android app ,結果兩個月前想要更新程式時,卻發現自己想也想不起來 keystore 的密碼 XD 當時起就一直抱著砍掉重練的精神,遲遲未更新程式,沒想到今天再次要更新程式時,竟然矇對 keystore 的密碼了!當下想到的第一件事就是更新密碼,把密碼改簡單一點 :P 此外,以前認為一支 Android app 就要獨立一個 keystore 來管理,反而造成管理上的困擾,因此查了一下果真還有可以合併 keystore 的方式 :-) 真是太讚啦
更改 keystore alias name:
- Nov 09 Fri 2012 20:28
Android 開發筆記 - 使用 Canvas 畫圖
一年前,我的好同事就一直在用 HTML5 Canvas 做出很多很讚的作品,但那時我的方向不一樣,一直沒有接觸。最近則開始想要在 android 畫畫圖,除了很底層的 OpenGL ES 外,就想到 Canvas 啦。
- Oct 05 Fri 2012 18:42
Android 開發筆記 - Unable to resume activity : android.database.StaleDataException: Attempted to access a cursor after it has been closed.
以前常在操作 DBHelper 時,常常因為沒有把 mCursor.close() 而常常出現一些錯誤訊息,後來就很習慣每次取一個 mCursor 出來,用完後就執行 mCursor.close() 來當做完整的收尾,結果開始出現這種訊息並且完全不知道是自己哪一行程式出錯:
FATAL EXCEPTION: main
- Sep 30 Sun 2012 11:14
Android 開發筆記 - 簡易 手電筒(閃光燈) app 實作
返家過節,家人分享了 android app 手電筒給我把玩,說真的偶爾還挺實用的,甚至一些 feature phone 都也有這種設計(基本上是真的裝了一個燈)。但我仔細看了一下該 app 的權限,卻開了一堆有的沒有的權限,假設把這個行為丟給國內知名防毒大廠的偵測系統進行偵測,那應該就會被判斷成病毒了。所以我就順手練習一下了 XD
而 android app 的概念則是使用相機的閃光燈,讓閃光燈的狀態停留在 FLASH_MODE_TORCH 時,就可以當做手電筒使用了。然而真正實作上的細節,則必須先開啟相機才能使用閃光燈,也就是用閃光燈之前必須開啟鏡頭並且也會開始把鏡頭收到的影像傳給系統了。簡言之,使用閃光燈其實會操到鏡頭跟系統資料,等同於有資料不停地從鏡頭收進來。
- Sep 28 Fri 2012 23:40
Android 開發筆記 - 解決 HttpUriRequest/HttpGet/HttpPost 之 Host name may not be null
最近碰到一個 bug 卡關,那就是當我 new HttpGet("http://aaa_bbb.ccc.dddd") 出來,交由 HttpClient 執行時,卻會看到以下訊息:
java.lang.IllegalArgumentException: Host name may not be null
- Sep 28 Fri 2012 23:21
Android 開發筆記 - 解決/取消 EditText 自動 focus 問題
想必還滿常碰到一個 Activity 中,擺幾個 EditText 讓人輸入帳密來送出的表單吧!然而,當送出表單成功後,偶時會很偷懶直接把 mEditText.setText("Info") 且 mEditText.setEnable(false) 來處理,想說這樣又可以重複利用 XD 結果就會碰到開啟 Activity 後,自動 focus 在 EditText 並彈跳出 keyboard 的窘境了。如果動態進行 mEditText.setFocusable(false) 的方式,的確可以避開 focus 的問題,但很奇妙地再動態 mEditText.setFocusable(true) 時,卻會出錯而無法點選該欄位 Orz
最後,找到一些很折衷的辦法...那就是在 EditText 前,先讓某個處的 layout 可以被 focusable 就好 XD 這樣的解法真的是 It just works! 的狀態。
- Sep 26 Wed 2012 20:56
Android 開發筆記 - 處理 API 回應 XML 資料的通用解法
- Sep 24 Mon 2012 20:01
Android 開發筆記 - HTTP Post (File Uploading) Progress Report
之前研究 HTTP Post 的方法時,順手實作了支援 Cookie 等功能,久了之後就會想到如何監控上傳進度的部分,原理都很簡單,但要熟整各個 framework 才能方便進行。所幸網路上好心人士非常多,找到這篇 Android Multipart POST with Progress Bar 真的超佛心的,就順手修改一下一點架構。
實作概念:
- Sep 20 Thu 2012 21:12
Android 開發筆記 - 使用 HTTP Post 上傳檔案並支援 Cookie 資訊
之前已寫過一篇 Android 開發筆記 - HTTP、HTTPS、GET、POST、Cookie 筆記,最近則需要用 POST 上傳檔案,就順手在記一下。首先需從 http://hc.apache.org/downloads.cgi 下載 HttpClient (4.2.1) 後,從裡頭取出 httpmime-4.2.1.jar 檔拖到 Package Explorer > Your Project > libs 後,在按右鍵 Build Path > Add to Build Path...,如此一來在 Android 裡就能使用 MultipartEntity 進行上傳檔案的行為。若不使用的話,大概就自行實作鄉對應的格式也行。
- Sep 20 Thu 2012 19:37
Android 開發筆記 - 簡易 Java AES 加解密與 SHA1 筆記
寫 Mobile app 有時需要存一些敏感的資訊,如果只是當做一個認證用途,大概就用 MD5 或 SHA1 來使用,但如果需要保留的,大概就需要能夠加密後又解密的,這時候就可以考慮拿一把 key 進行 AES Encryption/Decryption 動作。
簡易 SHA1:
- Sep 19 Wed 2012 19:25
Android 開發筆記 - 取得 Mac Address 和 IP Address
- Sep 17 Mon 2012 22:38
Android 開發筆記 - 匯入圖片至模擬器中
雖然 Android 開發是用實機才是王道,但有時就是想偷懶看模擬器跑的如何,這時就仍需要模擬器的環境。如果要處理照片、影片的應用時,就需要匯入一些圖片影片來測試。一開始若直接用 adb shell 或 DDMS push 資料至模擬器時,會顯示 failed to copy: Read-only file system:
- Aug 24 Fri 2012 08:35
Android 開發筆記 - APP 的上架與更新
- Aug 16 Thu 2012 20:37
Android 開發筆記 - 更新 ListView 之 AndroidRuntime FATAL EXCEPTION 之 UI Thread 問題
一直以來都知道更新 UI 時,要使用 UI Thread 來進行,有幾種方式:
- 使用 Handler.post
- 使用 YourActivity.this.runOnUiThread
- 使用 mListView.post
然而今天練習時卻一直蹦出錯誤訊息:
- Aug 16 Thu 2012 19:35
申請個人或公司型 Android Developer 開發者帳號
摸了 Android app 大概有快一年半吧,一直以來都沒接觸過 Google Play (Android Market) 這塊東西,如今有幸幫公司處理,就來筆記一下啦!購買開發者帳號需要一張有效的信用卡,並透過 Google Wallet 來使用。首先從 Android Developer 官網連入,從右上角選單可以看到 Google Play Developer Console ,點選後進行登入,如果還未註冊為 Android 開發者時,就會顯示註冊畫面,輸入完"開發人員名稱/公司名稱"、"電子郵件地址"、"網站網址"、"電話號碼" 後,就可以點選繼續進行。
- Aug 13 Mon 2012 19:14
[Android] Galaxy Nexus 刷機筆記(重返 Google 親生子?) @ Mac OS X 10.8
七月多推薦周邊親人買 Galaxy Nexus 來用,那時洽逢 SAMSUNG 與 Apple 智慧財產官司的關係,花了好大一把功夫才買到一台(空機價約13.5k附近),雖然不是最便宜的(美國官網公訂價$399美金,台灣有機會可以找到 13k 一台),但看在缺貨情況已經很滿意了。使用上除了拍照有聲音外,還都不錯用,不致於想要 root 它啦,不過,讓我想更新它的主因是...直到 2012-08-11 時,尚未接收到 Android 4.1 OTA 更新通知,查了一下原來這隻手機似乎是港台機?代號是 yakjuzs 並且屬於 SAMSUNG 系列的?也就是系統更新是 SAMSUNG 在維護的,與其等到 SAMSUNG 推出 Android 4.1 更新檔,還不如自己更新吧 :P 於是就下海刷一下吧!
雖然過去工作常編 AOSP 甚至把一些手機 root 研究,但本身使用 Android 手機時,並不太想要 root 或刷機的 :P 例如刷機刷用的檔案有沒被加料等等。故這次更新我主要採用 Google 官方提供的 Factory Images for Nexus Devices 來源,這也是我專挑 Google Nexus 原生手機的主因之一,可以方便地處理一些事務。
- Jul 05 Thu 2012 19:02
Android 開發筆記 - 批次、大量設定按鈕事件偵測(setOnClickListener)
最近的案子很特別,除了一堆 Activity 外,每一個 Activity 裡頭又有一堆 Button/ImageButton 要處理,如果是依照一般教學文:
Button b = null;