Android Studio初步使用及HelloWorld详解

好文章必须转。传送门:https://www.zybuluo.com/stepbystep/note/63311

Android Studio初步使用及HelloWorld详解

Android

    • Android Studio初步使用及HelloWorld详解
      • Android Studio初步配置
        • 设置环境变量
        • 设置主题和字体
      • Android Studio常用功能说明
        • 打开工程
        • Android Studio工程视图
        • Android Studio的工程结构
      • HelloWorld详解
      • 程序运行说明

Android Studio初步配置

设置环境变量

(说明) 实验楼环境中已经配置好了桌面启动图标 
每次切换到android studio的安装目录,启动程序会很麻烦,linux下可以很简单的设置环境变量

 
  
  1. // 修改用户环境变量
  2. gedit ~/.bashrc

打开的文件中最后一行下添加如下内容/opt/android-stuido为android studio的安装目录 
export PATH=/opt/android-stuido/bin:$PATH 
启用环境变量, 在终端输入

 
  
  1. source ~/.bashrc

重新启动终端,输入下面命令,就可以启动android studio了

 
  
  1. //linux下命令后面添加'&'符号表示程序独立启动,即便ctrl+c也不会结束程序
  2. studio.sh &

设置主题和字体

设置主题 
有的人喜欢IDE是黑色的,看起来比较Geek,在Android中可以简单的设置这样的主题 
进入Android studio后,点击File->Settings 

进入设置界面,输入Appearance 

会提示重新启动Android Studio,重新进入之后,就成功了 

设置字体 
为了方便查看,我们在实验楼的环境下还是采用白天的主题 
同样进入File->Settings选项之后,输入fonts,就可以设置字体了 

点击Save As之后,新建一个字体方案 

接下来设置字体等样式,点击Ok后就设置成功了 

Android Studio常用功能说明

打开工程

点击File->open 

在弹出的对话框中选择我们要打开的项目,一般是Android Studio的工程的话,前面会有一个Android Studio的logo 

关于打开Eclipse下面的工程,可以参考如下网址 
http://www.cnblogs.com/bluestorm/p/3757402.html

Android Studio工程视图

android studio下面设置了三中工程视图(Project、 Packages、Android),如下:

默认打开后为Android视图, 而Packages视图如下 

Project视图是最全面的视图,如下 

Android Studio的工程结构

在Project视图下,我们可以看到完整的目录结构 
.idea主要包含了一些项目的元数据的存储

- **app为项目的主要目录**
    图示说明

- libs为项目需要添加的*.jar包或*.so包等外接库
- src为项目的源代码其中Android Test为测试包,**main为主要的项目目录**
    - main目录下的java目录,存储所有的项目源文件
    - res为资源目录,存储所有的项目资源
        - 其中drawable目录存储一些xml文件
        - drawable-*dpi表示存储分辨率的图片,用于适配不同的屏幕
            - mdpi:320x480
            - hdpi:480x800、480x854
            - xhdpi:至少960*720
            -xxhdpi:1280×720
        - layout目录存储布局文件。
        - values目录存储app引用的一些值
            - dimens.xml 存储了一些公用的dp值
            - strings.xml 存储了引用的String值
            - styles.xml 存储了app需要用到的一些样式
        - values-w820dp为专用的设备设置引用
- AndroidManifest.xml为APP的配置信息。

- 此目录下的build.gradle为项目的gradle配置文件。
  • build为项目的生成目录

  • gradle为项目的Gradle配置信息

    Android Studio 采用Gradle来管理项目,是以 Groovy 语言为基础,面向Java应用为主。基于DSL(领域特定语言)语法的自动化构建工具。

  • bulid.gradle文件主要为项目的Gradle的版本

     
        
    1. // Top-level build file where you can add configuration options common to all sub-projects/modules.
    2. buildscript {
    3. repositories {
    4. jcenter()
    5. }
    6. dependencies {
    7. classpath
    8. // 此处就是设置Gradle版本的地方
    9. 'com.android.tools.build:gradle:1.0.0'
    10. // NOTE: Do not place your application dependencies here; they belong
    11. // in the individual module build.gradle files
    12. }
    13. }
    14. allprojects {
    15. repositories {
    16. jcenter()
    17. }
    18. }
  • External Libraries为外部库 
    第一行表示当前Android 的选择的编译Android API是哪个 
    第二行<1.7> 表示使用的JDK 为1.7的版本 
    第三行support annotations-21.0.3表示使用了第三方的包


HelloWorld详解

切换到Project视图

**说明,在android studio中,所有的引用和类型等都可以通过按住Ctrl键,点击鼠标左键定位到被引用的位置。如下图,** 
 
此后就会跳转到activity_main.xml文件。

在app目录下,build.gradle文件如下 
文件路径: project视图下,app/build.gradle

 
  
  1. apply plugin: 'com.android.application'
  2. android {
  3. // 编译器选择的版本
  4. compileSdkVersion 14
  5. buildToolsVersion "21.1.1"
  6. // 默认配置
  7. defaultConfig {
  8. // 应用程序包名
  9. applicationId "com.example.shiyanlou.myapplication"
  10. // 最小的版本,即手机需要13的sdk才能运行
  11. minSdkVersion 15
  12. // 目标sdk
  13. targetSdkVersion 21
  14. // app 版本号
  15. versionCode 1
  16. // app 版本名
  17. versionName "1.0"
  18. }
  19. // build 配置,暂不用管
  20. buildTypes {
  21. release {
  22. minifyEnabled false
  23. proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
  24. }
  25. }
  26. }
  27. // 外接的包需要在下面添加
  28. dependencies {
  29. compile fileTree(dir: 'libs', include: ['*.jar'])
  30. compile 'com.android.support:appcompat-v7:21.0.3'
  31. }

在src/main/java/com.example.shiyanlou.myaplication目录下,MainActivity.java 
主界面注释解释

 
  
  1. package com.example.shiyanlou.myapplication;
  2. import android.support.v7.app.ActionBarActivity;
  3. import android.os.Bundle;
  4. import android.view.Menu;
  5. import android.view.MenuItem;
  6. /**
  7. * 自定义Activity类,要求必须继承android.app.Activity;
  8. * 此处因为新建的时候选择了BlankActivity,默认继承ActionBarActivity
  9. * 由于Activity是android四大组件(Activity(活动),Service(服务),
  10. * BroadcastReceiver(广播接收者),Content Provider(内容提供者))之一, 因此必须在功能清单文件(AndroidManifest.xml)中进行注册,注册方式为:
  11. *
  12. android:name="com.example.shiyanlou.myapplication.MainActivity"
  13. android:label="@string/app_name" >
  14. */
  15. public class MainActivity extends ActionBarActivity {
  16. /**
  17. * onCreate在Activity被创建时被调用,而且只调用一次,主要用来完成初始化工作
  18. * 需要注意的是,此时的super.onCreate(savedInstanceState);不能省略,它用于保存恢复现场
  19. */
  20. *
  21. @Override
  22. protected void onCreate(Bundle savedInstanceState) {
  23. super.onCreate(savedInstanceState);
  24. /*
  25. * 将Activity到用户界面设定为R.layout.activity_main,即
  26. * res/layout/activity_main.xml
  27. * 可在build/generated/source/r/debug/com../R.java下查看layout静态内部类中的activity_main的静态成员
  28. * 对应的是res/layout/activity_main.xml*/
  29. setContentView(R.layout.activity_main);
  30. }
  31. /**
  32. * 在用户单击手机上的菜单键时触发,用来弹出菜单
  33. */
  34. @Override
  35. public boolean onCreateOptionsMenu(Menu menu) {
  36. /*
  37. * MenuInflater getMenuInflater():得到菜单填充气对象
  38. * MenuInflater.inflate();执行填充操作
  39. * R.menu.main:将菜单界面定位到res/menu/main.xml
  40. *
  41. * R.menu.main:访问R.java中中的静态内部类menu中的静态成员main,
  42. * 对应的资源文件在res/menu/main.xml
  43. */
  44. getMenuInflater().inflate(R.menu.menu_main, menu);
  45. return true;
  46. }
  47. @Override
  48. public boolean onOptionsItemSelected(MenuItem item) {
  49. int id = item.getItemId();
  50. //noinspection SimplifiableIfStatement
  51. if (id == R.id.action_settings) {
  52. return true;
  53. }
  54. return super.onOptionsItemSelected(item);
  55. }
  56. }

布局文件解释 
HelloWorld 布局界面如图 
文件路径: project视图下,app/src/main/res/layout/activity_main.xml

代码如下:

 
  
  1. xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
  3. android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
  4. android:paddingRight="@dimen/activity_horizontal_margin"
  5. android:paddingTop="@dimen/activity_vertical_margin"
  6. android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
  7. android:text="@string/hello_world" android:layout_width="wrap_content"
  8. android:layout_height="wrap_content" />

main.xml菜单文件详解 
文件路径: project视图下,app/src/main/res/menu/menu_main.xml

 
  
  1. xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:app="http://schemas.android.com/apk/res-auto"
  3. xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity">
  4. android:id="@+id/action_settings" android:title="@string/action_settings"
  5. android:orderInCategory="100" app:showAsAction="never" />

AndroidManifest.xml详解 
文件路径: project视图下,app/src/main/AndroidManifest.xml 
AndroidManifest为APP的配置信息如下,已经加入了注释说明

 
  
  1. xml version="1.0" encoding="utf-8"?>
  2. xmlns:android="http://schemas.android.com/apk/res/android"
  3. package="com.example.shiyanlou.myapplication" > >
  4. android:allowBackup="true"
  5. android:icon="@drawable/ic_launcher"
  6. android:label="@string/app_name"
  7. android:theme="@style/AppTheme" >
  8. android:name=".MainActivity"
  9. android:label="@string/app_name" >
  10. android:name="android.intent.action.MAIN" />
  11. android:name="android.intent.category.LAUNCHER" />

程序运行说明

为什么程序自动启动MainActivity 
在我们的HelloWorld项目的功能清单文件中以前配过如下内容:

 
  
  1. android:name=".MainActivity"
  2. android:label="@string/app_name" >
  3. android:name="android.intent.action.MAIN" />
  4. android:name="android.intent.category.LAUNCHER" />

因此android系统发现com.example.shiyanlou.myapplication.MainActivity被匹配成功,通过意图过滤器intent-filter中的配置进行匹配的.这样就会找到activity标签对应的android:name属性的值:com.example.shiyanlou.myapplicationMainActivity;之后将会实例化这个MainActivity类,实例化之后会自动调用它的onCreate方法,完成activity的初始化工作.

在androidstudio中查看运行结果是通过Android下的Logcat查看的,如下图 
可选择log级别 

可过滤log 

设置过滤添加(可自行添加Log标签) 




你可能感兴趣的:(Android)