文档章节

Android自学之路-- 01:Android应用程序架构

 妞妞超人
发布于 2014/05/07 16:46
字数 920
阅读 21
收藏 0

1、src/ java源代码存放目录

2、gen/ 自动生成目录。

    gen 目录中存放所有由Android开发工具自动生成的文件。目录中最重要的就是R.java文件。 这个文件由Android开发工具自动产生的。Android开发工具会自动根据你放入res目录的资源,同步更新修改R.java文件。正因为R.java文件是由开发工具自动生成的,所以我们应避免手工修改R.java。R.java在应用中起到了字典的作用,它包含了各种资源的id,通过R.java,应用可以很方便地找到对应资源。
3、res/ 资源目录

  •       res/drawable 专门存放png、jpg等图像资源。在代码中使用getResources().getDrawable(resourceId)获取该目录下的资源。
          drawable- hdpi、drawable- mdpi、drawable-ldpi的区别:
      (1)drawable-hdpi里面存放高分辨率的图片,如WVGA (480x800),FWVGA (480x854)
      (2)drawable-mdpi里面存放中等分辨率的图片,如HVGA (320x480)
      (3)drawable-ldpi里面存放低分辨率的图片,如QVGA (240x320)
      系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片。
      在开发程序时为了兼容不同平台不同屏幕,建议各自文件夹根据需求均存放不同版本图片。

  • res/layout 专门存放xml界面文件,xml界面文件和HTML文件一样,主要用于显示用户操作界面。

  • res/values 专门存放应用使用到的各种类型数据。不同类型的数据存放在不同的文件中,如下:
    · strings.xml 定义字符串和数值,在Activity中使用getResources().getString(resourceId) 或getResources().getText(resourceId)取得资源。它的作用和struts中的国际化资源文件一样。
    <?xml version="1.0" encoding="UTF-8"?>
        <resources>
          <string name="xxx">xxxx</string>
        </resources>

    · arrays.xml 定义数组。
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <string-array name="colors">
            <item>red</item>
            <item>yellow</item>     
            <item>green</item>     
            <item>blue</item>   
        </string-array>
    </resources>

    · colors.xml 定义颜色和颜色字串数值,你可以在Activity中使用getResources().getDrawable(resourceId) 以及getResources().getColor(resourceId)取得这些资源。例子如下:
          <?xml version="1.0" encoding="UTF-8"?>
    <resources>
      <color name="contents_text">#ff0000</color>
    </resources>

    · dimens.xml 定义尺寸数据,在Activity中使用getResources().getDimension(resourceId) 取得这些资源
          <?xml version="1.0" encoding="UTF-8"?>
    <resources>
      <dimen name="key_height">50dip</dimen>
    </resources>

    · styles.xml 定义样式。
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <style name="itcastText" parent="@style/Text">
            <item name="android:textSize">18sp</item>
            <item name="android:textColor">#0066FF</item>
        </style>
    </resources>

  • res/anim/ 存放定义动画的XML文件。

  • res/xml/ 在Activity中使用getResources().getXML()读取该目录下的XML资源文件。

res/raw/ 该目录用于存放应用使用到的原始文件,如音效文件等。编译软件时,这些数据不会被编译,它们被直接加入到程序安装包里。 为了在程序中使用这些资源,你可以调用getResources().openRawResource(ID) , 参数ID形式:R.raw.somefilename。

4、assets资源目录
    Android除了提供/res目录存放资源文件外,在/assets目录也可以存放资源文件,而且/assets目录下的资源文件不会在    R.java自动生成ID,所以读取/assets目录下的文件必须指定文件的路径,如:file:///android_asset/xxx.3gp
5、AndroidManifest.xml 项目清单文件
     这个文件列出了应用程序所提供的功能,以后你开发好的各种组件(Activity、ContentProvider、BroadcastReceiver、Service)需要在该文件中进行配置,如果应用使用到了系统内置的应用(如电话服务、互联网服务、短信服务、GPS服务等等),你还需在该文件中声明使用权限。
6、default.properties 项目环境信息,一般是不需要修改此文件



  

© 著作权归作者所有

共有 人打赏支持
粉丝 1
博文 6
码字总数 4076
作品 0
邯郸
程序员
私信 提问
android,javaweb

一直想做游戏,但总是事与愿违,后来有机会自学了android,做了一个通讯录,一个射击游戏,想在北京找android工作,有时生活让人很无奈,得病回家呆了五个月,现在又来北京,想必很多程序员都...

piter3306
2012/10/17
508
4
系统学习android开发 让android之路更清晰

不知道 android开发 应该怎么学?遇见瓶颈不知道该怎么做? 首先,要明白,android学习应该是系统化的,并不是东一块西一块的学一点代码就OK的了。 系统的学习android开发技术,从应用到底层...

达尔文子
2013/07/10
557
0
寻android开发工作

本人现居深圳,12年软件工程毕业,热爱android移动开发,自学android,由于现公司android开发项目少,android开发交流人员少,希望可以找到一个android交流学习、深入系统源码、android架构的...

Sassoon
2013/03/29
519
7
Android项目重构之路:架构篇、界面篇、实现篇

我发现在网上,很少人出来讲Android开发的架构设计和实现。也有不少人不知道在Android开发这块的架构怎么入手。因此,我觉得很有必要整理和分享下这方面的东西。最近就写了该系列的三篇文章,...

Keegan小钢
2015/11/03
8.2K
1
Android 网络编程 目录

Android 网络编程 目录 Android 网络编程1 Http协议 Android 网络编程2 Okhttp缓存机制 Android 网络编程3 Java NIO to be continued... Android 架构师之路 目录 Android 架构师之路1 UML图...

香沙小熊
2018/06/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

composer安装

前言:随着开源的东西越来越多,一些好的代码我们是可以直接拿过来用的,github更是加快了这一节奏,在github上我们可以看到一些开源的项目、代码块、函数库、类结构等,我们可以直接Fork,然...

echojson
17分钟前
0
0
Longest Palindrome(leetcode409)

Given a string which consists of lowercase or uppercase letters, find the length of the longest palindromes that can be built with those letters. This is case sensitive, for exa......

woshixin
35分钟前
0
0
mysql grant 用户权限总结

用户权限管理主要有以下作用: 1. 可以限制用户访问哪些库、哪些表 2. 可以限制用户对哪些表执行SELECT、CREATE、DELETE、DELETE、ALTER等操作 3. 可以限制用户登录的IP或域名 4. 可以限制用...

Airship
51分钟前
1
0
RabbitMQ学习(3)

1. 消费端 1. 消费端通过推模式或者拉模式从RabbitMQ中获取并消费消息,当消费者确认处理消息后,可以手动确认消息已被接收,然后就会将该消息从RabbitMQ的队列中标记再清除,消费者端还可以...

江左煤郎
今天
1
0
linux mysql(5.7)开启慢查询

一、有3个配置需要设置, 1:相关开关 2:日志目录文件 3:慢查询的时间限制 二、设置完之后重启mysql service mariadb restart 三、重启后做个测试 连接mysql 并查询: select sleep(6); 四...

chro008
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部