顯示具有 android 標籤的文章。 顯示所有文章
顯示具有 android 標籤的文章。 顯示所有文章

2019年12月9日 星期一

將 Android 手機畫面顯示在電腦螢幕上

scrcpy

https://github.com/Genymobile/scrcpy

優點如下:
  • lightness (native, displays only the device screen)
  • performance (30~60fps)
  • quality (1920×1080 or above)
  • low latency (35~70ms)
  • low startup time (~1 second to display the first image)
  • non-intrusiveness (nothing is left installed on the device)

2018年5月14日 星期一

android app 的資料備份

開發 app 時,常會寫入一些資料做些收集、檢測的工作,實體手機有權限的限制,寫入在 app 的 private data 時,資料的備份是一個麻煩事。
以下方式可以處理~

from:
https://stackoverflow.com/questions/15558353/how-can-one-pull-the-private-data-of-ones-own-android-app

從 android 手機要備份資料,用 adb 可能會用以下方式:
adb pull /data/data/com.corp.appName/files/myFile.txt myFile.txt
 
對於 android virtual device 可能可以,但對實體手機可能會產生錯誤,它不讓我們複製。 
 
先離題一下,連線到實體手機時,以下指令可以進入到 app 的目錄裡,可以看到相關檔案,但無法複製。 
adb shell
run-as com.example.appName 

回題,要複製 app 的資料方式,要用備份的概念來做,指令如下:
adb backup  -f myFiles com.example.appName 

這個指令執行時,為了安全考量,手機上會顯示是否允許備份的動作,所以,必須在手機上配合操作才能允許備份某個 app 的資料。 
其中,myFiles 是備份出來的檔案,這個檔案是有壓縮的。
解開的方式如下:
dd if=myFiles bs=4K iflag=skip_bytes skip=24 | openssl zlib -d > myFiles.tar
 
如果上面這個指令產生 zlib 的錯誤,我用以下方式可以解開壓縮檔,成為 tar 的檔案。
dd if=myFiles bs=4K iflag=skip_bytes skip=24 | zlib-flate -uncompress > myFiles.tar 

再用 tar xf myFiles.tar 方式解開就完成了。 
 
2020.12.02 更新
ref: https://stackoverflow.com/questions/29830981/error-zlib-is-an-invalid-command
如果出現 zlib 或 flate 錯誤,可以用底下方式,用 python 來解決~ 
dd if=myFiles bs=1 skip=24 | python -c "import zlib,sys;sys.stdout.write(zlib.decompress(sys.stdin.read()))" | tar -xvf -

========================

討論串的下方還有幾種方式,我沒試,也許簡單些~ 
 
方式1 
$ adb shell
$ run-as {app-package-name}
$ cd /data/data/{app-package-name}
$ chmod 777 {file}
$ cp {file} /mnt/sdcard/
再回到 linux 將檔案複製出來
$ adb pull /mnt/sdcard/{file}
 
方式2
adb -d shell "run-as com.example.test cat /data/data/com.example.test/databases/data.db" > data.db
直接用 print 的方式將檔案 dump 到 linux 的檔案裡。 
 
  

2017年12月30日 星期六

Android 開發


使用者授權

android API 23 之後的,都需要在程式裡詢問使用者,以取得相關授權,以下文章,說明的方式是我目前覺得最簡單的方式。
https://altbeacon.github.io/android-beacon-library/requesting_permission.html






2013年6月15日 星期六

AVD Trackball mode

android virtual device 裡, 可以按 F6 鍵切換到 軌跡球(Trackball) 模式,在軌跡球模式下,滑鼠游標會無法離開 android virtual device 以外的操作介面。
再按一次 F6 , 就可以回到正常的滑鼠模式了~~


ref: http://developer.android.com/tools/help/emulator.html

2013年4月19日 星期五

在 Android 4.2 以上啟用開發人員模式

如果我們所使用的行動狀置,更新為 android 4.2 以上, 當我們使用 usb 連接到電腦,但是在行動狀置上卻找不到怎麼啟用 debug 的話,請依以下動作操作:

ref: http://www.ninjaromeo.com/enable-usb-debugging-developer-options-jelly-bean/

How to Enable USB Debugging and Developer Options on Android 4.2 Jelly Bean:

  • Go to – Settings > About phone.
  • Then move on to Build number option
  • Tap on Build number repeatedly about 7 times.
  • This is enough.
  • After touching 7th time you will see a message that, “you are now a developer”.
連按了三下之後,它就會開始倒數~~
完成七次之後,回到上一層,就會看到多了一個開發人員模式了~~


2012年6月7日 星期四

指令模式安裝軟體

 
試試看~~ 
adb install bin/MyFirstApp-debug.apk

2012年2月29日 星期三

ubuntu 11.10 x64 系統安裝 android 時發生錯誤,無法執行


在 ubuntu 11.10 x64 的系統,安裝 64位元的 jdk 7, eclipse, android 環境,當我們要執行 android 程式時, 發現以下的錯誤訊息:
shared libraries: libncurses.so.5: wrong ELF...
或是 adb 無法使用,解決方式是 安裝 ia32-libs 試試看, 指令如下:
sudo apt-get install ia32-libs 


參考來源: http://stackoverflow.com/questions/8055576/unable-to-configure-android-with-ubuntu-11-10

2011年7月17日 星期日

ubuntu下使用 eclipse 開發 android 時抓不到 htc 手機

在 ubuntu 下使用 eclipse 開發 android 時,抓不到 htc 手機的問題。
其實,如果是乾淨的環境,安裝 eclipse ,再依 android sdk 網站上的說明文件安裝 android 環境,應該是可以順利的抓到 htc 手機,執行程式時,也會自動上傳到手機上執行。
不過,如果是將資料 copy 出去再 copy 回來,包含 eclipse 和 android 環境也這麼處理時,可能會發現 eclipse 開發 java 是OK的,開發 android 也OK,但,就是連不上原本的 htc 手機了~~

在網路上找到二篇文章,很有幫助。
http://developer.android.com/guide/developing/device.html
http://blog.yam.com/pigfly/article/29335620
第一篇是官方文件,也是制式的寫法,如果看不懂的話,可以參考第二篇的,比較白話也比較清楚,而且還是中文的~~ ^_^
不過,依據我自己的 ubuntu 10.04 的環境(不知道是 ubuntu 還是 android 更新緣故)有些小地方要稍微改一下。以下文字,我是截取第二個來源,再依我自己的實際狀況重新修改過的流程。

  1. 在终端機執行 lsusb , 會看到
    Bus 001 Device 008: ID 0bb4:0c02 High Tech Computer Corp.
  2. 輸入
    sudo gedit /etc/udev/rules.d/51-android.rules
  3. 這是一個空的文件,直接貼上以下內容,儲存後離開
    SUBSYSTEM=="usb", SYSFS{"High Tech Computer Corp."}=="0bb4", MODE="0666"
  4. 執行以下指令修改權限
    sudo chmod a+rx /etc/udev/rules.d/51-android.rules
  5. 重新啟動 udev 服務
    sudo /etc/init.d/udev restart
  6. 切換路徑到 android-sdk-linux_x86/platform-tools 目錄下,依安裝的目錄為主,例如
    cd ~/android-sdk-linux_x86/platform-tools
  7. 分別執行以下二行指令
    sudo ./adb kill-server
    sudo ./adb devices
  8. 應該可以在 eclipse 裡直接將程式上傳到手機上執行了吧!如果還是不行,再看看 eclipse 顯示的訊息,以我的為例,它要我執行
    ./adb uninstall tw.idv.kingbig.android.xxxx
    就依訊息照做,再重新執行一次,就可以在手機上看到程式的運作囉!

2011年6月6日 星期一

eclipse連到android手機

參考這篇
http://developer.android.com/guide/developing/device.html

以及, 將手機的 usb除錯功能 開啟,就可以將 eclipse 撰寫的內容直接送到 手機裡執行囉!

android的VideoView

哈~~ 可以播放影片了~~ 原來,在 layout 這裡,若是使用 VideoView 的話,大部份都依原本的規劃來處理即可,但是卻不能加入 background ,加入這個設定的話,就會看到 background ,但沒有內容。