`
zhao103804
  • 浏览: 124590 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

一、Andriod初学 目录结构

 
阅读更多

从零基础学习Andriod 

         学习andriod时,首先就是配置环境,至于环境的配置,配置的时候出现了很多错误。都忘记记笔记了,这里就不讲解了。

          在eclipse创建一个andriod application时,系统会自动创建如下文件:

1.1、src文件夹

顾名思义(src, source code)该文件夹是放项目的源代码的。打开MainActivity.java文件会看到如下代码:

package com.example.helloworld;

 

import android.app.Activity;

import android.os.Bundle;

 

public class MainActivity extends Activity{

 

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

}

 

 

}

系统为我们生成了一个MainActivity.java文件。他导入了两个类android.app.Activity和android.os.Bundle,HelloWorld类继承自Activity且重写了onCreate方法。

 

android.app.Activity类:因为几乎所有的活动(activities)都是与用户交互的,所以Activity类关注创建窗口,你可以用方法setContentView(View)将自己的UI放到里面。然而活动通常以全屏的方式展示给用户,也可以以浮动窗口或嵌入在另外一个活动中。有两个方法是几乎所有的Activity子类都实现的:

  1. onCreate(Bundle):初始化你的活动(Activity),比如完成一些图形的绘制。最重要的是,在这个方法里你通常将用布局资源(layout resource)调用setContentView(int)方法定义你的UI,和用findViewById(int)在你的UI中检索你需要编程地交互的小部件(widgets)。setContentView指定由哪个文件指定布局(main.xml),可以将这个界面显示出来,然后我们进行相关操作,我们的操作会被包装成为一个意图,然后这个意图对应有相关的activity进行处理。
  2. onPause():处理当离开你的活动时要做的事情。最重要的是,用户做的所有改变应该在这里提交(通常ContentProvider保存数据)。

android.os.Bundle类:从字符串值映射各种可打包的 (Parcelable)类型(Bundle单词就是捆绑的意思,所有这个类很好理解和记忆)。如该类提供了公有方法——public boolean containKey(String key),如果给定的key包含在Bundle的映射中返回true,否则返回false。该类实现了Parceable和Cloneable接口,所以 它具有这两者的特性。

1.2、gen文件夹

该文件夹下面有个R.java文件,R.java是在建立项目时自动生成的,这个文件是只读模式的,不能更改。R.java文件中定义了一个类—— R,R类中包含很多静态类,且静态类的名字都与res中的一个名字对应,即R类定义该项目所有资源的索引。看我们的HelloWorld项目是不是如此, 如下图:



               图2、R.java对应res

通过R.java我们可以很快地查找我们需要的资源,另外编绎器也会检查R.java列表中的资源是否被使用到,没有被使用到的资源不会编绎进软件中,这样可以减少应用在手机占用的空间。

1.3、Android 5.0.1文件夹

该文件夹下包含android.jar文件,这是一个Java 归档文件,其中包含构建应用程序所需的所有的Android SDK 库(如Views、Controls)和APIs。通过android.jar将自己的应用程序绑定到Android SDK和Android Emulator,这允许你使用所有Android的库和包,且使你的应用程序在适当的环境中调试。例如上面的HelloWorld.java源文件中 的:

import android.app.Activity;
import android.os.Bundle;

这里两行代码就是从android.jar导入包。 

1.4、assets

包含应用系统需要使用到的诸如mp3、视频类的文件。

1.5、res文件夹

资源目录,包含你项目中的资源文件并将编译进应用程序。向此目录添加资源时,会被R.java自动记录。新建一个项目,res目录下会有四个子目录:drawabel、layout、values、menu。

  • drawabel-?dpi:包含一些你的应用程序可以用的图标文件(*.png、*.jpg)
  • layout:界面布局文件(activity_main.xml)与WEB应用中的HTML类同,没修改过的activity_main.xml文件如下(HelloWorld的就没有修改过):

<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.helloworld.MainActivity" >

 

    <TextView

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="@string/hello_world" />

 

 

</RelativeLayout>

 

  • values:软件上所需要显示的各种文字。可以存放多个*.xml文件,还可以存放不同类型的数据。比如arrays.xml、colors.xml、dimens.xml、styles.xml、strings.xml

1.6、AndroidManifest.xml

项目的总配置文件,记录应用中所使用的各种组件。这个文件列出了应用程序所提供的功能,在这个文件中,你可以指定应用程序使用到的服务(如电话服 务、互联网服务、短信服务、GPS服务等等)。另外当你新添加一个Activity的时候,也需要在这个文件中进行相应配置,只有配置好后,才能调用此 Activity。AndroidManifest.xml将包含如下设置:application permissions、Activities、intent filters等。

如果你跟我一样是ASP.NET出生或者学过,你会发现AndroidManifest.xml跟web.config文件很像,可以把它类同于web.config文件理解。

如果你不是,你可以这样理解——众所周知xml是一种数据交换格式,AndroidManifest.xml就是用来存储一些数据的,只不过这些数据时关于android项目的配置数据。

HelloWorld项目的AndroidManifest.xml如下所示:

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.example.helloworld"

    android:versionCode="1"

    android:versionName="1.0" >

 

    <uses-sdk

        android:minSdkVersion="8"

        android:targetSdkVersion="21" />

 

    <application

        android:allowBackup="true"

        android:icon="@drawable/ic_launcher"

        android:label="@string/app_name"

        android:theme="@style/AppTheme" >

        <activity

            android:name=".MainActivity"

            android:label="@string/app_name" >

            <intent-filter>

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

 

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

            </intent-filter>

        </activity>

    </application>

 

</manifest>

1.7、project.properties

 记录项目中所需要的环境信息,比如Android的版本等。 HelloWorld的project.properties文件代码如下所示,代码中的注释已经把project.properties解释得很清楚了:

# This file is automatically generated by Android Tools.

# Do not modify this file -- YOUR CHANGES WILL BE ERASED!

#

# This file must be checked in Version Control Systems.

#

# To customize properties used by the Ant build system edit

# "ant.properties", and override values to adapt the script to your

# project structure.

#

# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):

#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

 

# Project target.

target=android-21

 

android.library.reference.1=../appcompat_v7

  • 大小: 28.4 KB
  • 大小: 25.4 KB
分享到:
评论

相关推荐

    Android Studio下的APP目录结构详解

    Android Studio下的APP目录结构是Android应用开发中非常重要的一部分,对于初学者来说,了解目录结构可以帮助他们更好地理解项目的组织方式和文件的作用。本文将详细介绍Android Studio下的APP目录结构,帮助开发者...

    andriod初学者必备资料

    在Android开发领域,对于初学者来说,掌握基础知识和实践经验至关重要。"14天学会安卓开发全部示例"这个资源包正为此目标而设计,旨在帮助新手快速上手Android应用开发。接下来,我们将深入探讨其中涉及的关键知识点...

    多库俄罗斯方块andriod版本

    最后,压缩包中的“els_andriod”可能是项目工程文件的名称,这通常包含Andriod Studio的项目结构,如src(源码目录)、res(资源目录)和AndroidManifest.xml(应用配置文件)等。开发者可以通过导入这个工程文件,...

    安卓Andriod源码——一个小闹钟例子.zip

    这个压缩包文件“安卓Andriod源码——一个小闹钟例子.zip”包含了关于安卓应用程序开发的一个实例,特别是关于创建一个简单闹钟应用的源代码。这个小项目可以帮助开发者理解和学习如何在Android平台上实现闹钟功能。...

    andriod 中文api+入门实例

    这份文档通常会详细解释每个类的用途、构造函数、方法以及相关的示例代码,使得初学者能够快速上手。 在入门实例方面,Android提供了一系列的教程和示例代码,帮助开发者了解如何使用API进行实际开发。例如,你可以...

    delphi xe andriod 编程入门教程

    目录部分为读者展示了本文教程的结构,从准备编程环境、Delphi XE6基础入门、到具体的编程实例,如“我的第一个安卓程序”、“如何退出程序”、“安卓下对话框的汉化”等等。这些章节暗示了学习Delphi XE系列进行...

    安卓Andriod源码——一个简单注册界面.zip

    这个压缩包“安卓Andriod源码——一个简单注册界面.zip”包含了实现这一功能的源代码,让我们一起深入探讨其中的关键知识点。 首先,我们关注的是界面设计。在Android中,通常使用XML布局文件来定义用户界面。在...

    java的益智类手游源代码,非常适合初学者学习。

    1. **Java编程基础**:作为一款基于Java的游戏,初学者首先需要熟悉Java语言的基本语法、数据类型、控制结构(如循环、条件语句)、类与对象的概念,以及异常处理等。理解面向对象编程的思想是至关重要的,因为Java...

    Andriod_demo:适用于初学者的Android演示

    项目中的`Andriod_demo-master`很可能是一个Git仓库的主分支,通常包含项目的根目录结构。在这个目录下,你可能会发现以下几个关键组成部分: 1. `AndroidManifest.xml`: 这是每个Android应用的核心配置文件,定义...

    Andriod弹球游戏源码

    Android平台上的游戏开发是一项充满挑战与乐趣的工作,而“Android弹球游戏”作为一款简单的单机游戏,为初学者提供了很好的学习实例。这款游戏的核心在于挡板与小球之间的碰撞反弹,以及不同模式下的场景变化,其...

    老罗andriod视频教程全部源码

    项目结构通常包括src目录(包含主代码)、res目录(存放资源文件如布局、图片、字符串等)、AndroidManifest.xml(应用配置文件)等。 【布局与用户界面设计】 在源码中,你将看到XML布局文件,这是设计Android...

    Basic4Android初学者指南

    **Basic4Android初学者指南** Basic4Android(B4A)是一种基于Visual Basic语言的开发工具,专为Android平台设计。它为开发者提供了一个简单易学的编程环境,使得即使是没有太多编程经验的人也能快速上手开发...

    仿卫星布局andriod端

    对于初学者,理解并熟练掌握自定义布局的实现是提升开发技能的关键步骤之一。 总结来说,"仿卫星布局andriod端"涉及到Android UI开发中的自定义布局技术,包括自定义ViewGroup、布局计算、触摸事件处理等知识点。...

    andriod数据通讯资料

    "Android解析xml文件的3种方式.pdf"将详细介绍XML解析,XML是一种常用的结构化数据格式。Android提供了DOM、SAX和Pull解析器三种方式来处理XML数据,每种方式都有其特点和适用场景,开发者需要根据具体需求选择合适...

    andriod计算器

    在Android平台上开发一款计算器应用,是一项基础且实用的编程任务,尤其对于初学者而言,它可以帮助开发者理解Android应用的基本架构和交互逻辑。本资源提供的"andriod计算器"项目就是一个很好的学习实例,它实现了...

    andriod游戏开发案例源码

    这个名为“Himi_Andriod游戏宝典”的压缩包文件提供了一系列Android游戏开发的案例源码,旨在帮助正在学习Android开发的初学者和进阶者理解游戏开发的各个环节。 Android游戏开发涉及的技术点广泛,包括但不限于...

    Google AndRiod APK 实例程序 例子 入门 4

    "Google AndRiod APK 实例程序 例子 入门 4"这个主题涵盖了从基础到进阶的多个方面,旨在帮助初学者快速理解Android应用程序的构建过程。下面我们将详细探讨这些实例程序可能涵盖的知识点。 首先,Android APK是...

    Andriod 编程开发向导 英文版

    《Android编程开发向导》是一本专为Android开发者编写的英文版指南,旨在引领初学者逐步踏入Android应用程序开发的世界。这本书以清晰的步骤和详尽的解释,帮助读者从零开始构建自己的第一个“HelloWorld”应用,...

    andriod studio 简单计算器示例

    在Android Studio中创建一个简单的计算器应用是一个典型的移动开发任务,对于初学者来说是很好的实践项目。这个示例项目是基于Android Studio 3.0版本构建的,因此我们将深入探讨在这个特定版本中如何实现一个功能...

Global site tag (gtag.js) - Google Analytics