• Android学习——day2


    一、Android项目结构

    常用的两种项目结构:Android模式和Project模式

    1.Android模式

     

    (1)manifests:显示Android全局描述文件

    AndroidManifest.xml文件:

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     3     package="com.example.a86147.helloworld">
     4 
     5     <application
     6         android:allowBackup="true"
     7         android:icon="@mipmap/ic_launcher"
     8         android:label="@string/app_name"
     9         android:supportsRtl="true"
    10         android:theme="@style/AppTheme">
    11         <activity android:name=".HelloWorldActivity">
    12             <intent-filter>
    13                 <action android:name="android.intent.action.MAIN" />
    14 
    15                 <category android:name="android.intent.category.LAUNCHER" />
    16             </intent-filter>
    17         </activity>
    18     </application>
    19 
    20 </manifest>

    <application </application>——配置整个应用的属性

    <activity></activity>——配置应用中的activity

    <intent-filter>

           <action android:name="android.intent.action.MAIN" />

           <category android:name="android.intent.category.LAUNCHER" />

    </intent-filter> ——将当前activity设为应用入口

    (2)java:显示Android应用中的包以及java源文件

    应用的包

     1 package com.example.a86147.helloworld;
     2 
     3 import android.support.v7.app.AppCompatActivity;
     4 import android.os.Bundle;
     5 
     6 public class HelloWorldActivity extends AppCompatActivity {
     7 
     8     @Override
     9     protected void onCreate(Bundle savedInstanceState) {
    10         super.onCreate(savedInstanceState);
    11         setContentView(R.layout.hello_world_layout);
    12     }
    13 }

    注意:

    • Android中一个activity就是一个java类

    • R文件是自动生成的,并且不能修改

    • R文件生成失败会报错

          解决方法:Android Studio菜单项中点击Build—Clean Project即可解决

     进行单元测试

    (3)res:显示资源文件,例如布局文件、图片资源文件

     drawable目录:存放位图文件(PNG、JPEG或者GIF)、9Patch图片、Shape Drawable对象等XML资源文件

     layout目录:存储布局文件

     mipmap目录:存放应用的启动图标,例如:mipmap-mdpi、mipmap-hdpi、mipmap-xhdpi、mipmap-xxhdpi、mipmap-xxxhdpi

     values目录:保存字符串、样式、尺寸等资源

     Gradle Scripts:与源码无关

     注意:

    • 布局文件——控制窗口显示哪些内容

    • 9-Patch图片和Shape资源文件只能放在drawable目录中

    • 需要适应屏幕分辨率的图片一般放在mipmap目录中,可以提高显示性能,占用内存更少


    2.Project模式

    除了app目录之外,大多数文件和目录都是自动生成的,并不需要修改。

    app目录:

    (1)build:包含一些编译时自动生成的文件。

    (2)libs:需要将第三方jar包放在此目录下。这些jar包会自动添加到构建路径里。

    (3)androidTest:编写Android Test测试用例。

    (4)java:放置java代码

    (5)res:此目录存放使用到的所有图片、布局、字符串等资源。其中图片放在drawable目录下,布局放在layout目录下,字符串放在values目录下。

    (6)AndroidManifest.xml:是整个Android项目的配置文件,在程序中定义的所以四大组件都需要在这个文件里注册,另外还可以在这个文件中给应用程序添加权限声明。

    (7)test:编写Unit Test测试用例的,是对项目进行自动化测试的另一种方式。

    (8).gitignore:这个文件用于将app模块内的指定的目录或文件排除在版本控制之外,作用和外层的.gitignore文件类似。

    (9)app.iml:IntelliJ IDEA项目自动生成的文件。

    (10)build.gradle:是app模块的gradle构建脚本,这个文件中会指定很多项目构建相关的配

    (11)proguard-rules.pro:这个文件用于指定项目代码的混淆规则,当代码开发完成后打成安装包文件,如果不希望代码被别人破解,通常会将代码混淆,从而让破解者难以阅读。


    二、项目分析

    1.在AndroidManifest.xml文件中的代码对HelloWorldActivity这个活动进行注册。

    1 <activity android:name=".HelloWorldActivity">
    2     <intent-filter>
    3         <action android:name="android.intent.action.MAIN" />
    4         <category android:name="android.intent.category.LAUNCHER" />
    5     </intent-filter>
    6 </activity>

    表示HelloWorldActivity是这个项目的主活动。也就是说,手机上点击应用图标,首先启动这个活动。

    2.HelloWorldActivity:

    1 public class HelloWorldActivity extends AppCompatActivity {
    2 
    3     @Override
    4     protected void onCreate(Bundle savedInstanceState) {
    5         super.onCreate(savedInstanceState);
    6         setContentView(R.layout.hello_world_layout);
    7     }
    8 }
    • 项目中的所有活动必须继承Activity或者它的子类才能拥有活动的特性(AppCompatActivity是Activity的子类)。

    • onCreate()方法:一个活动被创建时必定要执行的方法。

    • Android程序设计提倡逻辑与视图分离,一般在布局文件中编写界面,然后在活动中引入进来。例如调用setContentView()方法,给当前的活动引入了一个hello_world_layout布局。

    3.res/layout下的布局文件:

     1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     2     xmlns:tools="http://schemas.android.com/tools"
     3     android:id="@+id/hello_world_layout"
     4     android:layout_width="match_parent"
     5     android:layout_height="match_parent"
     6     android:paddingBottom="@dimen/activity_vertical_margin"
     7     android:paddingLeft="@dimen/activity_horizontal_margin"
     8     android:paddingRight="@dimen/activity_horizontal_margin"
     9     android:paddingTop="@dimen/activity_vertical_margin"
    10     tools:context="com.example.a86147.helloworld.HelloWorldActivity">
    11 
    12     <TextView
    13         android:layout_width="wrap_content"
    14         android:layout_height="wrap_content"
    15         android:text="Hello World!" />
    16 </RelativeLayout>

    TextView是系统提供的一个控件,用于在布局中显示文字。可以看到Hello World!字样。

  • 相关阅读:
    聚集索引和非聚集索引的区别
    转 怎样保存 Checkbox 值
    (转载)多线程:C#线程同步lock,Monitor,Mutex,同步事件和等待句柄(中)
    a=10,b=15,在不用第三方变量的前提下,把a,b的值互换
    (转载)C#多线程编程之:同步事件和等待句柄
    (转载)多线程:C#线程同步lock,Monitor,Mutex,同步事件和等待句柄(上)
    Hello World
    (转)Windows Server 2003中的w3wp.exe进程大量占用cpu资源的各种问题解决方法
    (转,大家共勉) 30岁前男人需要完成的事
    max与top的效率
  • 原文地址:https://www.cnblogs.com/znjy/p/14264982.html
Copyright © 2020-2023  润新知