使用Android Studio 开发APP入门经验
Android studio作为现在一个主流的安卓开发工具,这里我将介绍如何在Android studio中创建一个APP项目以及编写一个简单的App,并在以后经验中介绍其他有关Android studio的操作和编程方法。
一、创建一个APP项目:
1、打开软件,在菜单中选择file-》new project打开创建向导。
2、配置项目,确定各个名称和存放项目存放路径;
Application name:项目名称
Company Domain:公司域名
Package name:app打包名称
project location:存放路径
3、接下来设定兼容的安卓的最小版本,这依情况而定。
4、如果不确定各个版本的区别,可以点击“help me choose”,在打开的窗口中介绍了各个安卓版本的功能。
5、确定后最小兼容版本后,选择项目的活动类型,这里有很多现成的模板可以使用,对于初学者选择默认的Blank Activity即可。
6、接下来设定活动名称,界面布局的名称,以及界面标题,最后点击finish完成项目的创建。
7、创建完后,在项目名-》app-》src-》main-》res-》layout下双击xml文件就是打开活动界面设计窗口了。
对于创建APP项目的过程本人就不多做介绍了,小伙伴们按照上面步骤操作一遍基本上都会了。我想准备接触android studio(下面简称AS)的小伙伴之前应该都是用的Eclipse,AS跟Eclipse有两点区别需要了解清楚:
第一:二者的工程结构不一样,在Eclipse中一个Project就代表一个项目工程,而在Android Studio一个Project代表一个工作空间,相当于Eclipse中的workspace,而在Android Studio中一个Module就相当于Eclipse中的一个Project,这个概念需要弄明白,不要混了或觉得糊涂了。
第二:新建或导入工程后,要删除工程,Android Studio只能去workspace文件夹去删除,而不能在开发环境中删除。
二、代码编写:
作为一个菜鸟,在编写代码前最大的问题就是不清楚目录结构以及操作流程,新手在编写代码之前必须得弄清楚下面的目录结构:
新建工程项目后AS的Product目录结构如下所示:
.idea://AS生成的工程配置文件,类似Eclipse的project.properties。
app://AS创建工程中的一个Module。
gradle://构建工具系统的jar和wrapper等,jar告诉了AS如何与系统安装的gradle构建联系。
External Libraries://不是一个文件夹,只是依赖lib文件,如SDK等。
新建工程项目后AS的Module目录结构如下所示:
build://构建目录,相当于Eclipse中默认Java工程的bin目录,鼠标放在上面右键Show in Exploer即可打开文件夹,
编译生成的apk也在这个目录的outs子目录,不过在AS的工程里是默认不显示out目录的,就算有编译结果也
不显示,右键打开通过文件夹直接可以看。
libs://依赖包,包含jar包和jni等包。
src://源码,相当于eclipse的工程。
main://主文件夹
java://Java代码,包含工程和新建是默认产生的Test工程源码。
res://资源文件,类似Eclipse。
layout://App布局及界面元素配置,雷同Eclipse。
menu://App菜单配置,雷同Eclipse。
values://雷同Eclipse。
dimens.xml://定义css的配置文件。
strings.xml://定义字符串的配置文件。
styles.xml://定义style的配置文件。
......://arrays等其他文件。
......://assets等目录
AndroidManifest.xml://App基本信息(Android管理文件)
ic_launcher-web.png://App图标
build.gradle://Module的Gradle构建脚本
其中需要重点了解以下几个文件:
res/layout/main.xml: App主窗体布局文件,你的应用长什么样都在这边定义,有Design和Text两种模式
res/values/strings.xml :这个文件用来存放程序调用的各种字符串
src/com/example/helloandroid/MyActivity.java :这个就是我们的主程序类,等下要实现的功能都在这个文件里添加
做好准备工作后,终于可以开始写我们的hello android了。
1、首先为应用添加一个id为hellotextView的textview和一个id为hellobutton的button,(在main.xml文件中编写)
代码如下:
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
android:layout_height="180dp"
android:text="@string/default_message"
android:id="@+id/hellotextView" android:textColor="#00ff00" android:gravity="center"/>
2、代码和控件用到的字符串定义如下:
代码如下:
3、主程序中定义button点击后改变textview显示的文本,并且弹出Toast提示信息。
代码如下:
package com.example.helloandroid;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class MyActivity extends Activity {
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//得到按钮实例
Button hellobtn = (Button)findViewById(R.id.hellobutton);
//设置监听按钮点击事件
hellobtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//得到textview实例
TextView hellotv = (TextView)findViewById(R.id.hellotextView);
//弹出Toast提示按钮被点击了
Toast.makeText(MyActivity.this,"Clicked",Toast.LENGTH_SHORT).show();
//读取strings.xml定义的interact_message信息并写到textview上
hellotv.setText(R.string.interact_message);
}
});
}
}
代码写好后,电脑通过USB数据线连接手机,手机系统设置里的开发人员选项里打开USB调试,在IDE中直接点Run就可以在手机上看到运行的效果了。
最后给大家简单介绍android五种布局模式
Android布局是应用界面开发的重要一环,在Android中,共有五种布局方式,分别是:LinearLayout (线性布局),RelativeLayout(相对布局),FrameLayout(帧布局),AbsoluteLayout(绝对布局),TableLayout(表格布局)。目前本人接触最多的是LinearLayout (线性布局)和RelativeLayout(相对布局)在这里先对这三种布局模式进行介绍,其它两种等本菜鸟接触过并弄明白后,再在具体的实例中给大家说说。
1、LinearLayout(线性布局)
线性布局是Android开发中最常见的一种布局方式,它是按照垂直或者水平方向来布局,通过“android:orientation”属性可以设置线性布局的方向。属性值有垂直(vertical)和水平(horizontal)两种。当垂直布局时,每一行就只有一个元素,多个元素依次垂直往下;水平布局时,只有一行,每一个元素依次向右排列。
常用的属性:
android:orientation:可以设置布局的方向
android:gravity:用来控制组件的对齐方式
layout_weight:控制各个组件在布局中的相对大小
2、RelativeLayout(相对布局)
相对布局是按照组件之间的相对位置来布局,比如在某个组件的左边,右边,上面和下面等。
纯线性布局的缺点是很不方便修改控件的显示位置,所以开发中经常会以线性布局与相对布局嵌套的形式设置布局。相对布局是android布局中最为强大的,首先它可以设置的属性是最多了,其次它可以做的事情也是最多的。android手机屏幕的分辨率五花八门所以为了考虑屏幕自适应的情况所以在开发中建议大家都去使用相对布局 它的坐标取值范围都是相对的所以使用它来做自适应屏幕是正确的