志在指尖
用双手敲打未来

App工程结构

在经过含辛茹苦各种填坑终于装置好了AndroidStudio之后,在其自带的模拟器上成功运转了第一个APP(helloworld),经过这个APP首要研究了一下APP根本的工程结构,从而使后面的开发愈加称心如意。
先上HelloWorld工程的目录结构图
从结构图我们能够看到,该工程下面有两个目录:一个是app,另一个是GradleScripts。
其间,app又分下面三个子目录
(1)manifests,下面只有一个AndroidManifest.xml文件,它是APP运转的装备文件
(2)java,下面有com.example.animator.android_learning和com.example.animator.android_learning两个包,别离寄存的是APP工程的java源代码以及测试用的java代码
(3)res,寄存的是APP工程的资源文件。它下面又有四个子目录
·drawable寄存的是图形描绘文件及用户图片
·layout寄存的是APP页面的布局文件
·mipmap寄存的是启动图标
·values寄存的是一些常量界说文件,如string型的strings.xml,像素常量dimens.xml、颜色colors.xml、款式界说styles.xml
GradleScripts下面主要是工程的编译装备文件,其间
(1)build.gradle分为项目级和模块级两种,用于描绘APP工程的编译规矩
(2)proguard-rules.pro用于描绘java文件的代码混杂规矩
(3)gradle.properties用于装备编译工程的命令行参数,一般无需改动
(4)setting.gradles装备哪些模块在一起编译。初始内容为include”:app”,表明只编译app模块
(5)local.properties项目的本地装备,一般无需改动。改文件是在工程编译时主动生成的,用于描绘开发者本机的环境装备,比如SDK的本地途径、NDK的本地途径等android
关于装备文件build.gradle
下面对原始的build.gradle文件中弥补文字注释,便利理解每个参数的用处
applyplugin:’com.android.application’android{//指定编译用的SDK版别,如21表明运用Android5.0编译compileSdkVersion21//指定编译工具的版别号,这儿的头两位必须与compileSdkVersion保持一致,详细的版别号可在SDK的装置目录的“sdk\build-tools”下找到buildToolsVersion”21.1.1″defaultConfig{//指定该模块的使用编号,即APP的包名,改参数为主动生成,无需改动applicationId”com.example.animator.android_learning”//指定APP合适运转的最小SDK版别号minSdkVersion21//指定方针设备的SDK版别号,即该APP最期望在哪个版别的Android上运转targetSdkVersion21//指定APP的使用版别号versionCode1//指定APP的使用版别称号versionName”1.0″}
buildTypes{
release{//指定是否敞开代码混杂功用minifyEnabledfalse//指定代码混杂规矩文件的文件名proguardFilesgetDefaultProguardFile(‘proguard-android.txt’),’proguard-rules.pro’}
}
}//指定APP编译的依赖信息dependencies{//指定引证jar包的途径compilefileTree(dir:’libs’,include:[‘*.jar’])//指定单元测试编译用的Junit版别号testCompile’junit:junit:4.12’//指定编译Android的高版别支持库compile’com.android.support:appcompat-v7:21.0.2′}
关于APP运转装备AndroidManifest.xml
它用于指定APP内部的运转装备,是一个xml描绘文件,根节点为manifest,根节点的package指定了APP的包名,manifest下部分子节点阐明如下:
(1)uses-permission用于声明APP运转过程中需求的权限称号,如相机权限、定位权限等
(2)application用于指定APP本身特点,默认值阐明如下:
·allowBackup是否答应备份
·iconAPP在手机屏幕上显现的图标
·labelAPP在手机屏幕上显现的称号
·supportsRtl设置为true表明答应从右往左的文字摆放次序
·theme指定APP的显现风格
在代码中操纵控件
首要能够看到helloworld工程的页面布局文件内容如下
xmlversion=”1.0″encoding=”utf-8″?><RelativeLayoutxmlns: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.animator.android_learning.MainActivity”><TextViewandroid:layout_width=”wrap_content”android:layout_height=”wrap_content”android:text=”HelloWorld!”/>RelativeLayout>
能够看到xml布局文件和HTML做前端有一些类似,如layout_width类似于HTML中的width特点,layout_height类似于HTML中的height特点,TextView又和HTML中的textarea控件类似,由此可见APP的布局装备并不难,能够说“开发文档在手全国我有”了。
一起对应的java代码文件如下
packagecom.example.animator.android_learning;importandroid.support.v7.app.ActionBarActivity;importandroid.os.Bundle;publicclassMainActivityextendsActionBarActivity{
@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
经过查找相关资料和教程知道,onCreate方法经过引证布局文件的姓名来向APP页面填充布局款式,和JavaScript配合HTML相同,java也能够经过代码获取id对应下的xml标签(前提是要给xml标签添加idandroid:id=”@+id/helloworld”)
经过代码简略改写TextView文字如下
packagecom.example.animator.android_learning;importandroid.graphics.Color;importandroid.support.v7.app.ActionBarActivity;importandroid.os.Bundle;importandroid.widget.TextView;publicclassMainActivityextendsActionBarActivity{
@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextViewtextView=(TextView)findViewById(R.id.helloworld);
textView.setText(“小赵的第一次操作!”);
textView.setTextColor(Color.RED);
textView.setTextSize(30);
}
}

未经允许不得转载:IT技术网站 » App工程结构
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

志在指尖 用双手敲打未来

登录/注册IT技术大全

热门IT技术

C#基础入门   SQL server数据库   系统SEO学习教程   WordPress小技巧   WordPress插件   脚本与源码下载