.

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

.

作者 : 万境绝尘

转载请注明出处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. Azure AI 服务之语音识别

    笔者在前文<Azure AI 服务之文本翻译>中简单介绍了 Azure 认知服务中的文本翻译 API,通过这些简单的 REST API 调用就可以轻松地进行机器翻译.如果能在程序中简单的集 ...

  2. chrome官方完整安装包

    But did you know Google allows you to download the full standalone installer of Chrome from its offi ...

  3. iOS开源加密相册Agony的实现(一)

    简介 虽然目前市面上有一些不错的加密相册App,但不是内置广告,就是对上传的张数有所限制.本文介绍了一个加密相册的制作过程,该加密相册将包括多密码(输入不同的密码即可访问不同的空间,可掩人耳目).Wi ...

  4. 计算机网络之文件传送协议FTP

    FTP 文件传送协议FTP(File Transfer Protocol)是因特网上使用最广泛的文件传送协议. FTP 提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限.FTP ...

  5. Android简易实战教程--第三十七话《NotifiCation》

    通知的使用,无疑是Android系统的亮点之一:就连IOS在5.0开始也引入了类似通知的技巧.可见它的实用性. 今天这个小案例,就学习一下通知的基本使用,API是使用最新的API,4.3以前创建通知的 ...

  6. C++ 中const作用

    一.对const与#define的特点及区别的理解 #define只是用来做文本替换的,#define常量的生命周期止于编译期,它存在于程序的代码段,在实际程序中它只是一个常数,一个命令中的参数,并没 ...

  7. Dynamics CRM2016 Web API之Expand related entities & $ref & $count

    本篇介绍两个关于1:N关系中通过主实体取关联子实体的api,这两个api会经常被用到而且比原来的odata方式更加方便,之前如果我们要取主实体下所有的关联实体的记录都是通过Retrieve Multi ...

  8. Hive-ORC文件存储格式(续)

    本文在Hive-ORC文件存储格式的理论基础上,进一步分析一个实际的Hive ORC表中的数据存储形式. 一.表结构 库名+表名:fileformat.test_orc 字段 类型 category_ ...

  9. Dynamics CRM Trace Reader for Microsoft Dynamics CRM

    CRM中抓取日志的视窗工作叫做Diagnastics Tools For Dyanmics CRM,这个工具我们只是作为一个开关来用就不做多介绍了,日志生成后是个文本文档可读性是很差的,那就需要个视窗 ...

  10. memcached实战系列(三)memcached命令使用

    memcached命令的使用,在这里我们最好了解一下命令的含义,对命令有一个大致的了解,在了解的基础上进行使用.这里的命名是常用的crud命令的演示. 1.1.1. memcached命令的格式 标准 ...