《第一行代码——Android》郭霖著
Android Studio入门到精通

Android Studio与Eclipse的一些不同

Android Studio是基于IDEA的,IDEA 全称IntelliJ IDEA,是java语言开发的集成环境。IDEA与Eclipse有很大的区别,它们主要的不同在这篇文章中有详细的说明,在此就不赘述了。所以AS新建的时候有new application和new module开发。IDEA没有工作空间这样的说法。具体来说有以下三点:

  1. android studio是单工程的开发模式
  2. android studio中的application相当于eclipse里的workspace概念
  3. android studio中的module相当于eclipse里的project概念

Android Studio目录结构

新建工程项目后切换到“project”模式下的目录结构如下图所示:

* .idea:AS生成的工程配置文件,类似Eclipse的project.properties。
* app:AS创建工程中的一个Module。
* gradle:构建工具系统的jar和wrapper等,jar告诉了AS如何与系统安装的gradle构建联系。
* External Libraries:不是一个文件夹,只是依赖lib文件,如SDK等。

打开“app”折叠项的目录结构如下图所示:

* build:构建目录,相当于Eclipse中默认Java工程的bin目录,鼠标放在上面右键Show in Exploer即可打开文件夹,编译生成的apk也在这个目录的outs子目录,不过在AS的工程里是默认不显示out目录的,就算有编译结果也不显示,右键打开通过文件夹直接可以看。
* libs:依赖包,包含jar包和jni等包。
* src:包括java代码和资源文件。在src目录下有一个main的分组,同时划分出java和res两个文件夹,java文件夹则相当于Eclipse下的src文件夹,res目录结构则一样。同时在main中还有一个AndroidManifest.xml文件,它记录着App基本信息(Android管理文件)。在src下的 build.gradle则是Module的Gradle构建脚本。

Hello World程序分析

首先打开AndroidManifest.xml文件,从中可以找到如下代码:

<activity android:name=".MainActivity">     <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />      intent-filter>activity>

这段代码表示对MainActivity这个活动进行注册,没有在AndroidManifest.xml里注册的活动是不能使用的。其中intent-filter里的两行代码非常重要,表示MainActivity是这个项目的主活动,在手机上点击应用图标,首先启动的就是这个活动。你在启动时看到的界面,其实就是MainActivity。

然后,打开MainActivity.java。你可以看到MainActivity是继承自Activity的。。Activity是Android系统提供的一个活动基类,我们项目中所有的活动都必须要继承它才能拥有活动的特性。我们来看一下onCreate方法。

protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);}

onCreate()方法是一个活动被创建时必定要执行的方法。方法中的第一行代码很容易理解,就是执行父类中的onCreate()方法。第二行调用了setContentView()方法,就是这个方法给当前的活动引入了一个activity_main布局。R.layout.activity_main是一种引用资源的格式,此处引用了layout中的activity_main布局。(这是在代码中引用资源的格式,在xml中可以通过@xxx/xxxxx的方式来引用。)让我们打开layout中的activity_main.xml看看究竟写了什么吧。

打开activity_main.xml后在左下角选择Text。(当然,Design视图可以让我们可视化地看到layout界面。)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context="com.chamlhy.hello.helloworld.MainActivity">    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="Hello World!" />RelativeLayout>

看到代码中有有一个TextView,这是Android系统提供的一个控件,用于在布局中显示文字的。其中text设置为“Hello World!”,这就是我们应用界面上显示的文字了。

更多相关文章

  1. 【源代码】基于Android和蓝牙的单片机温度採集系统
  2. 【源码】实现Android闹钟功能使用HTML+JS,并附带Alarm代码分享
  3. Android高通平台下编译时能生成(拷贝)预编译的so到system的lib目
  4. Android(安卓)PinyinIME Debug 调试
  5. Android使用getIdentifier()方法根据资源名来获取资源id
  6. 让你的代码减少三倍!使用kotlin开发Android(五) 监听器
  7. 最完整Android(安卓)Studio插件整理 (转)
  8. 在 Android(安卓)studio 中 配置Gradle 根据不同参数打包,并在代
  9. 二、Android(安卓)NDK编程预备之Java jni入门Hello World

随机推荐

  1. Android(安卓)onTouchEvent, onClick及on
  2. Android中的资源与国际化!
  3. Android(安卓)VCard通讯录导入导出详解
  4. [置顶] Android之高仿手机QQ聊天
  5. 网络界面Android(安卓)网络连接--Wifi/3G
  6. Android中Intent的显示和隐式使用
  7. Android之WebView优化之路
  8. Android自定义控件一简介
  9. 《第一行代码》学习笔记一
  10. android软键盘的用法总结