欧冠

Android:日常学习笔记(2)——分析第一个Android应用程序

2019-12-18

Android:平日学习笔记(2卡塔尔(قطر‎——深入分析第叁个Android应用程序

Android项目布局

后生可畏体化目录构造剖析

  图片 1

说明
  除了应用程式目录外,其余目录都是自动生成的。APP目录的下的剧情才是我们的做事入眼。

应用软件目录布局分析

  图片 2

连串怎么运转

前后相继私下认可运维效果

  图片 3

 说明:

  程序的暗许运维作效果果就是不写风度翩翩行代码,直接配置到模拟器上的运维效果。

定义主活动

展开AndroidManifest.XML中,大家得以找到上面这段代码:

        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
                //这两句代码表示MainActivity是主活动,点击图标后首先运行此活动
            </intent-filter>
        </activity>

说明:
  这段代码表示对MainActivity活动扩充登记, style="color: #ff0000">从不在AndroidManifest.XML中登记的活动是不能够利用的。

什么样是移动

  Android系统四大组件分别是
  ☐ 活动:Activity:在那之中移动时享有Android应用程序的伪装,凡是在应用程序中看出的事物,都以投身活动中的。
  ☐ 服务:Service:你不可能看见她,可是她一贯在后台默默运营,尽管顾客退出,仍为能够运维的。
  ☐ 广播选用器:布罗兹cast Receiver:允许你的应用选用来自大街小巷的播放音信,比如电话,短信。
  ☐ 剧情提供器:Content Provider:为应用程序间共享数据踢欧洲足球亚军联赛呢了大概。

主活动深入分析

package com.example.zy.myapplication;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    protected void onCreate(Bundle savedInstanceState) {
        //活动被创建必须要调用下述的方法
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

说明:

  1.大家以前说了应用程序中兼有的能够观看的事物都以停放活动中的,所以率先应当要三回九转自活动。

  2.主活动的存在延续关系:

  图片 4

  3.super.onCreate(savedInstanceState卡塔尔(英语:State of Qatar)正是调用父类的onCreate布局函数,时用来创建活动的,savedInstanceState是保留当前Activity之处音讯。

HelloWorld来自哪儿

  我们得以见到MainActivity中独有两行代码,那么HelloWorld那行字来自哪个地方吧?
  其实在Android程序的宏图尊重逻辑和视图分类,因此是不推荐在运动中央市直机关接编写分界面包车型地铁,越发通用的措施是在布局文件中编辑分界面,然后在移动中引进进来
  大家在其次行代码:setContentView(R.layout.activity_main卡塔尔国;引进了布局文件,内容如下:

<?xml version="1.0" encoding="utf-8"?>
<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.example.zy.myapplication.MainActivity">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!" />
</RelativeLayout>

说明:

  我们看来里边有贰个TextView,那是Android的二个控件,用于在构造中体现文字的。

详解res目录

  图片 5

说明:

所以有如此多的mipmap伊始的公文夹,其实首假如为着让程序可以越来越好地包容各样设施。
张开values目录下的strings.xml文件:

<resources>
    <string name="app_name">My Application</string>
</resources>

此处定义了二个用到程序名的字符串,大家能够使用以下三种方法援引它:

• 在代码中经过: ◇ R.string. style="color: #9876aa">app_name

• 在XML文件通过: ◇ @string/app_name

 

详解build.gradle

  在AS中,大家是经过Gradle来塑造项指标。Gradle是叁个卓殊先进的门类构建筑工程具,它选择了生龙活虎种基于Groovy的园地特定语言(DSL)来声称项目设置,放任了人生观基于 XML的累赘配置。

 

最外端的build.gradle

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.1.0'
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

 

说明:

  两处repositories中都行使了jcenter(卡塔尔国, style="color: #ff0000">jcenter是叁个代码托管仓库,相当多Android开源项目都会筛选将代码托管到jcenter上,注解了那么些配置,我们就能够在类型中轻轻便松援用任何jcenter上的开源项目了
  dependencies 使用了classpath 注明了三个Cradle插件。

 

APP目录下的build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"

    defaultConfig {
        applicationId "com.example.zy.myapplication"
        minSdkVersion 15
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
    }
    buildTypes { //用于指定生成安装文件的相关配置,一般有release和deubug两项。
        release {
            minifyEnabled false  //是否对代码进行混淆
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' //代码的混淆规则
        }
    }
}

dependencies { //用于指定当前项目的所有依赖关系
    compile fileTree(dir: 'libs', include: ['*.jar'])
    //上着为本地依赖关系,将libs目录下*jar包添加到构建路径当中    
    testCompile 'junit:junit:4.12'
    //声明测试用例库的
    compile 'com.android.support:appcompat-v7:25.2.0'
    //这是一个标准的远程依赖库格式,Gradle在构建项目时会检查是否有此库的缓存,如果没有则联网下载.添加依赖库声明:compile project(':helper'),将helper依赖关系加入.
}

说明:

  第后生可畏行援用了一个插件,com.android.application'是三个应用程序模块,能够直接运营,com.android.library是大器晚成种库模块,只好作为代码库凭仗于别的应用程序模块来运营。

   接下来是贰个大的Android闭包,那一个闭包能够相称项目塑造的各类品质。

    compileSdkVersion 25 :内定使用Android6.0系统的SDK编写翻译。

    buildToolsVersion :钦命项目营造筑工程具的本子。

   接下来是三个defaultConfig闭包,能够对品种的越多细节举办陈设。

     applicationId :实施项目标包名

     minSdkVersion 15 项目最低宽容的Android系统版本

     targetSdkVersion 25 你在该秒版本上做过了尽量的测量试验,系统会为你的应用程序运转一些最新的功力和特色。

     versionCode 1 品类版本号

     versionName "1.0" 项目标本子名 style="color: #6a8759">