Linux(ubuntu 12.04桌面版) 搭建Android开发环境
因为一些工作上的原因,需要切换到Linux环境下做点开发,我选择的Linux发行版本为ubuntu(我不建议使用fedora,我最开始就是使用的fedora,但发现并不是特别好使,有些插件没办法安装,环境也搭建不起来)。在这里就先不说ubuntu的安装(比较简单,我采用的是U盘安装)先记录android开发环境的搭建。
一、安装jdk
ubuntu系统中自带有openjdk,所以当在终端中输入java -version命令的时候,会有一些提示的,忽略这些信息,我们要自己手动配置自己的jdk;
首先到http://www.oracle.com/technetwork/java/javase/downloads/index.html下载jdk,下载完成之后使用系统中的归档管理器打开,并把文件解压到一个文件夹下面;
二、配置环境
Step1:
# 将解压好的jdk1.7.0_21文件夹用最高权限复制到/usr/lib/jvm目录里
sudo cp -r ~/jdk1.7.0_21/ /usr/lib/jvm/
Step2:
# 配置环境变量
sudo gedit ~/.profile
在末尾加上:
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_21
然后保存关闭,使用source更新下
$ source ~/.profile
使用env命令察看JAVA_HOME的值
$ env
如果JAVA_HOME=/usr/lib/jvm/jdk1.7.0_21,说明配置成功。
Step3:
# 将系统默认的jdk修改过来
$ sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.7.0_21/bin/java 300
输入sun jdk前的数字就好了
$ sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.7.0_21/bin/javac 300
$ sudo update-alternatives --config java
$ sudo update-alternatives --config javac
Step4:
然后再输入java -version,看到如下信息,就说明改成sun的jdk了:
java version "1.7.0_04"
Java(TM) SE Runtime Environment (build 1.7.0_04-b20)
Java HotSpot(TM) Server VM (build 23.0-b21, mixed mode)
三、验证环境是否配置成功
在终端中输入java -version;如果出现java version "1.7.0_51" 。。。 类似的信息,即证明jdk安装及环境配置成功;
如果还不放心,可以写一个文件测试一下是否真的成功了;找一个目录新建一个Hello.java文件
public class Hello{
public static void main(String args[]){
System.out.println("Hello Ubuntu");
}
}
在终端中进入存放Hello.java文件所在的目录,输入javac Hello.java 。如果没有提示,表示编译成功,再次输入java Hello,如果输出Hello Ubuntu表示已经肯定配置成功;
四、下载eclipse
这里我推荐直接去android官网下载对应的Linux的集成了SDK的eclipse,解压即可使用;下载地址:http://developer.android.com/sdk/index.html;
五、第一个HelloWorld
在elipse下,新建一个Android项目,点击Run As的时候,却发现明明连接上了手机,却找不到对应的设备,在这里,也需要进行一些设置;
1.在终端中输入 lsusb
会发现结果中有如下类似记录:
Bus 001 Device 008: ID 0bb4:0c02 High Tech Computer Corp.
2.这时输入 sudo gedit /etc/udev/rules.d/50-android.rules
在打开的文件中增加以下文本:
SUBSYSTEM=="usb", SYSFS{"High Tech Computer Corp."}=="0bb4", MODE="0666"
3.在终端中输入以下命令修改文件访问权限及重启udev服务:
sudo chmod a+rx /etc/udev/rules.d/50-android.rules
sudo /etc/init.d/udev restart
注销当前用户,重新进入ubuntu系统;
4.在终端中进入android sdk的platform-tools目录,输入如下命令(这一步很重要,必须要sudo,否则没效果)
sudo ./adb kill-server
sudo ./adb start-server
如果出现类似下面的信息,即表示adb已经能够正常识别到设备了;
* daemon not running. starting it now on port 5037 *
* daemon started successfully * ///devices
5.再次运行程序,正常情况下应该程序就能安装到手机上了,如果有什么错误或遇到了问题,欢迎交流指正!
六、可能遇到的问题
我在配置一个开发环境的时候,把环境变量配置"好"后,第二天再次打开电脑,进入到输入密码界面,明明输入的是正确的密码,但是去闪一下又回到输入密码界面,但是如果随便乱输入密码则又会提示密码错误;在网上搜寻了一下,据说是环境变量配置的问题;
解决办法:在输入密码画面下同时按下CTRL + ALT + F1,在弹出来的命令窗口中输入root账户的密码,进入命令行模式,输入命令:/usr/bin/sudo /usr/bin/vi /etc/profile,之后按下dd(连续按下两次d键)删除错误的行,然后按住shift输入:号,然后输入wq回车,重启即可解决问题。
七、其它
1、在Ubuntu中,默认的firefox浏览器很不好用,经常就崩掉了,还好,我们可以使用chrome浏览器,安装方法如下:
- 进入 Chrome Linux 版下载地址:http://www.google.com/chrome/eula.html;提供了 deb 和 rpm 两种格式的安装程序,都有 32位和64位版本。
- 下载完之后,在终端窗口中进入文件存储位置,切换到root用户,运行命令:sudo dpkg -i google-chrome-beta_current_i386.deb
- 如果报错(缺少依赖关系)sudo apt-get -f install,安装所信赖的插件;
2、bin文件的安装:
在终端窗口中进入bin文件所在目录,修改文件的权限为可执行(见2),然后执行命令:sudo ./file.bin
八、修改文件及文件夹权限
Linux下的文件操作权限和Windows其实是一样的,也就是读、写、执行。这三个权限分别用一个值代替(r=4,w=2,x=1),将其中的一个或者两个等其它组合起来,就构成了用户对该文件的访问权限,如可读可执行:(rx=5+1);
在Linux下,改变文件或文件夹的权限使用chmod命令,该命令有两种用法:
- 1 包含字母和操作符表达式的文字设定法;
- 2 包含数字的数字设定法。
1、文字设定法:
chmod [who] [+ | - | =] [mode] filename
参数:
操作对象who可是下述字母中的任一个或者它们的组合:
- u (user) 文件或目录的所有者
- g (group) 与文件属主有相同组ID的所有用户
- o (others) 其它用户
- a (all) 所有用户,系统的默认值
操作符号:
- + 添加某个权限
- - 移除某个权限
- = 赋予给定权限并取消其它所有权限(如果有的话)
mode:
- 即之前提到的,r / w / x ;
2、数字设定法:
- sudo chmod 777 xxx.file (文件)
- sudo chmod -R 777 xxx.file (文件夹,文件递归需要加-R)
如上:777三个7分别代表u/g/o的rwx权限,需要记住的是如果是要改变文件夹及里面的所有文件的权限需要添加-R递归;
注:777表示的是读、写、执行的权限(rwx);
Linux(ubuntu 12.04桌面版) 搭建Android开发环境的更多相关文章
- linux(ubuntu)和windows下面快速搭建android开发环境
在windows和linux下面搭建android开发环境,一般要安装以下几个软件: 1.JDK安装 2.Eclipse安装 3.Android SDK安装 4.在eclipse里面安装ADT 5.e ...
- ubuntu设置开机默认进入字符界面方法 ubuntu 12.04 桌面版关闭图形界面(转)
ubuntu 12.04 桌面版关闭图形界面 注意]改GRUB 的配置文件(不建议直接改 grub.conf) file:/etc/default/grub GRUB_CMDLINE_LINUX_DE ...
- ubuntu 12.04 桌面版关闭图形界面
对于12.04的ubuntu桌面系统,如果想在开机的时候直接进入字符界面,那可以: 编辑文件 /etc/init/lightdm.conf,在第12行附近,原句“ and runlevel [!06] ...
- ubuntu 12.04 下搭接Qt 嵌入式开发环境
1.安装前的准备工作 (1)有ubuntu12.04 的系统镜像(也可以其他linux 如Fedorea9),都是安装好的 (2)虚拟机VMWare 或 VirtualBox ,两者都可以,都是安装好 ...
- Ubuntu 64 + IntelliJ IDEA + Genymotion 搭建Android开发环境
环境搭建所需可至 http://pan.baidu.com/s/1gd1Kf4Z 下载 注: 此处假定 Ubuntu 用户名为 chenfei 开发相关全部存放在 /home/chen ...
- Ubuntu 12.04 搭建Android开发环境
Ubuntu 12.04 搭建Android开发环境 2013/7/29 Linux环境下搭建Android开发环境 大部分开发人员可能都在Windows下做开发,可能是感觉在Windows下比较方便 ...
- Ubuntu 12.04 64bit 配置完android 5.0编译环境后出现“could not write bytes: Broken pipe.”而无法进入输入帐号密码的登陆界面
Ubuntu 12.04 64bit 配置完android 5.0编译环境后出现“could not write bytes: Broken pipe.”而无法进入输入帐号密码的登陆界面.上网问了问百 ...
- 在Ubuntu 12.04 桌面上设置启动器(快捷方式)
在Ubuntu 12.04 桌面上设置启动器(快捷方式)过程讲解: 如下图所示,Eclipse 和 SQLDeveloper 都可以直接双击打开,这些应用程序的启动器都在 /usr/share/app ...
- ubuntu 14.04 桌面版关闭图形界面
ubuntu 14.04 桌面版关闭图形界面 问题: 怎样将ubuntu14.04设置为文本模式启动? 解决方式: 改动改GRUB 的配置文件(不建议直接改 grub.conf) $sudo vim ...
随机推荐
- maven的两种打包方式
1.maven目前在web上面的使用方式很普遍,而打包的方式也存在很多方式 2.因为涉及一个项目调用另外一个项目的包,并将另外一个项目打成jar的形式便于管理 3.maven打包第一种方式: 将项目检 ...
- 关于C++虚函数表的那些事儿
前言 C++中的虚函数的作用主要是实现了多态的机制.关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数.这种技术可以让父类的指针有“多种形态”,这是一种泛 ...
- 角色 RESOURCE、CONNECT、DBA具有的权限
角色 RESOURCE.CONNECT.DBA具有的权限 select grantee,privilege from dba_sys_privs where grantee='RESOURCE' or ...
- 在Win10中通过命令行打开UWP应用
近期由于需要在WinX菜单中添加几个UWP应用,但发现很难找到相应的命令行,Universal Apps 的快捷方式属性里也没有. 于是到网上搜了很久才找到一个E文的页面,试了一下确实可行,分享给大家 ...
- javaweb(六)——Servlet开发(二)
一.ServletConfig讲解 1.1.配置Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些 ...
- 「LeetCode」0002-Longest Substring Without Repeating Characters(C++)
分析 贪心思想.注意更新每次判断的最长不同子串的左区间的时候,它是必须单调增的(有时候会在这里翻车). 代码 关掉流同步能有效提高速度. static const auto io_sync_off = ...
- 「知识学习&日常训练」莫队算法(一)(Codeforce Round #340 Div.2 E)
题意 (CodeForces 617E) 已知一个长度为\(n\)的整数数列\(a[1],a[2],-,a[n]\),给定查询参数\(l,r\),问\([l,r]\)内,有多少连续子段满足异或和等于\ ...
- Django2.1新手图文入门教程
第一个django Web Django2.1新手图文入门教程 http://www.liujiangblog.com/blog/36/
- 【转】MMO即时战斗:地图角色同步管理和防作弊实现
---转自CSDN 一.前言 无论是端游.页游.手游如果是采用了MMO即时战斗游戏模式,基本都会遇到同屏多角色实时移动.释放技能.战斗等场景,于是自然也需要实现如何管理同屏内各种角色的信息同步:例如角 ...
- Daily Scrum 9
今天我们的开会内容有一下部分: Part 1:讨论当前遇到的困难 Part 2:明天的任务分工 ◆Part 1 当前的困难 由于之前我们得到的学长的文件并不完整,导致我们无法打开,在和老师进行积极沟通 ...