`
androidtoast
  • 浏览: 211847 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
38befa0e-3f74-3314-92d9-475c7fc3c19b
Android学习——入门...
浏览量:125324
社区版块
存档分类
最新评论

二,HelloWorld 及源码关联 & Manifest 类关联

阅读更多

 

1.构建一个helloworldandroid程序非常简单,直接new 一个android的项目,直接运行,一个helloworld的项目就完成了。这一篇主要详细讲一下android的项目目录结构以及源码关联。看图:



 相对于J2EE项目结构的灵活,Android项目的结构显得比较固定,只要你弄清楚每个资源文件里面该放什么东西,就不会出现J2EE中,资源放错地方not found的问题。当然两者的相同之处还是很明显的,android项目中围绕着四大组件构建起来的业务逻辑,在JavaEE中你可以看作是Servlet或者SSH,每一个组件或者每一个框架都负责处理属于自己的东西。AndroidManifest.xml可以看做是web.xml

src 包含应用程序的所有源代码

gen gen下面的R类是自动生成的,这是一个非常顽强的类即使把它删除也会自动创建。这个类里面 包含很多内部类,每个内部类对应相应的资源文件。

 

public final class R {
    public static final class attr {
	}
	//此类对应res资源包下的drawable
	public static final class drawable {
	//每一张图片都会生成一个唯一的整型标识符
        public static final int icon=0x7f020000;
	}
	//此类对应布局文件layout
	public static final class layout {
	//位布局文件生成的对应的标识符
        public static final int main=0x7f030000;
	}
	//对应values资源包主要用于国际化
	public static final class string {
	//为不同的字符串生成相对应的标识符
        public static final int app_name=0x7f040001;
        public static final int hello=0x7f040000;
    }
}

 assets 可以存放一些其他,额外的文件或者资源

res资源文件包 drawable用于存放图片资源,layout用于存放布局文件,values用于存放程序所

     需文字资源。着重说一下drawable在之前的版本中,只有一个drawable,而2.1版本之后(包括 2.1)出现了drawable-mdpidrawable-ldpidrawable-hdpi三个,这三个主要是为了支持多分辨率。

  他们的主要区别

  (1)drawable-hdpi里面存放高分辨率的图片,WVGA (480x800),FWVGA (480x854)

  (2)drawable-mdpi里面存放中等分辨率的图片,HVGA (320x480)

  (3)drawable-ldpi里面存放低分辨率的图片,QVGA (240x320)

  系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片。

  在开发程序时为了兼容不同平台不同屏幕,建议各自文件夹根据需求均存放不同版本图片。

AndroidManifest.xml:应用程序的描述文件,此文件定义应用程序的Activity,ContentProvider,Service,receiver以及意图过滤器。还定义了应用程序所需要的权限等等。

Default.properties:主要定义了应用程序最低的兼容版本。

  Proguard.cfg:主要用于优化,压缩,混淆java字节码文件的工具。

2,开发中经常需要扩展或者自定义某些功能,这就需要对源代码有一些深入的了解。目前android 除了支持平板的3.0以上的版本源码还没有开放。其余版本都可以下载到。说一下如何关联源码。例如我关联android2.2版本的。



 然后在Eclipse上新建一个android的程序,右键→propertiesJava Buid Path 


 

此时源码已经关联好了,但是还有一个类无法找到。Manifest.java 权限的清单文件。这个类定义了所有需要用到的权限。


 

重启Eclipse,查找一下该类,看下是否关联上!


 有需要源码的留下邮箱。

 

  • 大小: 122 KB
  • 大小: 66.5 KB
  • 大小: 194.6 KB
  • 大小: 92 KB
  • 大小: 17.5 KB
分享到:
评论
10 楼 SE_XiaoFeng 2013-07-08  
yoyo837 写道
git好慢,有什么快一点的下载方式么? yoyo837@hotmail.com

3ks...

完全看个人网速.
9 楼 assassinme 2012-04-28  
来迟了,楼主,麻烦发一下源码,谢谢!!!
assassinme@163.com
8 楼 LoveChannel 2012-04-20  
来迟了,楼主,麻烦给我发一下源码,谢谢!!楼主画的学习路线图,不错啊,收下了,287989902@qq.com
7 楼 loveryoume 2012-03-27  
1014220281@qq.com,感谢楼主,急需源码!
6 楼 zonghengmodao 2012-02-27  
707630678#qq.com
楼主给我发一份,谢谢啦
5 楼 fulianqiu 2012-02-06  
fulianqiu123@163.com
麻烦楼主给我发一份
4 楼 goudan513 2012-02-01  
carey_ccjj@163.com
麻烦博主发给我一份。谢谢
3 楼 anduo1989 2011-12-29  
anduo1989@gmail.com

3ks
2 楼 alai881020 2011-12-01  
alai881020@163.com 多谢博主
1 楼 yoyo837 2011-11-22  
git好慢,有什么快一点的下载方式么? yoyo837@hotmail.com

3ks...

相关推荐

    Ant 实例教程(Hello World)

    <attribute name="Main-Class" value="com.example.helloworld.HelloWorld"/> </manifest> <java fork="true" classname="com.example.helloworld.HelloWorld"> ${jar.dir}/HelloWorld.jar"/> ...

    Android系统源代码情景分析之HelloWorld应用程序

    6. **系统启动与应用加载**:在Android系统启动后,如果"HelloWorld"被集成到系统源码,它会在系统初始化阶段作为系统的一部分加载。不同于普通应用需要用户手动安装,系统级应用可以直接运行。 7. **权限管理**:...

    OSGi HelloWorld实例

    4. **配置MANIFEST.MF**:在MANIFEST.MF文件中,你需要声明你的类路径(Export-Package),这样其他模块才能访问你的HelloWorld类。确保你的类名和包名与实际代码一致。 5. **构建和运行**:在Eclipse中,你可以...

    Firefox扩展实例-HelloWorld

    在"HelloWorld"的例子中,我们可能有一个manifest.json文件,声明了一个browser action,当用户点击这个action的图标时,会弹出一个alert框显示"Hello, World!"。为了实现这一功能,我们需要在manifest.json中定义...

    chrome helloworld程序

    例如,`"name": "Chrome HelloWorld"`会设置扩展的名称。 2. **background.js**:这是后台脚本,它在浏览器启动时运行,并持续存在,负责处理事件和执行非用户交互的任务。在这个Hello World程序中,可能包含了一些...

    Spring MVC Helloworld实例

    在这个“Spring MVC Helloworld实例”中,我们将会探讨如何利用Spring MVC 3.0.5版本创建一个简单的Hello World应用程序。这个实例包括了所有必要的jar包,使开发者能够快速地开始他们的开发工作。 首先,了解...

    HelloWorld文档.zip

    "HelloWorld文档.zip"是一个压缩包,包含了入门级别的Roku BrightScript开发所需的基本文件。这个压缩包可以帮助初学者理解Roku应用的构建过程。 `Makefile`是自动化构建工具,通常用于编译和打包项目。在Roku开发...

    RAP Helloworld

    "RAP Helloworld" 是一个初学者入门级别的程序,它标志着你在探索 Rich Ajax Platform(简称 RAP)的旅程已经开始。RAP 是一个强大的、基于 Java 的 Web 应用程序框架,专门设计用于构建富客户端应用程序,其核心是...

    android Helloworld

    总结一下,"android Helloworld"项目是Android编程的启蒙,它涵盖了创建新项目、理解活动生命周期、编写布局文件、操作UI元素以及理解AndroidManifest.xml文件等基础知识。这个简单的例子为后续更复杂的Android开发...

    helloworld demo

    在移动开发领域,"HelloWorld" demo 是一个非常基础且重要的起点,尤其对于初次接触Android平台的开发者来说。这个简单的程序通常包含一个显示 "Hello, World!" 文本的界面,它是学习新编程语言或框架的第一步,因为...

    Android命令行开发环境搭建和HelloWorld Project

    本文将详细介绍如何搭建Android命令行开发环境,并通过创建一个简单的"HelloWorld"项目来实践这一过程。 首先,我们需要下载并安装Android SDK。Android SDK包含了开发Android应用所需的工具和库,包括构建工具、...

    osgi helloworld

    "osgi helloworld"是一个入门级的示例,旨在帮助初学者理解OSGi的基本概念和工作原理。这个实例包括了两个部分:`server`和`client`,它们都是OSGi的bundle。 首先,我们来看`server` bundle。这个bundle通常扮演...

    Android安卓应用源码-条码&二维码类源代码(9例).zip

    源码应包含如何在运行时请求和处理`Manifest.permission.CAMERA`权限的代码。 6. **异步处理**: 扫描操作通常在后台线程执行,以避免阻塞主线程。源码可能使用了Handler、AsyncTask或者现代的Coroutine库进行异步...

    struts helloWorld例子

    "Struts Hello World"示例是学习Struts框架的基础步骤,它帮助开发者理解框架的基本架构和工作原理。在这个例子中,我们将探讨Struts的组件、配置文件以及如何通过简单的请求处理流程来展示"Hello, World!"。 1. **...

    Java程序创建Manifest文件

    当我们需要运行一个与其他jar文件有关联jar文件时,如果jar文件里面的MANIFEST.MF文件没有配置好,那在运行时就要报异常:Exception in thread "main" java.lang.NoClassDefFoundError。原因:未找到关联jar文件里面...

    linux环境下java程序打包成简单的hello world输出jar包示例

    ~/helloworld$ jar cvfm hello.jar manifest.txt helloworld.class ``` 你会看到一些打包信息输出到终端。现在JAR文件`hello.jar`已经创建成功,你可以通过下面的命令运行它: ```bash ~/helloworld$ java -jar ...

    修改图标后的HelloWorld.zip

    通过分析这个HelloWorld项目,我们可以学习到如何将图标与程序关联,以及如何在代码中实现这一过程。这不仅涉及基本的编程知识,也涵盖了软件工程中的用户界面设计原则和实践。 为了进一步理解这个实验,你需要解压...

    OSGi开发环境建立和Hello World

    在新项目向导中,为项目命名,如"HelloWorld",确保"Generate manifest first"选项被选中,然后完成创建。 **4. 编写"Hello World"服务** 在创建的项目中,我们需要定义一个OSGi服务。在src目录下,创建一个名为`...

    OSGi -- Helloworld 学习记录一

    在"OSGi -- Helloworld 学习记录一"这篇博文中,作者很可能是分享了他/她初次接触并实践OSGi时的经验,通过创建一个简单的HelloWorld示例来介绍这个技术的基础概念。 首先,我们需要理解OSGi的核心特性:模块化。在...

    hellomui demo 源码.rar

    【标题】"hellomui demo 源码.rar"是一个包含hellomui框架源码的压缩包,主要用于展示和学习MUI的使用方法。MUI是一个流行且强大的前端开发框架,专为移动设备优化,提供了丰富的组件和示例,帮助开发者快速构建高...

Global site tag (gtag.js) - Google Analytics