android之helloworld详解
来源:互联网 发布:最新飞星排盘软件.rar 编辑:程序博客网 时间:2024/05/22 03:32
通过第一个android程序helloworld对各个文件的了解
src/
每个Android程序都包含资源目录(src)主要存放资源文件
packagecn.csdn.class3g;//声明包名称
importandroid.app.Activity;
importandroid.os.Bundle;
public classHelloWorldActivity extends Activity {//定义类 继承activity
/** Called when the activity is firstcreated. */
@Override
public void onCreate(BundlesavedInstanceState) {//重写方法onCreate应用程序启动时调用
super.onCreate(savedInstanceState);
setContentView(R.layout.main);//设置画面显示时的视图(初始化后的helloView)
}
}
gen/
gen/自动生成目录:gen 目录中最关键的程序就是 R.java 。R.java 自动生成的。会由 ADT 插件自动根据你放入 res 目录的 XML 中字符、视频/音频文件、图像等资源,自动更新添加'R.java' 这个文件中。只要修改XMLR.java会自动更新,所有的 Android 程序中都会有以R.java 为名的这个文件,你完全不需要,也应避免手工修改 R.java 这个文件。如果目录下没有R.java,也不用着急,可以右击工程->选择Properties->选择 Android->Apply就行 还有一种是右击工程->选择Android Tools->选择FixProject Properties
新建项目R.java会默认有四个内部类
R.java文件:默认有attr,drawable,layout,string这四个静态内部类,每个静态内部类对应一中资源,如layout静态内部类对应layout中的界面文件,string静态内部类对应string内部的string标签。如果在layout中在增加一个界面文件或者在string内增加一个string标签,R.java会自动在其对应的内部类增加所增加的内容。
R.java除了自动标识资源的索引功能外,还有另一个功能,就是当res文件中的某个资源在应用中没有被用到,在这个应用被编译时,系统不会把对应的资源编译到应用中的APR包中。
packagecn.csdn.class3g;
public final classR {
public static final class attr {
}
public static final class drawable {
public static final int ic_launcher=0x7f020000;
}
public static final class layout {
public static final int main=0x7f030000;
}
public static final class string {
public static final int app_name=0x7f040001;
public static final int hello=0x7f040000;
}
}
其中定义的变量名字都是XML文件中映射过来的
Assets
词义本事就是资产的意义,主要存放视频、音频、多媒体等文件;
访问的时候,则必须使用AssetManager以字节流的方式来读取,用起来非常的不方便
再下边是bin目录在bin目录下的res中
有三个目录drawable-hdpi drawable-ldpi drawable-mdpi
drawable—hdpi看他的单词名肯定知道他是放置高分辨率的图片,drawable—mdpi放置中等分辨率的图片,drawable—ldpi放置低分辨率的图片
再下边有个res目录 其中那drawable-hdpi drawable-ldpi drawable-mdpi跟上边一样
Values中的string.xml
<?xml version="1.0"encoding="utf-8"?>
<resources>
<string name="hello">Hello World,HelloWorldActivity!</string>
<string name="app_name">HelloWorld</string>
</resources>
这里定义一个个键值对 也就是赋值的 减少内存的浪费 也这对字符的统一管理和国际化有很大的意义
Main.xml
<?xml version="1.0"encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
</LinearLayout>
布局文件的内容不多 , 开始就是一个LinearLayout 组件的定义,然后在这个 LinearLayout 放了一个用于显示文字的 TextView 。现在来看一下几个参数:
LinearLayout 一个线性布局面板,只能垂直和水平布局, android:orientation="vertical" 代表里面的子元素只能垂直排列,而使用 android:orientation="horizontal"就标识里面的子元素水平排列 ..
.android:layout_width定义当前视图占的宽度,这里是 fill_parent 即为充满整个屏幕。而设置成wrap_content 会根据当前视图的大小只能的改变宽度
android:layout_height是定义视图的高度,这里也是填充整个屏幕。而设置成 wrap_content 会根据当前视图的大小只能的改变高度。
android:text 是这是 TextView 要显示的文本,可以是字符串,也可以是一个字符串的引用,这里是一个引用,引用的是 strings.xml 定义好的名字为hello 的字符串
AndroidManifest.xml
<?xml version="1.0"encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="cn.csdn.class3g": 该应用包
android:versionCode="1"应用的版本号
android:versionName="1.0" >应用的版本名字
<uses-sdk android:minSdkVersion="10"/>
<uses-permission android:name="android.permission.SEND_SMS"/>
<application标签定义了一个应用,一个项目最多有一个 Application 标签。
android:icon="@drawable/ic_launcher"定义了应用的图标 引用资源文件中的 icon 图片
android:label="@string/app_name" >定义了应用的名称
<activity标签定义了一个 Activity ,你的每一个Activity 必须在这里定义,否则不能运行 .
android:label="@string/app_name"
定义了 Activity 的类名 , 这里的 .HelloWorld 是以上面的Package 定义为基础的,也就是 Package(com.flysnow) 加上这个 android:name(.HelloWorld) 要能定位到这个 Activity(com.flysnow.HelloWorld) ,否则就是找不到 .
android:name=".HelloWorldActivity" >定义了该Activity 的标题
<intent-filter >定义一个 Intent过滤器,用于标记对应的 Activity ,以便 Android系统能找到该 Activity ,定义的是隐性的Intent ,主要使用两个子标签 action 和 category 来区分每个 Intent 。
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
</manifest>
这是项目的重要配置文件,诸如 Activity ,权限, Intent等都在这里配置
<uses-sdkandroid:minSdkVersion="10" /> 就是定义应用的最低SDK 的级别,
<manifest>元素是AndroidManifest.xml的根元素,”xmlns:android”是指该文件的命名空间,“package”属性是Android应用所在的包,“android:versionCode”指定应用的版本号,如果应用不断升级,则需要修改这个值,”android:versionName”是版本的名称,这个可以根据自己的喜爱改变
<application> 元素
<application>元素是一个很重要的元素,开发组件都会在此下定义
<application>元素的”icon”属性是用来设定应用的图标,其中“@drawable/ic_launcher”的意思是:在R.java文件中的drawable静态内部类下的icon,
<application>元素的“label”属性用来设定应用的名称,其中“@string/app_name”和上述的一样,也是R.java文件中的string静态内部类下的app_name
<activity>元素
<activity>元素的作用是注册一个activity信息,当我们在创建“HelloWorldAndroid”这个项目时,指定了“CreatedActivity”属性为“HelloActivity”,然后ADT在生成项目时帮我们自动创建了一个Activity,就是“HelloWorldActivity.java”;
<activity>元素的“name“属性指定的是Activity的类名,其中“.HelloWorldActivity”中的“.”指的是<manifest>元素中的“package”属性中指定的当前包,所以“.HelloWorldActivity”就相当于“cn.csdn.class3g.HelloWorldActivity.java”,如果Activity在应用的包中可以不写“.”,但是为了避免出错,还是写上这个点把
<intent-filter>元素
<intent-filter>如果直接翻译的话是“意图过滤器”,组件通过<intent-filter>告诉它们所具备的功能,就是能响应意图类型,在intent中设置action, data, categroy之后在对应的intentfilter中设置相同的属性即可通过过滤被activity调用
<project.properties>应用要求运行的最低Android版本
<android 2.3.3> 存放Android自身的jar包
- android之helloworld详解
- android之helloworld详解
- Android成长之路-HelloWorld项目详解
- Irrlicht之HelloWorld详解
- Android 初识 Helloworld 详解
- Android之HelloWorld
- Android系列之HelloWorld
- android笔记之helloworld
- Android之HelloWorld
- android studio之helloworld
- Android学习之HelloWorld
- Android Jni之Helloworld
- Android之HelloWorld
- android smali 之HelloWorld
- cocox2d-x之helloworld详解
- Spring Boot 之 HelloWorld详解
- Spring Boot 之 HelloWorld详解
- Spring Boot 之 HelloWorld详解
- WebView学习指南
- Android VLC播放器二次开发1——程序结构分析
- Android 通过http访问服务器
- WebView访问https的url——处理SslError
- 通过WebView获取访问网页的源代码
- android之helloworld详解
- pcDuino 刷系统-卡刷
- xml解析技术概述和使用Jaxp对xml文档进行dom解析
- 黑洞路由器
- 实现一次加载多级所有的菜单
- [Android]更改程序图标
- mexFunction
- 如何更改Android 程序的icon快捷方式图标?
- nyoj- 117 求逆序数 && hdu-sort it----> 树状数组