文档章节

Android 第四课——AndroidManifest.xml

learn_more
 learn_more
发布于 2014/12/31 16:50
字数 1680
阅读 1950
收藏 4

清单文件的具体介绍

在 Android 项目中,下一个重要的文件是清单文件。观察一下 AndroidManifest.xml 文 件的内容:

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

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

     package="net.learn2develop.HelloWorld"

     android:versionCode="1"

     android:versionName="1.0.0" >

 

     <uses-sdk android:minSdkVersion="14" />

 

     <application

          android:icon="@drawable/ic_launcher"

          android:label="@string/app_name" >

          <activity

               android:label="@string/app_name"

               android:name=".HelloWorldActivity" >

               <intent-filter >

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

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

               </intent-filter>

          </activity>

</application>

</manifest>

文件 AndroidManifest.xml 包含了关于应用程序的详细信息。

● 它定义了应用程序的包名:net.learn2develop.HelloWorld。

● 应用程序的版本代码为 1(通过 android:versionCode 属性设置)。这个值是用来标识您的应用程序的版本号。它可用于以编程方式确定应用程序是否需要升级。

● 应用程序的版本名称是 1.0(通过 android:versionName 属性设置)。此字符串值主要用来显示给用户。这个值应该采用以下格式:<major>.<minor>.<point>。

● <uses-sdk>元素的 android:minSdkVersion 属性指定了应用程序运行所需的操作系统的最低版本。

● 应用程序使用位于 drawable 文件夹下的图像 ic_launcher.png。

● 应用程序的名称是在 strings.xml 文件中定义的名为 app_name 的字符串。

● HelloWorldActivity.java 文件代表了应用程序中的一项活动。代表这项活动的标签名称与应用程序的名称相同。

● 在这项活动的定义中,有一个名为<intent-filter>的元素: 意图筛选器的动作名称为 android.intent.action.MAIN,表明了这项活动是应用程序的入口点。

意图筛选器的类别名称为 android.intent.category.LAUNCHER, 表明了应用程序可从设备的启动器图标启动

  R.java 的内容

在向项目中加入更多的文件和文件夹后,Eclipse 将自动生成 R.java 的内容,而目前包

含以下内容:

/* AUTO-GENERATED FILE. DO NOT MODIFY.

 *

 * This class was automatically generated by the

 * aapt tool from the resource data it found. It

 * should not be modified by hand.

 */

 

package net.learn2develop.HelloWorld;

 

public final class R {

     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;

     }

建议:

您不要修改R.java 文件的内容。当您修改项目时,Eclipse 会自动为您生成相应内容。 

注意:

如果手动删除了 R.java 文件,Eclipse 会为您立即再重新生成一个。注 意,为了使 Eclipse 可以生成 R.java 文件,您的项目不能包含任何错误。如果 在删除 R.java 后发觉 Eclipse 没有重新生成这个文件,那么您需要再检查一遍 

项目。 代码中可能包含语法错误或者 XML 文件(如 AndroidManifest.xml、 main.

xml 等)的格式不良好。

既然知道是配置文件中的ID会在R中映射成变量,那么我们定义ID的时候必须符合java变量命名规则,如不能用数字开头,不能用保留字,不能用关键字等

程序中使用资源文件

res 中定义:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
   
     <string name="app_name">HelloWorld</string> 
  
</resources>

xml文件中使用:

@string/app_name

java中引用

R.string.app_name;// 获取整数索引

this.getResources().getString(R.string.app_name);// 获取实际值

程序启动过程

  1. Eclipse.java源文件编译成.class

  2. 使用dx工具将所有.class文件转换为.dex文件

  3. 再将.dex文件和所有资源打包成.apk文件

  4. .apk文件安装到虚拟机完成程序安装

  5. 启动程序  开启进程  开启主线程

  6. 创建Activity对象  执行OnCreate()方法

  7. 按照main.xml文件初始化界面


程序打印

1)Totast.makeText(this,msg,Toast.LENGTH__SHORT); // 第一个一般是activity本身,第二个是内容,第三个是时间。

2)log.i(Tag,msg);// 第一个一般是Tag即类的名称,第二个是内容

推荐使用第二种方式,因为第二种可以在控制台中设置查看Tag日志。

3)Android程序中如果出错,错误不会显示在Console中,而是显示在LogCat界面下。可以从window – show view中打开

4)日志信息分为5个级别:verbose > debug > info > warn > error 高级的包含低级的

5)可以创建过滤器对日志进行过滤显示,点击绿色加号,可以按照tag、pid、level进行筛选

主题与样式

1)主题的写法与样式的写法完全相同,都是在resource中采用style标签,一般主题使用在应用或activity中;系统主题也是很重要的,我们可以直接使用系统主题: android:XXXX 或者 android:style/Theme.Light.NoTitleBar.FullScreen 就是调用系统主题,然而调用样式或自定义主题都是 @style/xxx

自定义主题:

<style name="mythem">

    <item name="android:windowNoTitle">true</item>

    <item name="android:windowFullScreen">?android:windowNoTitle</item>

</style>

2)样式可以继承,在style中使用parent属性指定要继承的style的name值就好。也可以继承系统主题:parent="@android:style/Them.Black".

3)和string一样,样式和主题一般放在一个叫styles.xml 的文件中,便于查找。

图片处理

1)9patch图片(宫格图片),Android 的sdk自带处理软件,draw-9-patch.bat.

所谓9宫格的意思是:如下图:

9宫格的意思就是把一张图片分成了9个区域

1)红色区域代表垂直拉伸时改变的区域,分别是:2 、5 、8

2)绿色区域代表水平拉伸时改变的区域,份分别是:4 、 5 、6

3)红绿色交界处的区域代表拉伸时水平和垂直在这里都会发生变化。

4)对于那些不在红色或者绿色区域当中的,如 1 、 7、 3 、 9 , 这些地方是在图片无论如何拉伸都不会发生变化的,一般这些地方都是在拉伸情况下图片容易失真,容易失真的有 渐变样式区域

2)不同的像素或者屏幕系统会自动采用不同的合适的图片,前提时这些图片存在。

布局单位

  • dp:即dip,device independent pixels(设备独立像素),不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、   HVGA和QVGA 推荐使用这个,不依赖像素;

  • px: pixels(像素),不同设备显示效果相同,一般我们用HVGA代表320x480像素,这个用的比较多;

  • sp: scaled pixels(放大像素),主要用于字体显示。

    总结:如果设置表示长度、高度等属性时可以使用dp。但如果设置字体大小,需要使用sp。


© 著作权归作者所有

learn_more
粉丝 93
博文 240
码字总数 210196
作品 0
深圳
程序员
私信 提问
Xamarin.Android 使用百度地图获取定位信息

最近做一个项目,web端使用百度地图,PDA使用手持机自带的GPS定位系统获取经纬度,然后再百度地图上显示该经纬度会有一定距离的差异,这里就像可乐的瓶子拧上雪碧的盖子,能拧的上却不美观。...

键盘演绎青春
2018/07/25
0
0
QT实战-计算器-刘桂林-专题视频课程

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_26787115/article/details/83580590 QT实战-计算器—152人已学习 课程介绍 使用Qt Creator开发一个具有运算...

刘某人程序员
2018/04/27
0
0
【Google官方教程】前言:高效的Bitmap显示

转载声明:Ryan的博客文章欢迎您的转载,但在转载的同时,请注明文章的来源出处,不胜感激! :-) http://my.oschina.net/ryanhoo/blog/88153 译者:Ryan Hoo 来源:https://developer.andro...

RyanHoo
2012/11/09
3.8K
11
android如何查找安装的apk app的包名和Activity

http://www.51testing.com/html/01/610901-864955.html 解决办法: a.有源码的情况,找到AndroidManifest.xml,找到android.intent.category.LAUNCHER关键字,就能找到需要的Activity 包名在...

智能小松鼠
2014/12/02
1K
0
Conversion to Dalvik format failed with error 1

我的原因是在lib“引用的库”中有android2.2 又加了的android2.2的外库,删除lib中的就可以了 选择工程,build path --> configure build path ---> library 删除引用的低版本SDK, 然后add...

DURONG
2013/03/21
266
0

没有更多内容

加载失败,请刷新页面

加载更多

创龙基于TI TMS320C6748(定点/浮点DSP C674x) + Xilinx Spartan-6 FPGA处理器规格书

由广州创龙自主研发的SOM-TL6748F核心板是一款定点/浮点DSP C674x + Xilinx Spartan-6 FPGA工业级双核核心板,66mm*38.6mm,功耗小、成本低、性价比高。采用沉金无铅工艺的8层板设计,专业的...

Tronlong创龙
29分钟前
6
0
DataV教你如何给可视化应用一键美颜

如果你平时经常接触数据统计、数据展示和决策分析,相信你对DataV一定有所了解。DataV作为一站式实时数据可视化应用搭建工具,拥有图形化、拖拽式、近乎零代码的使用体验,能帮助大家轻松搭建...

阿里云官方博客
31分钟前
6
0
Apache Flink 1.9.0版本新功能介绍

摘要:Apache Flink是一个面向分布式数据流处理和批量数据处理的开源计算平台,它能够基于同一个Flink运行时,提供支持流处理和批处理两种类型应用的功能。目前,Apache Flink 1.9.0版本已经...

大涛学长
32分钟前
7
0
网站变成灰色CSS代码

为方便站点哀悼,特提供css滤镜代码,以表哀悼。以下为全站CSS代码。 [css]html { filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1); }[/css] 使 用方法:这段代码可以变网...

前端老手
37分钟前
4
0
bootstrap4

临时接手个bootstrap4的项目 ,作下笔记 一.栅格系统 相对于原来的bs3,bs4具有了范围更大的适应区间.在过去的bs3中的xs sm md lg 中,bs4又增加了一个xl这个区间,为超大屏幕做出了适应。  ...

东东笔记
38分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部