【Android 应用开发】Ubuntu 下 Android Studio 开发工具使用详解 (旧版本 | 仅作参考)
.
基本上可以導入項目開始使用了 ...
.
作者 : 萬境絕塵
轉載請注明出處 :?http://blog.csdn.net/shulianghan/article/details/21035637
.
Android Studio 相關博客 :?
--?Ubuntu 下 Android Studio 開發工具使用詳解 :?http://blog.csdn.net/shulianghan/article/details/20855541?;
--?Ubuntu 配置 Android 開發 環境 :?http://blog.csdn.net/shulianghan/article/details/20855541?;
.
1. SDK Manager 配置圖標消失問題
上來就給我一棒子, 連工程都創建不了, 郁悶 ...
(1) 問題描述
點擊創建工程 : 出現如下的對話框, 這種對話框不正常;
問題解析 : 出現上述情況, 是因為 SDK 沒有配置, 下面是 SDK的情況 :?
-- SDK Manager 選項消失 : Configure 下面沒有 SDK Manager 選項了, 此時 在 Project Defaults | Project Structure 中也不能配置 SDK 路徑;
-- SDK Manager消失圖 :?
-- Project Structure 無法配置 SDK路徑 圖 :?
(2) 問題解決
出現原因 :?
-- 不是權限問題 : 之前認為是 Android Studio 中相關執行權限有問題, 后來執行了 chmod -R 777 ./* 將整個Android Studio 都加上了權限, 還是沒效果;
-- 真正原因 : 插件沒有激活, 在 Configure | Plugin 中, gradle 插件沒有啟用, 這樣使得 SDK 模塊無法使用;
-- 插件激活問題界面 : 可以看出 有 幾個插件沒有激活, 包括 gradle 插件;
修復問題 :?
--?激活插件及之后的效果 : 激活插件后會重啟;
-- 重啟之后查看 Configure : 此時 SDK Manager 圖標已經出現, 但是灰色的, 不能啟動, 這是因為沒有配置 SDK 路徑;
-- 配置SDK 路徑 : Configure | Project Defaults | Project Structure 中, 在 Android SDK 選項中 選擇 SDK 路徑;
-- 查看 SDK Manager 是否可用 : 此時 SDK Manager 圖標變亮, 可以執行;
-- SDK Manager 管理 : 下載的版本還是比較全的;
現在創建工程 : 界面如下, 正常了 ...
2. 從SVN服務器上檢出代碼?
(1) 檢出代碼并創建工程
檢出代碼, 將代碼放到新創建的工程中;
彈出 Check from Subversion 對話框途徑 :?
-- 通過菜單欄 : VCS | Check from Version Control | SubVersion, 即可彈出;
-- 在歡迎界面中 : 選擇?Check from Version Control 選項即可;
檢出項目流程 :?
-- 選擇需要檢出的工程URL, 點擊Checkout按鈕 :?
-- 選擇檢出項目本地存放目錄 :?
-- 選擇工程在本地的存放目錄?: 如果系統生成的不合適, 點擊??鍵可以自己選擇存放工程的本地目錄;
-- 選擇SVN拷貝格式 : ?不懂 選默認的 1.7 吧;
-- 輸入賬號密碼 :?
-- 是否為這個項目創建一個工程 : 工程就相當于 eclipse中的workspace, 如果選擇否, 該過程就會執行完畢, 工程就會下載到之前指定的目錄中了;
-- 創建工程 : 在上面的對話框中選擇是, 就會彈出創建工程對話框;
-- 工程的名稱 和 位置 :?
--選擇要導入Project工程的項目 :?
-- 檢查工程的依賴包 :?
-- 檢查module的依賴包 :?
-- 導入工程 : 工程中檢測到一些框架, 檢查這些條目排除錯誤的檢測;
-- 工程項目目錄 :?
-- 更新提交代碼 :??這兩個鍵分別是 更新 和 提交 代碼的按鈕, 如果項目時從 SVN 上檢出的, 這兩個按鈕就可以使用, 否則這兩個按鈕就不能使用;
(2) 檢出代碼放入已有工程
檢出代碼并導入項目到現有工程中 :?
-- 選擇要檢出的項目地址 :?
-- 選擇項目存放目錄 :?
-- 選擇項目源碼存放目錄 :?
-- 選擇 SVN 工作備份格式 :?
-- 是否創建工程 : 這里選擇否;
-- 上面的內容 與 (1) 中檢出版本到新工程 步驟相同, 下面就開始不一樣了;
-- 選擇導入項目 : 菜單欄 File | Import Moudle 選項, 彈出下面對話框, 在對話框中選擇我們要導入的項目;
-- 選擇創建項目方式 : 選擇從資源中創建一個項目;
-- 選擇項目中的文件 :?
-- 選擇項目中用到的庫 :?
-- 檢查項目結構, 為項目命名 :?
-- 導入項目 :?
-- 項目成功導入到了現有工程 : 可以看到該項目可以更新 和 提交到 SVN服務器;
3. 導入eclipse工程
(1) 導入 Moudle項目 到現有Project下
導入一個eclipse中創建的項目到Project下 : eclipse中的項目相當于 Android Studio中的Moudle, ?eclipse 中的workspace 相當于 Studio中的 Moudle;
-- 選擇導入Moudle : 菜單 File | Import Moudle , 選擇要導入的工程;
-- 選擇導入項目方式 : 從現有資源選擇;
-- 選擇要加入工程的文件目錄 : gen 目錄就不用加了;
-- 檢查項目中用到的庫 :?
-- 檢查項目, 并為項目命名 :?
-- 檢查工程中檢測到的框架 :?
-- 導入工程(Project)中的項目(Moudle) :?
(2) 導入一個 Project 工程 并導入一系列的 eclipse 項目
數據準備工作 : 創建一個目錄, 并將 項目源文件拷貝到這個目錄下, 我們就將這個目錄當做 Project 導入, 目錄中的 工程 當做 Moudle 項目 導入;
-- 創建文件并拷貝項目 : 創建一個 my 目錄, 將四個項目 源文件拷貝到這個目錄中;
octopus@octopus-Vostro-270s:~/code/my$ ls DisplayTest Hot_Blog ListViewTest TabHost_Test octopus@octopus-Vostro-270s:~/code/my$ pwd /home/octopus/code/my
批量導入eclipse項目流程 :?
-- 歡迎界面中導入 : 在環境界面中選擇 Import Project;
-- 選擇剛才創建的my目錄 :?
-- 選擇導入工程方式 :?
-- 為 Project 命名 并選擇 工程目錄 :?
-- 選擇 Project 中要導入的文件 :?
-- 選擇依賴包 :?
-- 選擇要導入的項目, 并可以為項目命名 :?
-- 直接覆蓋即可 : 因為剛才我們將 項目 拷貝到了 my 目錄下, 此時需要覆蓋一次;
-- 確認檢測到的工程 :?
-- 工程界面 :?
4. 配置adb工具
獲取 adb 工具路徑 : sdk 中的 platfrom-tools 中, 首先將 sdk 的 platform-tools 和 tools 目錄配置到環境變量中;
-- 獲取 兩個目錄的地址 :?/home/octopus/android-studio/sdk/tools 和?/home/octopus/android-studio/sdk/platform-tools ;
octopus@octopus-Vostro-270s:~$ cd android-studio/sdk/tools/ octopus@octopus-Vostro-270s:~/android-studio/sdk/tools$ pwd /home/octopus/android-studio/sdk/tools octopus@octopus-Vostro-270s:~/android-studio/sdk/tools$ cd ../platform-tools/ octopus@octopus-Vostro-270s:~/android-studio/sdk/platform-tools$ pwd /home/octopus/android-studio/sdk/platform-tools
配置環境變量 :?
-- 配置 .bashrc 文件 : 將上面兩個目錄配置到 環境變量中去;?export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_51 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH:/home/octopus/android-studio/sdk/tools:/home/octopus/android-studio/sdk/platform-tools
-- 關掉該終端, 重啟一個終端 : 查看 adb 版本, 卸載手機上運行的程序 :?
octopus@octopus-Vostro-270s:~$ adb version Android Debug Bridge version 1.0.31 octopus@octopus-Vostro-270s:~$ adb uninstall com.ivt.mHealth Success octopus@octopus-Vostro-270s:~$
5. 在真實手機上運行 Android 程序
連接手機 : 手機開啟 USB 調試, 連接手機, 在 Android Studio 界面中, 就可以查看手機連接信息;
-- 界面 Android 視圖顯示 :?
-- 啟動 Android Monitor View 界面 : 點擊??按鈕, 可以進入 Android Monitor View 界面, 對于這個界面, 就比較熟悉了, 與 eclipse 中差不多;
程序運行配置 : 在 菜單盤 Run | Edit Configurations 中配置;
-- 配置默認的運行方式 : 將默認的 Target Device 設置為 需要彈出選擇對話框;
-- 也可以在下面的位置進入配置對話框 :?
運行Abdroid 程序 :?
-- 運行方式 : ?選中 運行的 Moudle, 點擊右邊的三角形, 就會進入編譯階段;
-- 彈出選擇設備對話框 : 編譯很慢, 至少要半分鐘, 在該對話框中選擇要運行程序的設備;
-- 運行成功 :?
-- 卸載程序 : 在開啟一個終端, 在命令行使用 adb uninstyall com.ivt.mHealth 就可以將軟件卸載;
octopus@octopus-Vostro-270s:~/code/my$ adb uninstall com.ivt.mHealth Success
6. adb logcat 查看日志用法
(1) 按照標簽 和 等級 查看日志
日志等級 : 由 低級 向 高級介紹;
-- V : Verbose, 最低級的日志等級;
-- D : Debug 級別;
-- I : Info 級別;
-- W : Warning 級別;
-- E : Error 級別;
-- F : Fatal 級別;
-- S : Silent 級別, 這是最高的級別, 級別太高, logcat無法打印這種日志;
分析一個log日志 :
-- 日志格式 : F 代表日志級別, Enviroment 是日志的標簽, 7379 是進程id;
F/Environment( 7397): Static storage paths aren't available from AID_SYSTEM
日志過濾輸出 : 可以同時 添加 多個過濾器;
-- 日志過濾格式 : 可以使用 ?日志標簽 : 日志等級 作為日志的過濾器;
-- 使用的具體語法 : adb logcat 日志標簽:日志等級 日志標簽1:日志等級1 ...
-- 示例 : 使用 adb logcat *:F 輸出所有的 Fatal 級別的日志信息;
octopus@octopus-Vostro-270s:~$ adb logcat *:F --------- beginning of /dev/log/system --------- beginning of /dev/log/main F/Environment( 7397): Static storage paths aren't available from AID_SYSTEM F/Environment( 7397): java.lang.Throwable F/Environment( 7397): at android.os.Environment.throwIfSystem(Environment.java:637) F/Environment( 7397): at android.os.Environment.getExternalStorageDirectory(Environment.java:316) F/Environment( 7397): at com.android.MtpApplication.MtpReceiver.onReceive(MtpReceiver.java:1121) F/Environment( 7397): at android.app.ActivityThread.handleReceiver(ActivityThread.java:2445) F/Environment( 7397): at android.app.ActivityThread.access$1600(ActivityThread.java:154) F/Environment( 7397): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1360) F/Environment( 7397): at android.os.Handler.dispatchMessage(Handler.java:99) F/Environment( 7397): at android.os.Looper.loop(Looper.java:137) F/Environment( 7397): at android.app.ActivityThread.main(ActivityThread.java:5306) F/Environment( 7397): at java.lang.reflect.Method.invokeNative(Native Method) F/Environment( 7397): at java.lang.reflect.Method.invoke(Method.java:511) F/Environment( 7397): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102) F/Environment( 7397): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869) F/Environment( 7397): at dalvik.system.NativeStart.main(Native Method)
(2) 設定日志格式
日志格式字段 : 使用 adb logcat -v 日志格式 命令可以規定日志輸出的格式, 只能跟隨一個格式;
-- brief : 最基本的顯示, 即默認的 優先級/標簽(進程號):日志信息;
-- process : 只顯示進程id;?
-- tag : 只顯示 優先級/標簽;
-- thread : 只顯示 優先級/標簽 線程id;
-- raw : 只顯示原始的日志信息, 沒有其它字段;
-- time : 顯示日期 時間, 優先級/標簽(進程號);
-- long : 顯示所有的元數據字段, 并用空行分隔消息內容;
輸出示例 :?
--?adb logcat -v brief :?
octopus@octopus-Vostro-270s:~$ adb logcat -v brief --------- beginning of /dev/log/system D/BatteryService( 2252): Sending ACTION_BATTERY_CHANGED. D/STATUSBAR-BatteryController( 2408): onReceive() - ACTION_BATTERY_CHANGED
--?adb logcat -v process :?
mitter.java:206) (System.err) W(29843) at com.ivt.mHealth.datacommunication.impl.BqfjSockPacketTransmitter.access$000(BqfjSockPacketTransmitter.java:25) (System.err) W(29843) at com.ivt.mHealth.datacommunication.impl.BqfjSockPacketTransmitter$1.run(BqfjSockPacketTransmitter.java:101) (System.err)
--?adb logcat -v tag :?
octopus@octopus-Vostro-270s:~$ adb logcat -v tag --------- beginning of /dev/log/system D/STATUSBAR-BatteryController: onReceive() - ACTION_BATTERY_CHANGED D/STATUSBAR-BatteryController: onReceive() - BATTERY_STATUS_DISCHARGING: tw_stat_sys_battery_usb_not_charge
-- adb logcat -v thread :?
octopus@octopus-Vostro-270s:~$ adb logcat -v thread --------- beginning of /dev/log/system D( 2252: 2299) sendNotification(1) - 17303322 D( 2408: 2408) checkOverflow(560), More:false, Req:false Child:7 --? adb logcat -v raw :?
octopus@octopus-Vostro-270s:~$ adb logcat -v raw --------- beginning of /dev/log/system sendNotification(3) - 252119 [SvcLED] turnOff:: id = 4mIsIDUsingPatternLED = true [SvcLED] setSvcLedStateLocked:: id = 4, color = 0, mode = Off, set = Off [SvcLED] ForcedSvcLEDTask is running. [SvcLED] setSvcLedLightLocked : mSvcLedState : 0x0 priority : 6 mSvcLedMode : 0 checkOverflow(560), More:false, Req:false Child:6 waitForAlarm result :8
--?adb logcat -v time :?
octopus@octopus-Vostro-270s:~$ adb logcat -v time --------- beginning of /dev/log/system 03-13 19:01:00.020 D/STATUSBAR-IconMerger( 2408): checkOverflow(560), More:false, Req:false Child:7 03-13 19:01:00.050 D/KeyguardClockWidgetService( 3910): onReceive action=android.intent.action.TIME_TICK 03-13 19:01:08.400 E/Watchdog( 2252): !@Sync 1678 03-13 19:01:12.295 D/BatteryService( 2252): update start
--?adb logcat -v long :?
.
作者?:?萬境絕塵
轉載請注明出處?:?http://blog.csdn.net/shulianghan/article/details/21035637
.
總結
以上是生活随笔為你收集整理的【Android 应用开发】Ubuntu 下 Android Studio 开发工具使用详解 (旧版本 | 仅作参考)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【云计算 Hadoop】Hadoop 版
- 下一篇: 【嵌入式开发】C语言 内存分配 地址