【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 :
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 开发工具使用详解 (旧版本 | 仅作参考)的更多相关文章
- 【Android 应用开发】 Ubuntu 安装 Android Studio (旧版本|仅作参考)
. 果断换Ubuntu了, Ubuntu的截图效果不好, 不能设置阴影 ... 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article ...
- Ubuntu下Git从搭建到使用详解
Ubuntu下Git从搭建到使用详解 一.git的搭建 (1).sudo apt-get update (2).sudo apt-get -y install git 符:安装最新版本方法: add- ...
- 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 ...
- Ubuntu下制作deb包的方法详解
1 认识deb包 1.1 认识deb包 deb是Unix系统(其实主要是Linux)下的安装包,基于 tar 包,因此本身会记录文件的权限(读/写/可执行)以及所有者/用户组. 由于 Unix ...
- 并发包下常见的同步工具类详解(CountDownLatch,CyclicBarrier,Semaphore)
目录 1. 前言 2. 闭锁CountDownLatch 2.1 CountDownLatch功能简介 2.2 使用CountDownLatch 2.3 CountDownLatch原理浅析 3.循环 ...
- Windows下SVN命令行工具使用详解
根据我的记忆,似乎Windows 7下自自带一个svn命令行工具.如果你的机器没有,不必担心.你可以从http://subversion.tigris.org获 取subversion for win ...
- 【Android 应用开发】Ubuntu 下 Android Studio 开发工具使用详解
. 基本上可以导入项目开始使用了 ... . 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/21035637 ...
- Ubuntu下的PHP开发环境架设
Ubuntu下的PHP开发环境架设 今天重新装了ubuntu那么就吧过程记录下. 打开终端,也就是命令提示符. 我们先来最小化组建安装,按照自己的需求一步一步装其他扩展.命令提示符输入如下命令: ...
- ubuntu下安装 openssl 开发库
ubuntu下安装 openssl 开发库 检查是否已安装openssl: sudo apt-get install openssl 如果已安装执行以下操作:sudo apt-get install ...
随机推荐
- Azure AI 服务之语音识别
笔者在前文<Azure AI 服务之文本翻译>中简单介绍了 Azure 认知服务中的文本翻译 API,通过这些简单的 REST API 调用就可以轻松地进行机器翻译.如果能在程序中简单的集 ...
- chrome官方完整安装包
But did you know Google allows you to download the full standalone installer of Chrome from its offi ...
- iOS开源加密相册Agony的实现(一)
简介 虽然目前市面上有一些不错的加密相册App,但不是内置广告,就是对上传的张数有所限制.本文介绍了一个加密相册的制作过程,该加密相册将包括多密码(输入不同的密码即可访问不同的空间,可掩人耳目).Wi ...
- 计算机网络之文件传送协议FTP
FTP 文件传送协议FTP(File Transfer Protocol)是因特网上使用最广泛的文件传送协议. FTP 提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限.FTP ...
- Android简易实战教程--第三十七话《NotifiCation》
通知的使用,无疑是Android系统的亮点之一:就连IOS在5.0开始也引入了类似通知的技巧.可见它的实用性. 今天这个小案例,就学习一下通知的基本使用,API是使用最新的API,4.3以前创建通知的 ...
- C++ 中const作用
一.对const与#define的特点及区别的理解 #define只是用来做文本替换的,#define常量的生命周期止于编译期,它存在于程序的代码段,在实际程序中它只是一个常数,一个命令中的参数,并没 ...
- Dynamics CRM2016 Web API之Expand related entities & $ref & $count
本篇介绍两个关于1:N关系中通过主实体取关联子实体的api,这两个api会经常被用到而且比原来的odata方式更加方便,之前如果我们要取主实体下所有的关联实体的记录都是通过Retrieve Multi ...
- Hive-ORC文件存储格式(续)
本文在Hive-ORC文件存储格式的理论基础上,进一步分析一个实际的Hive ORC表中的数据存储形式. 一.表结构 库名+表名:fileformat.test_orc 字段 类型 category_ ...
- Dynamics CRM Trace Reader for Microsoft Dynamics CRM
CRM中抓取日志的视窗工作叫做Diagnastics Tools For Dyanmics CRM,这个工具我们只是作为一个开关来用就不做多介绍了,日志生成后是个文本文档可读性是很差的,那就需要个视窗 ...
- memcached实战系列(三)memcached命令使用
memcached命令的使用,在这里我们最好了解一下命令的含义,对命令有一个大致的了解,在了解的基础上进行使用.这里的命名是常用的crud命令的演示. 1.1.1. memcached命令的格式 标准 ...