导航:首页 > 操作系统 > idea开发android教程

idea开发android教程

发布时间:2023-05-19 23:36:07

A. intellij idea怎么创建一个android app

IntelliJ IDEA社区版作为一个轻量级的java开发IDE,是一个开箱即用的Android开发工具。

注意:在本次的教程中我们将以Android平台2.2为例进行IntelliJ IDEA的使用说明,Android 2.2虽然是一个很老的Android SDK版本,但是这样可以保证你所开发的应用程序可以在更多的设备上进行测试,用以确定程序的硬件设备兼容性。

1 启动Create New Project向导

在IntelliJ IDEA的主页面上,启动Create New Project向导。

下一步需要用户选择想创建项目的类型:选择需要创建的Android模块类型。每一个选择对应一个不同的项目模板。

2 选择项目模板

从下图的对话框中选择项目模板,然后进入创建项目的基本信息设置。

最常见的选择是Application Mole。这个选项将让IntelliJ IDEA按照一些预定义的结构安排项目。在这种情况下用户可以照原来的样子编译项目,之后得到一个几乎是空的,但功能齐全的Android应用程序。如果选择Empty Mole选项,IntelliJ IDEA将为指定的Android平台提供一个简单的空项目,不会生成额外的内容。Library Mole则是用于构建共享代码类库。

在这里我们选择Application Mole,输入项目名称和目标文件夹。更重要的是,用户应该选择目标Android平台。这个时候下拉列表已经通过SDK Manager预装好用户所选定的平台。点击Next进入下一步。

如果Java SDK或Android SDK没有安装或者配置错误,用户可能会遇到一些麻烦。这个时候可以单击File → Project Structure解决这些可能遇到的问题。

3 编辑项目属性

下面的对话框包含了应用程序名称和程序包名,并允许用户设置目标设备和启动activity。

程序包的名称应该是com.xxx.yyy的格式,xxx通常代表公司名称,yyy是应用程序名称。当然用户可以在这里使用任何名称,但这个建议会极大降低与其他应用程序名称冲突的风险。

IntelliJ IDEA提供创建一个名为MyActivity的示例activity。在安卓开发中,activity是一个纯Java类,也是任何Android应用程序不可或缺的组成部分。

4 设置目标设备

对话框也可以让用户定义IntelliJ IDEA如何运行示例应用程序。有三种基本运行配置:

Show device chooser dialog表明在每次从启动应用程序时,IDEIntelliJ IDEA将要求用户选择通过USB连接模拟器或设备。

USB device表明,IntelliJ IDEA将通过一个USB端口自动尝试将应用程序部署到任何兼容的设备。通常在用户想测试在一个物理设备的程序兼容性时使用。

Emulator表明IntelliJ IDEA将该应用程序部署到配置的仿真器。请注意,您还需要设置一个Android虚拟设备(AVD)在模拟器运行应用程序。这一步骤可在几分钟之内完成。

一切准备就绪之后,单击Finish创建项目。

B. 如何搭建 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();
}
}

C. 如何用android studio

一、下载安装

到http://developer.android.com/sdk/installing/studio.html下载安装包(dmg文件),打开并将Android
Studio拖动到Applications中去,拷贝完毕即可,可以到应用程序下将图标拖动到Dock上。

二、新建工程

安装完成后,选择默认选项点击OK即可:

进入Android Studio,开始界面和Xcode有点类似,点击New
project新建一个工程,新建过程和在Eclipse上差不多,这里就不赘述了。下图是开始界面:

新建工程完毕后就进入了Android Studio主界面。第一次进去可能如下图所示什么也没有,点击箭头所示按钮展开目录结构,

展开后可以看到Android Studio的目录结构,和Eclipse的工程还是有一点区别的:

区别:

1.Android
Studio的目录结构本来就代表一个workspace,一个workspace里面可以有Mole,可以将一个Mole理解成Eclipse中的一个Project;

2.目录中将java代码和资源文件(图片、布局文件等)全部归结为src,在src目录下有一个main的分组,同时划分出java和res两个Group,res和Eclipse下的结构一样,java下就是源码的包和类文件;

3.新建文件方式的不同,右键选择New或Command+N后出现新建菜单,类型有Java
Class,也就是一般的java类,File就是普通文件,Package就是建包,值得注意的就是Android
Component,它直接提供了Android中基本组件的创建。

可以选择创建Android中不同类型的组件:

三、窗口布局及主题介绍

另外,主界面底部有一个名为Android的选项卡,打开可以看到DDMS中的设备信息和Logcat输出:

顶部工具栏中可以看到和Eclipse中功能一样的一个选项,这些相信大家都比较熟悉了:

最后需要说明的是,大家看到我的主界面是暗色风格,和Google演示的是一样的风格,大家第一次使用打开的是默认风格(亮色),如果想要修改的话,进入Preferences(按Command+,)到IDE
Settings下选择Colors&font并设置Schema
name为Darcula就可以设置成暗色风格,如果需要自己定义样式,比如字体大小颜色等,可以新建一个Schema来自己定义

四、布局文件编写(实时预览)

最炫的功能要来了,实时编写并预览布局文件,此项功能着实大大提高开发效率,打开一个xml布局文件点击右侧Preview选项卡即可唤出预览界面,可以选择很多尺寸的手机进行预览:

同时,还可以同时预览多种不同型号和尺寸的设备,编写代码的同时适配多种机型,这不就是当初梦寐以求的嘛!

上面介绍了Android
Studio的基本使用,包括安装、新建工程、工程结构以及主题设置。下面介绍一些其他技巧,以及与Eclipse之前的一些对比。需要重申一下,我所有的操作与版本是基于Mac系统,在Windows上的同学基本类似,下面就分主题开始吧:

一、从Eclipse导入工程到Android Studio

根据官方的介绍,Android Studio可以兼容Eclipse的现有工程,但需要做一些操作:

首先升级ADT到最新版本,目前为版本号为22(注意和ADT相关的组件最好一并升级,避免后期可能出现的错误)

选择需要从Eclipse导出的工程,右键选择Export并选择Android下的Generate Gradle Build Files(如下图):

选择完毕后并不会导出到其他地方,而是在本地工程生成了一个build.gradle文件,在Eclipse工程中也可以看到,这个文件是Android
Studio识别的,如下图:

3.随后进入Android Studio并选择Import
Project,可以看到刚刚在Eclipse中的项目图标变成了一个Android机器人图标,说明转换成功,这时候选择工程导入即可:

至此,就完成了从Eclipse导入现有Android工程到Android Studio,现在可以开始对工程进行操作了!

二、Eclipse工程与Android Studio的区别

Eclipse工程可以导入Android Studio运行,而反过来在Android Studio建立的工程不能在Eclipse中运行;

二者的工程结构不一样,在Eclipse中一个Project就代表一个项目工程,而在Android
Studio中就和Intellij一样,一个Project代表一个工作空间,相当于Eclipse中的workspace,而在Android
Studio中一个Mole就相当于Eclipse中的一个Project,这个概念需要弄明白,不要混了或觉得糊涂了。

在编辑操作上,在Eclipse中编辑修改后必须手动command+s保存文件,而在Android
Studio中就和Intellij一样是自动保存的,这一点和第二点和Xcode也是类似的。

工程目录上的区别,在Eclipse中src部分一般是java文件,res部分是资源文件,包括布局文件和多媒体资源等。在Android
Studio中,可以看下图的目录结构:

包括java文件和资源文件全部放到了src目录下,src目录下包括一个main文件夹,再下面就是java文件夹和res文件夹,其实这里,java文件夹就相当于Eclipse中的src,res还是那个res,这里想起了本山老师的小品“src已经不是那个src了,res还是那个res”

三、真机运行以及常用快捷键

在Android
Studio中点击界面下方的Android选项卡可以看到Device信息和Logcat,连上设备后打开Android选项卡会检测真机,成功后会显示在Device中,点击顶部的绿色小箭头就可以开始运行工程了。有一点需要注意的是,运行时可以选择模拟器也可以选择真机,由于在Android
Studio中运行工程的时候有一个Device优先级选择,如果不设置的话可能会出现只运行在模拟器上的现象,我们可以自行设置一下:先点击Run菜单选择Run
Configuration,并选择你想选择的目标设备,可以是模拟器和真机,也可以在运行选由用户选择:

快捷键大家可以对照官方文档进行熟悉,如下表,也可以自己修改配置选项进行自定义:

个人觉得Android
Studio还是有一定的前景的,这里就需要Google不断进行完善和改进了,赶紧把大家从Eclipse中解救出来吧。另外,在此期间,大家其实可以尝试使用一下Intellij
IDEA,这个默认也是集成Android开发环境的。Android
Studio是基于前者改进而来,二者在使用上差不多,也是Eclipse的一个不错的替代者。下面提供一个Windows版Android Studio下载。

阅读全文

与idea开发android教程相关的资料

热点内容
考编教师用什么app 浏览:189
静态面向对象编程语言 浏览:902
炒股密码pdf 浏览:661
差分算法有哪些 浏览:563
佳明怎么配对安卓 浏览:245
用什么app校对试卷 浏览:101
基于单片机的光控路灯 浏览:33
为什么说安卓平板适配的软件少 浏览:680
三国志下载pdf 浏览:689
为什么单片机c语言 浏览:429
算法一定有一个或多个输入 浏览:252
浪潮服务器贵州销售云主机 浏览:850
amdlinux显卡安装 浏览:572
泰海科技云服务器如何卸载 浏览:125
有密码打开excel加密 浏览:823
java生成重复字符 浏览:284
串口服务器有什么用 浏览:330
linux安装red5 浏览:295
单片机中断时入口地址作用 浏览:150
程序员的工作是重复性的吗 浏览:69