.

基本上可以导入项目开始使用了 ...

.

作者 : 万境绝尘

转载请注明出处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 :

octopus@octopus-Vostro-270s:~$ adb logcat -v long
--------- beginning of /dev/log/system
[ 03-13 19:01:12.300  2408: 2408 D/STATUSBAR-BatteryController ]
onReceive() - ACTION_BATTERY_CHANGED

[ 03-13 19:01:12.300  2408: 2408 D/STATUSBAR-BatteryController ]
onReceive() - BATTERY_STATUS_DISCHARGING: tw_stat_sys_battery_usb_not_charge

.

作者 : 万境绝尘

转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/21035637

.

【Android 应用开发】Ubuntu 下 Android Studio 开发工具使用详解 (旧版本 | 仅作参考)的更多相关文章

  1. 【Android 应用开发】 Ubuntu 安装 Android Studio (旧版本|仅作参考)

    . 果断换Ubuntu了, Ubuntu的截图效果不好, 不能设置阴影 ... 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article ...

  2. Ubuntu下Git从搭建到使用详解

    Ubuntu下Git从搭建到使用详解 一.git的搭建 (1).sudo apt-get update (2).sudo apt-get -y install git 符:安装最新版本方法: add- ...

  3. Ubuntu下Apache+php+mysql网站架设详解

    目录 1 基础 2 安装 2.1 安装LAMP 2.2 图形化管理软件(可选) 2.2.1 安装webmin 2.2.2 安装phpmyadmin 3 配置文件路径 3.1 常用命令 3.2 配置ap ...

  4. Ubuntu下制作deb包的方法详解

    1  认识deb包 1.1   认识deb包 deb是Unix系统(其实主要是Linux)下的安装包,基于 tar 包,因此本身会记录文件的权限(读/写/可执行)以及所有者/用户组. 由于 Unix ...

  5. 并发包下常见的同步工具类详解(CountDownLatch,CyclicBarrier,Semaphore)

    目录 1. 前言 2. 闭锁CountDownLatch 2.1 CountDownLatch功能简介 2.2 使用CountDownLatch 2.3 CountDownLatch原理浅析 3.循环 ...

  6. Windows下SVN命令行工具使用详解

    根据我的记忆,似乎Windows 7下自自带一个svn命令行工具.如果你的机器没有,不必担心.你可以从http://subversion.tigris.org获 取subversion for win ...

  7. 【Android 应用开发】Ubuntu 下 Android Studio 开发工具使用详解

    . 基本上可以导入项目开始使用了 ... . 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/21035637 ...

  8. Ubuntu下的PHP开发环境架设

    Ubuntu下的PHP开发环境架设   今天重新装了ubuntu那么就吧过程记录下. 打开终端,也就是命令提示符. 我们先来最小化组建安装,按照自己的需求一步一步装其他扩展.命令提示符输入如下命令: ...

  9. ubuntu下安装 openssl 开发库

    ubuntu下安装 openssl 开发库 检查是否已安装openssl: sudo apt-get install openssl 如果已安装执行以下操作:sudo apt-get install ...

随机推荐

  1. Java第1次实验提纲(基本概念与引入PTA+Git)

    0. 控制台下编译.运行 在Notepad++编写Java程序 学会使用控制台,javac.java 学会使用Notepad++ 参考资料: 控制台-cmd应用基础 扫盲教程 使用命令行编译并运行ja ...

  2. 安卓高级6 CoordinatorLayout

    原作者大神地址:http://blog.csdn.net/huachao1001/article/details/51554608 曾在网上找了一些关于CoordinatorLayout的教程,大部分 ...

  3. how to output quotes in bash prompt

    introduction In certain situations, quotes are required to be output in the command prompt. To do th ...

  4. clang-format中文出错

    clang-format中文出错(金庆的专栏)VS2015 Community + clang-format(Visual Studio plugin installer, based on SVN ...

  5. 在代码中写view 的长宽高等

    获得资源的id的另一种方法 int layoutRes = getResources().getIdentifier("pager_view" + i, "layout& ...

  6. Android动态换肤(一、应用内置多套皮肤)

    动态换肤在很多android应用中都有使用,用户根据自己的喜好设置皮肤主题,可以增强用户使用应用的舒适度. Android换肤可以分为很多种,它们从使用方式,用户体验以及项目框架设计上体现了明显的差异 ...

  7. Spark集群模式&Spark程序提交

    Spark集群模式&Spark程序提交 1. 集群管理器 Spark当前支持三种集群管理方式 Standalone-Spark自带的一种集群管理方式,易于构建集群. Apache Mesos- ...

  8. Java基础---Java---面试题---交通灯管理系统(面向对象、枚举)

    交通灯管理系统的项目需求: 模拟实现十字路口的交通灯管理系统逻辑,具体需求如下: 1.异步随机生成按照各个路线行驶的车辆  例如:   由南向而来去往北向的车辆-----直行车辆   由西向而来去往南 ...

  9. jquery实战第一讲---概述及其入门实例

    就在5月28号周四下午五点的时候,接到xxx姐姐的电话,您是xxx吗?准备一下,周五上午八点半去远洋面试,一路风尘仆仆,颠颠簸簸,由于小编晕车,带着晕晕乎乎的脑子,小编就稀里糊涂的去面试了,温馨提醒, ...

  10. 论文系统Step1:从日志记录中提取特定信息

    论文系统Step1:从日志记录中提取特定信息 前言 论文数据需要,需要实现从服务器日志中提取出用户的特定交互行为信息.日志内容如下: 自己需要获取"请求数据包一行的信息"及&quo ...