当前位置:首页 » 安卓系统 » linux搭建android开发环境

linux搭建android开发环境

发布时间: 2025-05-11 00:18:45

A. linux怎么搭建android开发环境

在ubuntu下搭建android开发环境,准备学习一下android开发。经过2个多小时,终于搭建成功。
1、安装JDK

首先到oracle的官网上下载linux版本的JDK(网址为:http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u26-download-400750.html),这里选择 Linux x86 - Self Extracting Installer。直接运行安装,先把这个文件cp到你的安装目录下,然后在你的安装目录直接执行:

./jdk-6u26-linux-i586.bin
如果执行失败是因为没有执行权限,那么还需要加上执行权限:
chmod +x ./jdk-6u26-linux-i586.bin

安装程序会自动给你安装到当前目录的jdk1.6.0_26目录下。程序安装好了,接着需要设置环境变量。执行:

sudo gedit /etc/profile
执行中提示:(gedit:4849): Gtk-WARNING **: Attempting to store changes into `/root/.local这个错误,从网上搜索了一下,sudo mkdir -p /root/.local/share/ 也就是表示以超级用户(sudo命令)身份创建目录,这样解决了这个问题。

在配置文件最后加入如下部分:

export JAVA_HOME=/home/jackwong/jdk1.6.0_26
export JRE_HOME=/home/jackwong/jdk1.6.0_26/jre
export PATH=/home/jackwong/jdk1.6.0_26/bin:$PATH
export CLASSPATH=.:/home/jackwong/jdk1.6.0_26/lib:/home/jackwong/jdk1.6.0_26/jre/lib

保存,然后注销当前用户,重新登录,环境变量就生效了。

验证是否安装成功:

执行:

java -version

如果出现:
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b06)
Java HotSpot(TM) Server VM (build 20.0-b11, mixed mode)
这样的信息,就说明OK了。
注意,ubuntu默认已经安装了openjdk,所以你就算不安装jdk,执行java -version也不会报错,但是报告的信息和安装了jdk是不一样的,请注意区分。

2.安装eclipse

目前官方推荐开发环境是eclipse+ADT。当然你完全可以采用其他任何一种开发环境,但是我还是选择了官方的推荐,因为一切都是免费的。下载eclipse的地址是:http://www.eclipse.org/downloads/我下载的是32bit linux :
Eclipse IDE for Java Developers。
我下载下来的文件是eclipse-java-juno-SR1-linux-gtk.tar.gz
当然首先是解压,执行命令:

tar zvxf eclipse-java-juno-SR1-linux-gtk.tar.gz

解压成功之后,就出现了一个eclipse目录。这个目录就是安装好的eclipse了,进入这个目录,执行eclipse文件,即可启动eclipse。

自己建立桌面启动快捷方式,即桌面右键创建启动器。

3.下载安装Android SDK Starter Package

Android SDK Starter Package这个只是SDK的核心基本工具,有了它,再利用它的管理工具下载其他你需要到部分。看到这个目录中有个android脚本文件了吗?执行它,就会启动Android SDK and AVD Manager,这个工具可以帮你下载其他你需要的部分,还可以创建模拟机。

下载地址是:http://developer.android.com/sdk/index.html

一般是下载最新版,我下载的:android-sdk_r21.1-linux.tgz。

接下来当然是解包了:tar zvxf android-sdk_r21.1-linux.tgz

解包完毕,就会在当前目录下出现android-sdk-linux_x86目录了。这个目录下就是sdk的基本工具了。记住这个目录,因为以后你运行工具或者设置ADT的时候,会需要这个目录的!

4.安装ADT(Android Development Tools)插件

ADT插件是google官方开发的Eclipse的一个插件,专门为Android应用开发而准备的。 启动 Eclipse, 然后选择 Help > Install New Software....。单击右上角的Add按钮,在弹出的 Add Repository 对话框中,Name一栏目填写 "ADT Plugin",在Location一栏就有两个选择,一个是填入下载网址:https://dl-ssl.google.com/android/eclipse/,这样就可以网上下载安装。第二个选择是如果我已经下载了ADT Plugin,那么就单击旁边的Archive按钮,直接找到插件所在到包即可。这里我用的是第一种方法。比如我用的就是第二种,把Developer SDK Tools前面的checkbox选上,然后单击下面的next按钮,然后就等着安装进度条完成吧,其中会出现安装软件的列表,你单击Next即可,然后会出现license,你必须选择agree才行,然后单击finish就完成了。安装完成之后,重启eclipse即可。

5.配置ADT 插件
配置的内容就是要修改在eclipse中到ADT插件的引用指向,需要指向前面安装好的Android SDK目录,还记得这个目录吗?
启动eclipse,选择Window > Preferences..
在弹出的Preferences对话框中左边选择Android标签,右边SDK location选择你当初Android SDK的目录即可。比如我到目录是:/home/AAA/android-sdk-linux_x86(AAA这里是我的用户名),然后单击apply,再单击ok即可。
在这个过程中会弹出一个对话框问你是否要参加google的满意度调查报告。你可以选择参加还是不参加。单击process按钮即可。
安装好之后,你可以常用Help > Check for Updates选项来保持ADT保持最新。

6.添加Android操作系统和部件

到目前为止,基本配置都差不多了,但是为了开发android应用,还必须添加一个android操作系统,用于模拟器模拟你的应用程序。当然还有一些其他部件需要安装。其实就是通过SDK 工具包中的Android SDK Manager来完成。当然在eclipse中可以直接启动这个程序:Window > Android SDK Manager.

当然也可以直接运行sdk目录下的tools目录下的android脚本来启动。

推荐的部件一般是:

SDK Tools,这个你安装了sdk starter package实际上已经装好了。

SDK Platform-tools,这个要装。

SDK platform,这个至少需要一个。也就是操作系统,你可以下载多个,比如2.2,3.1你可以都下载,但是至少必须一个,因为模拟器运行的时候是必须要的。所以,如果你想各种平台都模拟测试一下,那么你就需要各种版本的android都下载一个。

我下载了SDK Platform-tools和Android 2.3.3,Android 4.1,Extras几个包。

下载完成之后,Android的开发环境就搭建好了。

7.对模拟器进行设置
选择windows->Android Virtual Device Manager 点击new,具体配置如图.

完成后点击start,虚拟机运行后,可将语言调整为中文简体。

8.hello,android测试程序
启动eclipse,选择File->New->Project...,选择android下Android Application Project.

Application name:Hello,Android 这是应用程序名字,也是程序运行的时候显示在屏幕上方的文字,注意第一个字母要大写。
project name:HelloAndroid 这是项目名称,也就是包含文件的目录名称
Package Name:my.android 这个不用解释,学过java的都应该知道,这是类的包名。
其它地方默认就可以了。

然后一路next,在Activity name处设置为:Helloandroidactivity(注意要求第一个字母大写)就可以了。
完成后,在my.android下找到Helloandroidactivity.java,打开后,把里面的onCreate方法的代码更新如下:

import android.widget.TextView;

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
tv.setText("Hello, Android!=你好,安卓!");
setContentView(tv);

}
然后运行,等一段时间,会出现android虚拟机,并运行该程序。

B. android开发环境配置怎么做

在Windows系统中进行Android开发环境配置时,首先需要安装JDK并配置环境变量。解压Eclipse后即可直接使用。Android SDK需要解压后运行更新,过程较为缓慢。至于ADT,可以下载安装包或通过网络安装,在Eclipse的help菜单中选择install new software。而在Linux系统中,同样需要安装JDK,并通过修改/etc目录下的profile文件来配置环境变量。使用Eclipse rcp版则更为合适,因为它包含更多的插件,适合于开发需求较多的场景。解压后同样可以使用。Android SDK的安装步骤与Windows类似,同样需要解压后运行更新。安装ADT的方式与Windows相同,可以在Eclipse的帮助菜单中找到install new software的选项。

在Windows系统中,开发Android应用时,首先确保JDK已经安装,并且已经配置了环境变量。接下来,可以下载并解压Eclipse,开始Android开发之旅。对于Android SDK,解压后运行更新操作,但可能会比较耗时。另外,ADT的安装可以通过下载安装包或利用网络安装,具体步骤是打开Eclipse的帮助菜单,然后选择install new software。而在Linux环境下,同样需要安装JDK,并进行环境变量的配置。对于Eclipse,推荐使用rcp版本,因为它包含更多的插件,可以满足开发需求。安装Android SDK同样需要解压后运行更新。至于ADT的安装,依旧可以通过下载安装包或网络安装的方式,选择Eclipse的帮助菜单中的install new software即可。

在Windows系统中配置Android开发环境时,首先要安装JDK并配置环境变量。接着,可以下载Eclipse并解压使用。Android SDK的安装需要解压后运行更新,这个过程可能会比较缓慢。至于ADT的安装,可以选择下载安装包或通过网络安装,在Eclipse的帮助菜单中选择install new software。而在Linux系统中,也需要安装JDK,并在/etc目录下的profile文件中配置环境变量。推荐使用Eclipse rcp版本,因为它包含更多的插件。安装Android SDK同样需要解压后运行更新。安装ADT的方式与Windows相同,可以在Eclipse的帮助菜单中选择install new software。

在Windows系统中配置Android开发环境时,首先要安装JDK并配置环境变量。接着,可以下载Eclipse并解压使用。安装Android SDK需要解压后运行更新,这个过程可能会比较缓慢。安装ADT可以选择下载安装包或通过网络安装,具体步骤是打开Eclipse的帮助菜单,然后选择install new software。而在Linux系统中,也需要安装JDK,并在/etc目录下的profile文件中配置环境变量。推荐使用Eclipse rcp版本,因为它包含更多的插件。安装Android SDK同样需要解压后运行更新。安装ADT的方式与Windows相同,可以在Eclipse的帮助菜单中选择install new software。

在Windows系统中配置Android开发环境时,首先需要安装JDK并配置环境变量。接着,可以下载Eclipse并解压使用。Android SDK的安装需要解压后运行更新,这个过程可能会比较缓慢。安装ADT可以选择下载安装包或通过网络安装,具体步骤是打开Eclipse的帮助菜单,然后选择install new software。而在Linux系统中,同样需要安装JDK,并在/etc目录下的profile文件中配置环境变量。推荐使用Eclipse rcp版本,因为它包含更多的插件。安装Android SDK同样需要解压后运行更新。安装ADT的方式与Windows相同,可以在Eclipse的帮助菜单中选择install new software。配置环境的过程虽然繁琐,但是一旦完成,开发Android应用将变得轻松许多。

在Windows系统中配置Android开发环境时,首先需要安装JDK并配置环境变量。接着,可以下载Eclipse并解压使用。安装Android SDK需要解压后运行更新,这个过程可能会比较缓慢。安装ADT可以选择下载安装包或通过网络安装,具体步骤是打开Eclipse的帮助菜单,然后选择install new software。而在Linux系统中,同样需要安装JDK,并在/etc目录下的profile文件中配置环境变量。推荐使用Eclipse rcp版本,因为它包含更多的插件。安装Android SDK同样需要解压后运行更新。安装ADT的方式与Windows相同,可以在Eclipse的帮助菜单中选择install new software。配置环境的过程虽然繁琐,但是一旦完成,开发Android应用将变得轻松许多。无论是Windows还是Linux系统,配置Android开发环境的过程都大同小异,关键是需要耐心和细心,确保每个步骤都准确无误。

C. 如何搭建 android 开发环境

一.认识android的架构
Android其本质就是在标准的Linux系统上增加了Java虚拟机Dalvik,并在Dalvik虚拟机上搭建了一个JAVA的application framework,所有的应用程序都是基于JAVA的application framework之上。
android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。
二.搭建环境
搭建开发环境
对国内的开发者来说最痛苦的是无法去访问android开发网站。为了更好的认识世界,对程序员来说,会翻墙也是的一门技术,带你去领略墙外的世界,好了,不废话了, 国内开发者访问(androiddevtools) 上面已经有了所有你要的资源,同时可以下载到我们的主角framework
但是这样的搭建只能去阅读源代码,我们无法去更进一步去实现自己的rom,我们看到锤子的系统在早期的开放rom是自己从新实现了framework的代码,现在看起来他成功了,所以我们还要去搭建android系统的源码编译环境。
搭建源码编译环境

三.开始主题
在一开始写c程序的时候都有一个运行的入口,比如
#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;
//这里的main就是应用的入口
int main(int argc, const char * argv[]){
return 0;
}
在计算机网络原理中我们用socket实现一个服务器端,不断的接听客户端的访问,而且他的代码是这样实现的:
#include <winsock2.h>
#pragma comment(lib, "WS2_32.lib")
#include <stdio.h>
void main()
{
WORD wVersionRequested;//版本号
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD(2, 2);//2.2版本的套接字
//加载套接字库,如果失败返回
err = WSAStartup(wVersionRequested, &wsaData);
if (err != 0)
{
return;
}
//判断高低字节是不是2,如果不是2.2的版本则退出
if (LOBYTE(wsaData.wVersion) != 2 ||
HIBYTE(wsaData.wVersion) != 2)
{
return;
}
//创建流式套接字,基于TCP(SOCK_STREAM)
SOCKET socSrv = socket(AF_INET, SOCK_STREAM, 0);
//Socket地址结构体的创建
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr = htonl(INADDR_ANY);//转换Unsigned long型为网络字节序格
addrSrv.sin_family = AF_INET;//指定地址簇
addrSrv.sin_port = htons(6000);
//指定端口号,除sin_family参数外,其它参数都是网络字节序,因此需要转换
//将套接字绑定到一个端口号和本地地址上
bind(socSrv, (SOCKADDR*)&addrSrv, sizeof(SOCKADDR));//必须用sizeof,strlen不行
listen(socSrv, 5);
SOCKADDR_IN addrClient;//字义用来接收客户端Socket的结构体
int len = sizeof(SOCKADDR);//初始化参数,这个参数必须进行初始化,sizeof
//循环等待接受客户端发送请求
while (1)
{
//等待客户请求到来;当请求到来后,接受连接请求,
//返回一个新的对应于此次连接的套接字(accept)。
//此时程序在此发生阻塞
SOCKET sockConn = accept(socSrv, (SOCKADDR*)&addrClient, &len);
char sendBuf[100];
sprintf(sendBuf, "Welcome %s to JoyChou",
inet_ntoa(addrClient.sin_addr));//格式化输出
//用返回的套接字和客户端进行通信
send(sockConn, sendBuf, strlen(sendBuf)+1, 0);//多发送一个字节
//接收数据
char recvBuf[100];
recv(sockConn, recvBuf, 100, 0);
printf("%s\\n", recvBuf);
closesocket(sockConn);
}
}
他采用了一个while死循环去监听客户端的请求。

先上源代码
public final class ActivityThread {
public static void main(String[] args) {
SamplingProfilerIntegration.start();
CloseGuard.setEnabled(false);
Environment.initForCurrentUser();
EventLogger.setReporter(new EventLoggingReporter());
Security.addProvider(new AndroidKeyStoreProvider());
final File configDir = Environment.getUserConfigDirectory(UserHandle.myUserId());
TrustedCertificateStore.setDefaultUserDirectory(configDir);
Process.setArgV0("<pre-initialized>");
Looper.prepareMainLooper();
//从中可以看到为app开辟了一个线程进入了looper之中
ActivityThread thread = new ActivityThread();
thread.attach(false);
if (sMainThreadHandler == null) {
sMainThreadHandler = thread.getHandler();
}
AsyncTask.init();
if (false) {
Looper.myLooper().setMessageLogging(new
LogPrinter(Log.DEBUG, "ActivityThread"));
}
Looper.loop();
throw new RuntimeException("Main thread loop unexpectedly exited");
}
}
看到源码失望了,没有一个while循环啊,其实用了他方法实现
//用一个looper的机制循环监听响应
Looper.prepareMainLooper();
Looper.loop();
进一步深入代码
public static void loop() {
final Looper me = myLooper();
if (me == null) {
throw new RuntimeException("No Looper; Looper.prepare() wasn't called on this thread.");
}
final MessageQueue queue = me.mQueue;
Binder.clearCallingIdentity();
final long ident = Binder.clearCallingIdentity();
// 在这里看到了一个循环监听消息
for (;;) {
Message msg = queue.next(); // might block
if (msg == null) {
// No message indicates that the message queue is quitting.
return;
}
Printer logging = me.mLogging;
if (logging != null) {
logging.println(">>>>> Dispatching to " + msg.target + " " +
msg.callback + ": " + msg.what);
}
msg.target.dispatchMessage(msg);
if (logging != null) {
logging.println("<<<<< Finished to " + msg.target + " " + msg.callback);
}
// Make sure that ring the course of dispatching the
// identity of the thread wasn't corrupted.
final long newIdent = Binder.clearCallingIdentity();
if (ident != newIdent) {
Log.wtf(TAG, "Thread identity changed from 0x"
+ Long.toHexString(ident) + " to 0x"
+ Long.toHexString(newIdent) + " while dispatching to "
+ msg.target.getClass().getName() + " "
+ msg.callback + " what=" + msg.what);
}
msg.recycleUnchecked();
}
}

热点内容
写shell脚本 发布:2025-05-11 04:37:41 浏览:933
电脑服务器打开有什么用 发布:2025-05-11 04:36:49 浏览:98
sqlserver2008查询时间 发布:2025-05-11 04:15:28 浏览:386
安卓孤胆车神被封号怎么解封 发布:2025-05-11 04:05:22 浏览:940
高压洗车泡沫怎么配置 发布:2025-05-11 04:00:47 浏览:547
腾讯轻量服务器怎么使用 发布:2025-05-11 03:52:46 浏览:174
4位密码组合有多少种至少有一个0 发布:2025-05-11 03:44:03 浏览:338
八卦手指算法 发布:2025-05-11 03:23:32 浏览:281
编译成exe是什么意思 发布:2025-05-11 03:23:28 浏览:470
javaweb技术内幕 发布:2025-05-11 03:20:14 浏览:803