搜尋此網誌

2012年2月21日 星期二

uBuntu:ADB使用方式


一、前言:
  (一)、64位元的uBuntu,先「sudo apt-get install ia32-libs」(uBuntu記得連上網路嘿)
     安裝完成後,系統才能夠執行 adb。
  (二)、adb取得請先參考本篇
二、常用指令:
  (一)、接上Android裝置後,可使用以下Combo技做為連結裝置的SOP:
    1、./adb kill-server
    2、sudo ./adb start-server (PS.sudo通常會要求輸入密碼)
    3、adb devices
  (二)、簡化指令方式:
    1、若覺得鍵入「./adb」太麻煩時,可使用「Alias」來簡化指令。
    2、簡化「./adb」或「./[PATH]/adb」的方式如下
     (1)到Home/[使用者]/之下,[Ctrl]+[H],顯示隱藏檔。
     (2)找到[.brash]檔案,以gedit編輯。
     (3)加入「Alias adb=./[PATH]/adb」
       (如果adb是置於使用者根目錄→「Alias adb=./Home/[使用者]/adb」。
  (三)、adb其他常用指令:
    1、進入裝置 : adb shell
      進入後,提示將變為「#」
    2、輸入檔案 : adb push [資料夾|檔案] [目標資料夾]
    3、安裝軟體 : adb install -r [檔案名稱].apk
    4、解除安斷 : adb uninstall [apk package名稱]
      若找不到apk的package名稱時,可使用解壓縮軟體開啟apk檔案
      在apk檔案裡能找到AndroidManifest.xml,想辦法找到package字樣
      在package字樣後能找到一串如「com.xxx.ooo.xxx」字樣
      上述字樣即為package名稱
    5、查看程序 : adb jdwp
    6、叫救命  : adb --help
  (四)、較不常用的adb指令請「叫救命」。
  (五)、adb shell內指令
    1、開啟程式 :
      adb shell am start -n [apk的package名稱]/[apk的package名稱].[Activity名稱]
      若不知道程序名,同樣於AndroidManifest.xml裡,找到「Activity」字樣
      通常在「Activity」字樣後能找到儲如「com.xxx.yyy.zzz」之類的字樣
    2、輸入按鍵 : adb shell input keyevent [KEY ID]
      例如,想要「解鎖」就鍵入「adb shell input keyevent 82」
     00 -> "KEYCODE_UNKNOWN"
     01 -> "KEYCODE_MENU"
     02 -> "KEYCODE_SOFT_RIGHT"
     03 -> "KEYCODE_HOME"
     04 -> "KEYCODE_BACK"
     05 -> "KEYCODE_CALL"
     06 -> "KEYCODE_ENDCALL"
     07 -> "KEYCODE_0"
     16 -> "KEYCODE_9"
     17 -> "KEYCODE_STAR"
     18 -> "KEYCODE_POUND"
     19 -> "KEYCODE_DPAD_UP"
     20 -> "KEYCODE_DPAD_DOWN"
     21 -> "KEYCODE_DPAD_LEFT"
     22 -> "KEYCODE_DPAD_RIGHT"
     23 -> "KEYCODE_DPAD_CENTER"
     24 -> "KEYCODE_VOLUME_UP"
     25 -> "KEYCODE_VOLUME_DOWN"
     26 -> "KEYCODE_POWER"
     27 -> "KEYCODE_CAMERA"
     28 -> "KEYCODE_CLEAR"
     29 -> "KEYCODE_A"
     54 -> "KEYCODE_Z"
     55 -> "KEYCODE_COMMA"
     56 -> "KEYCODE_PERIOD"
     57 -> "KEYCODE_ALT_LEFT"
     58 -> "KEYCODE_ALT_RIGHT"
     59 -> "KEYCODE_SHIFT_LEFT"
     60 -> "KEYCODE_SHIFT_RIGHT"
     61 -> "KEYCODE_TAB"
     62 -> "KEYCODE_SPACE"
     63 -> "KEYCODE_SYM"
     64 -> "KEYCODE_EXPLORER"
     65 -> "KEYCODE_ENVELOPE"
     66 -> "KEYCODE_ENTER"
     67 -> "KEYCODE_DEL"
     68 -> "KEYCODE_GRAVE"
     69 -> "KEYCODE_MINUS"
     70 -> "KEYCODE_EQUALS"
     71 -> "KEYCODE_LEFT_BRACKET"
     72 -> "KEYCODE_RIGHT_BRACKET"
     73 -> "KEYCODE_BACKSLASH"
     74 -> "KEYCODE_SEMICOLON"
     75 -> "KEYCODE_APOSTROPHE"
     76 -> "KEYCODE_SLASH"
     77 -> "KEYCODE_AT"
     78 -> "KEYCODE_NUM"
     79 -> "KEYCODE_HEADSETHOOK"
     80 -> "KEYCODE_FOCUS"
     81 -> "KEYCODE_PLUS"
     82 -> "KEYCODE_MENU"
     83 -> "KEYCODE_NOTIFICATION"
     84 -> "KEYCODE_SEARCH"
     85 -> "TAG_LAST_KEYCODE"
    3、停止程序 : adb shell kill 程序ID
      先以「adb jdwp」列出android裝置執行中的程序,再以「adb shell kill 程序」停止
    4、停止系統 : adb shell stop

2012年2月6日 星期一

Eclipse:No resource found that matches the given name (...)

一、在Eclipse的專案中,在 res/layout/main.xml中記錄一些元件
二、但若某些資源沒要先做”宣告”的動作
  即會出現「No resource found that matches the given name (...)」,如:
<TextView   android:id="@+id/MyText"   android:layout_width="wrap_content"   android:layout_height="wrap_content"   android:text="@string/str_1"   android:layout_x="61px"   android:layout_y="69px"   > <TextView> 三、在res/values/strings.xml中加入
  「<string name="str_1"> STRING </string>」即可解決錯誤。

2012年1月31日 星期二

Android + Prime Sense:Import Prime Sense Sample On uBuntu

1、前情提要:
 (1)、已能夠在uBuntu下使用Eclipse之Indigo版本。
 (2)、Eclipse已經能夠用來開發Android。
 (3)、取得Linux version - Prime Sense Devkit。

2、在Linux下,Prime Sense提供的範例僅三個。在此,以Import SimpleViewer為例。

3、章節:Samples Import步驟
 (1)、Import SamplesAssistant專案
  .開啟Eclipse後,[File]->[New]->[Project]
  .開啟一個Android Project
   在New Android Project中選擇「Create project from existing source」
  .至資料夾中選擇「SamplesAssistant」專案,按下[OK]
  .在SamplesAssistant上按下滑鼠右鍵
   至[Properties]->[Java Build Path]->[Libraries],選擇[Add External JARs...]
  .至資料夾中找到OpenNI/java/下選擇org.OpenNI.jar,[OK]。
 (2)、Import SimpleViewer專案
  .[File]->[New]->[Project]
  .New Android Project,選擇「Create project from existing source」
  .至資料夾中選擇「SimpleViewer」專案,按下[OK]
  .[The End]

4、幕後花絮:
 (1)、若匯入專案後出現錯誤,可能性多為缺少元件(import jar error),再add jar即可。
 (2)、Eclipse中,SimpleViewer需要使用到SimpleAssistant。
    在預先Import SimpleAssistant後,匯入SimpleViewer即可完成import jar動作。
 (3)、如果!!在新增[SimpleViewer]專案後,出現package錯誤,指定OpenNI的jar檔即可。

2012年1月29日 星期日

Eclipse + Android API:Import Old Android Sample

新加入一個「較舊的」Android專案時,若「找不到」適用的Android API版本時,可以下述步驟加入專案:

1、File -> New -> Project... 。
2、到Android下選擇 Android Project後[Next]。
3、在「New Android Project」,請選「Create project from existing source」
  選擇後,在「Location:」指定你所想要加入的「舊Android專案」,再[Next]。
4、若Eclipse中,Android API有多個版本,選擇想要使用的版本即可,[Next]。
5、[Finish]。

2012年1月26日 星期四

ubuntu下建立Android開發環境(一)

一、開發Android應用程式,在此以(Eclipse + Android SDK)* uBuntu 為主。

二、具備下例條件時,建議就用ubuntu來開發Android:
 (一)、不懂怎麼從Windows之下連入Android裝置。(ubuntu下連結Android裝置簡單多了)
 (二)、Windows下使用Eclipse啟動Android模擬器時,模擬器極其遲鈍。
 (三)、稍懂得怎麼使用 adb 指令及linux指令。

三、簡述步驟:
 (一)、安裝Java SDK For Linux(下載頁面)
 (二)、Android SDK installer,安裝後可隨時下載各版本Android API(下載頁面)
 (三)、Eclipse IDE For Java EE Develop (Indigo On Linux下載頁面)
 (四)、可下、可不下:ADT(Android Development Tools ADT 設定頁面)

四、請記得,ubuntu要更新,若為64位元系統時,則必要安裝ia32-libs元件(ubuntu指令:$ sudo apt-get install ia32-libs)。

五、使用adb前,下載Android SDK後,可在 /platform-tools/下找到 adb(參考頁面)

六、有點ubuntu及eclipse使用經驗的,下載完後,應該能將Android開發環境建立完成,沒經驗的...詳細步驟我再找時間寫~XD

2011年12月6日 星期二

怪C# process start exe 的 Win7 權限不足?

以C#執行程式本身以外的執行檔時,若屬於登錄檔(regedit)裡找的到的檔案(如 notepad.exe、word檔等等),都能執行成功。
但若一個執行檔,在「所在地範圍外」執行,就出問題了。
執行程式本身以外的執行檔(exe),步驟如下:
1、老方法,以process來執行額外程序(using System.Diagnostics 先)。
2、加入以下程式碼
Process _exe = new Process(); _exe.StartInfo.FileName = "路徑"; _exe.StartInfo.WorkingDirectory = "所在資料夾"; _exe.Start(); 3、這裡的重點在於「_exe.StartInfo.WorkingDirectory = "所在資料夾";」。若少了這一個動作,執行檔常常會無法正常執行。

2011年8月3日 星期三

簡述Prime Sense API

Prime Sense API → NITE:
1、Prime Sense 以「OpenNI」為基礎建立「NITE」,再以「NITE」提供3D Gesture及其他應用。
2、NITE提供「hand tracking」、「user detector」、「depth detector」、「3d gestures detector」
2、Prime Sense Camera同於Kinet所使用的Camera,雖同以「OpenNI」為基礎,卻各自擁有不同的SDK。
3、NITE內的演算法以處理「hand tracking」為重點(人體骨架的使用仍需交給OpenNI處理)。
4、不同於Kinet,NITE的使用者需要做特定動作啟動程式(Initial Pose)。
5、NITE的「初始化手勢」有兩種,分別為「Wave」及「Click」。


API要角:
1、Detector及其Callbacks:
各種Detector,如 Wave Detector專門負責偵測使用者是否做了「Wave」,當使用者有需求時,將「WaveDetecotr」加入程式,再以callback取得wave偵測。NITE提供的 Detector包括「Wave」、「Circle」、「Swipe」、「Steady」、「Push」。
2、Session Manager:
相當於「總管」、「掌門」、「開關」的角色,決定偵測及偵測內容之執行。
3、Selectable Slider及其Callbacks:
相當方便的應用元件,包括「SelectableSlider1D」及「SelectableSlider2D」,能對Camera所偵測畫面做區域分割。
4、Flow Router   :
若一次只想偵測一種手勢時,請使用此元件。
5、Broadcaster   :
為「Flow Router」的進階,將想要偵測的手勢加入Broadcaster,即可同時偵測多項手勢。

NITE執行概念:

Step1:宣告「 Session Manager」元件
Step2:宣告欲使用的「Detector」及其「callbacks」
Step3:宣告「Flow Router」或「Broadcast」
Step4:將Detector加入「Flow Router」或「Broadcast」
Step5:將「Flow Router」或「Broadcast」加入「Session Manager」
Step6:宣告一Thread,以無限迴圈的方式執行 Session Manager內容,取得Camera內容並更新偵測內容。

以上,即可運用Prime Sense Camera配合程式碼完成3D操作的動作!