R.java是由IDE自动生成的,不允许修改.


Android Dependences  安卓的支持库

项目创建之后一般都会把安卓支持库的V4包导入进来.


项目打包的时候assets的内容并不会被编译。java代码最后会被编译生成.XML,然后再打包成dex。最后在APK包里面assets是不会改变的,不会被编译。


项目编译之后都会放到bin目录里面。编译之后的内容都会放到bin目录里面。bin,二进制binary,编译之后的二进制文件都会放到bin目录里面。


libs:放项目依赖的其他的库文件。android-support-v4.jar 项目依赖的是support-v4.jar.把support-v4.jar添加build path里面之后就到了Android Dependencies.


res:resource存放跟咱们项目相关的一系列的各种各样资源。这一系列资源就是在咱们开发的时候经常会用到的东西。drawable这里面放的就是图标/图片。项目用到的图片都可以往drawable目录里面放。drawable根据屏幕的像素密度.像素密度:单位的面积上究竟可以显示/放多少的个像素点。h是high,l是low,m是middle,xh比h还要高一个档次。xxh比xh像素密度还要高。目前ldpi和mdpi这两种设备基本上很少。现在最常见的手机的分辨率是1920*1080,不管是5寸的还是5.5寸的还是6寸的基本上都是属于xhdpi.xhdpi像素密度比较高。ldpi和mdpi基本上现在没有这样的设备了。放这么多drawable的文件夹是为了更好的去适配不同的屏幕。

但是并不是说比如说一个应用会使用到一百张图片。并不是说我要把图片做成不同的分辨率然后丢到不同的drawable目录里面。大概的情况的是会把大部分图片丢到同一个目录里面。目前市面上哪种手机比较多,究竟落到哪一种像素密度里的手机屏幕比较多,最后就把大部分图片都放到drawable目录下。剩下的drawable目录就是放图标。因为比较重要的图标比如说logo,针对不同的分辨率做出一系列的不同尺寸的图片放到不同的像素密度对应的文件夹里面。drawable是存放图片资源的。

layout:布局文件。涉及到界面,用xml画界面的时候,这个东西最终都要放到layout文件夹下面。

menu:安卓手机标准的三个按钮。中间是home键,还有一个是返回键,剩下的就是菜单键。menu菜单用的越来越少了,因为好多手机都在朝着苹果去学,就剩下一个按钮了。剩下一个圆圈,左右按钮被省略掉了。最终返回都是用手势去操作,比如像魅族的手机。虽然菜单菜单用的越来越少了,但是还是要知道menu菜单。你按一下菜单键弹出来什么东西是由menu目录下的xml文件决定的。

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

    <item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:showAsAction="never"
android:title="@string/action_settings"/> </menu>

values:dimens放一些具体的大小的值。strings.xml放一些在应用里面显示的文本。styles.xml放的是样式。

values-sw600dp:放好几个文件夹。

values-sw720dp-land:根据屏幕的分辨率进行适配的。最终涉及到屏幕适配的时候再去介绍。


v11、v14是版本适配的。v11代表api level是11以上的。v14代表API level是14以上的。v11和v14放了两个样式。

<resources>

    <!--
Base application theme for API 11+. This theme completely replaces
AppBaseTheme from res/values/styles.xml on API 11+ devices.
-->
<style name="AppBaseTheme" parent="android:Theme.Holo.Light">
<!-- API 11 theme customizations can go here. -->
</style> </resources>

你的API版本是11以上的你的手机里面才能找到对应的主题。手机跑起来涉及到样式就会到v11里面去找。如果v11和v14配置的是不同的样式,最终你的应用可能在不同的版本手机上跑起来看起来是不一样的。

values:放到是字符串strings、大小dimens、主题styles。还可以放一些颜色的值。


AndroidManifest.xml清单文件。应用包含了哪些控件,然后一些最基本的信息都放在了清单文件里面。声明了名称空间xmlns:android="http://schemas.android.com/apk/res/android",说明这个东西也是用schema进行约束的。manifest指定一个属性叫做package,package是应用的包名:

package="com.itheima.helloworld"

区分一个应用和其他的应用很重要的一个东西是包名。包名究竟在哪里定义的?在src下面定义了一个包名,这个包名实际上可以跟package的名字不一样,最终用的包名是啥?取决于package声明的是什么名字.package声明的是helloworld,最终咱们这个应用包名的就是helloworld.

现在是调试的过程,并不是真实的把项目发布到市场上去。最终右键Run As Application跑项目的时候涉及对应用进行签名。这个签名用到的就是debug签名。就是这个工作空间里面它搞的这么一个签名文件。每一个工作空间这个debug签名都是一样的。包名跟之前相同了,整个工作空间用的是同一个debug签名。最终导致两个应用是同一个应用。你的版本号android:versionCode是一样的,最终它默认你跑的是同一个东西。

所以它不会跑你现在的应用而是跑之前的应用,跟你的包名和之前的应用的包名冲突了是一样的。

改src下的包名对AndroidManifest.xml清单文件的包名是没有任何影响的。所以包名不能重复,包名定义的位置是在清单文件里面的package属性。所以两个应用的包名冲突了要在清单文件的package属性去改对应的包名.

版本号:

    android:versionCode="1"

版本的名字:

    android:versionName="1.0" 


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

清单文件记录了刚才指定的当前项目的最小版本android:minSdkVersion和运行的目标版本android:targetSdkVersion.


  <application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.itheima.helloworld.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

android:icon是当前应用的图标.

android:label是当前应用的名字。

android:theme是当前应用的主题。

<activity是当前应用的组件。

android:name指定了MainActivity的全路径.

            android:name="com.itheima.helloworld.MainActivity"

每一个组件都要在清单文件里面声明。

<activity
android:name="com.itheima.helloworld.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

09_android项目的目录结构的更多相关文章

  1. Go 项目的目录结构 及 安装技巧

    项目目录结构如何组织,一般语言都是没有规定.但 Go 语言这方面做了规定,这样可以保持一致性 1.一般的,一个 Go 项目在 GOPATH 下,会有如下三个目录: |--bin |--pkg |--s ...

  2. Android开发学习——Android项目的目录结构

    Android项目的目录结构: 资源文件夹: 清单配置文件: Android的四大组件在使用前全部需要在清单文件中配置 <?xml version="1.0" encodin ...

  3. Maven项目的目录结构+maven的安装与配置

    1.首先下载maven,然后配置环境变量,在MyEclipse里面配置maven 2.配置maven的pom.xml文件 3.下载和更新资源 右击项目,有一个Maven4Myeclipse,里面有三个 ...

  4. Android开发系列之Android项目的目录结构

    今天开始正式学习Android开发的种种细节,首先从最基本的概念和操作学起. 首先看一下Android项目的目录结构. 这是我随便建立的一个test项目,我们重点关注一下几个方面的内容: 1.src目 ...

  5. ASP.NET MVC 入门2、项目的目录结构与核心的DLL

    我们新建一个ASP.NET MVC的Web Application后,默认的情况下,项目的目录结构如下: App_Data :这个目录跟我们一般的ASP.NET website是一样的,用于存放数据. ...

  6. [转]ASP.NET MVC 入门2、项目的目录结构与核心的DLL

    我们新建一个ASP.NET MVC的Web Application后,默认的情况下,项目的目录结构如下: App_Data :这个目录跟我们一般的ASP.NET website是一样的,用于存放数据. ...

  7. android学习——项目的目录结构

    学习开发之前要了解工程目录下的文件夹下文件的用意,是以HelloWorld为例: 1.HelloWorld项目的目录结构 1.1.src文件夹 1.2.gen文件夹 1.3.Android 2.1文件 ...

  8. Maven项目的目录结构

    刚接触Maven没多长时间,实习时在的小公司很不规范,所有web项目都是dynamic web project搭建,没有用到项目构建,管理工具,导致了非常多的重复工作与低效. 先来看看Maven的功能 ...

  9. 使用Maven构建Web项目的目录结构

    1.Web项目的目录结构     基于Java的Web项目,标准的打包方式是WAR.与JAR比较,包含更多的内容,比如JSP文件.Servlet.Java类.web.xml配置文件.依赖JAR包.静态 ...

随机推荐

  1. rails 命名

    1.model rails g model wordSetting model:WordSetting has_many: word_settings table: word_settings vie ...

  2. Data Structure Linked List: Flattening a Linked List

    http://www.geeksforgeeks.org/flattening-a-linked-list/ #include <iostream> #include <vector ...

  3. TCP/IP 简介

    1: 什么是 TCP/IP? TCP/IP 是供已连接因特网的计算机进行通信的通信协议. TCP/IP 指传输控制协议/网际协议 (Transmission Control Protocol / In ...

  4. servlet实现验证码

    (博客内容来自:jsp使用servlet实现验证码,以下内容只是不才对原博客的摘抄以便以后翻阅使用) 一.原理: 验证码作为一个图片,在页面中为“画”出来的,它是如何画出来的呢? <生成图片&g ...

  5. castle windsor学习----ComponentModel construction contributors

    public class RequireLoggerProperties : IContributeComponentModelConstruction { public void ProcessMo ...

  6. Spark集群搭建(local、standalone、yarn)

    Spark集群搭建 local本地模式 下载安装包解压即可使用,测试(2.2版本)./bin/spark-submit --class org.apache.spark.examples.SparkP ...

  7. JavaWeb -- Cookie应用实例 -- 购物历史记录

    1. 页面一:主页面                                         页面二: 详细显示页面   Demo2 负责页面一, 显示商品清单和历史记录 Demo3负责页面二 ...

  8. IntelliJ IDEA Sringboot 项目部署到外部Tomcat服务器

    <packaging>war</packaging> 添加依赖 <dependency> <groupId>org.springframework.bo ...

  9. Spark- 计算每个学科最受欢迎的老师

    日志类型 测试数据 http://bigdata.myit.com/zhangsan http://bigdata.myit.com/zhangsan http://bigdata.myit.com/ ...

  10. spring boot: 一般注入说明(五) @Component, application event事件为Bean与Bean之间通信提供了支持

    spring的事件,为Bean与Bean之间通信提供了支持,当一个Bean处理完成之后,希望另一个Bean知道后做相应的事情,这时我们就让另外一个Bean监听当前Bean所发送的事件. spring的 ...