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. python+selenium多窗口之间切换

    #!/usr/bin/env python # coding:utf8 # author:Z time:2018/9/19 import time from selenium import webdr ...

  2. Elasticsearch的几种架构(ELK,EL,EF)性能对比测试报告

    Elasticsearch的几种架构性能对比测试报告 1.前言 选定了Elasticsearch作为存储的数据库,但是还需要对Elasticsearch的基础架构做一定测试,所以,将研究测试报告输出如 ...

  3. GDI+在绘制验证码中的使用

    GDI+最简单的理解就是用来绘图的.其中包括点.直线.矩形.字符串等等. 先简单来个例子,说明如何在winform窗体中绘制一条直线,并且这条直线不随着窗体的移动而消失. using System; ...

  4. UITableViewCell高度自适应的关键点

    iOS开发中对于UITableViewCell高度自适应的文章已经很多很多,但如果cell内容比较复杂,刚使用autolayout配置自使用时还是总不能一次性成功. KEY POINT 这里只说设置的 ...

  5. 第三章 python中的字符串

    一.字符串的基本操作 所有标准的序列操作对字符串同样适用,如索引.分片.乘法.判断成员是否存在.求长度.最大值和最小值等.记住一点,字符串是不可变的. 二.字符串中重要的方法 1.find(subst ...

  6. ios9 3dtouch 博客

    http://my.oschina.net/u/2340880/blog/511509#OSC_h3_3

  7. EntityFramework 学习 一 Spatial Data type support in Entity Framework 5.0

    MS SQl Server引进两种特殊的数据类型geography and geometry public partial class Course { public Course() { this. ...

  8. 算法(Algorithms)第4版 练习 1.5.16

    Quick-find package com.qiusongde; import edu.princeton.cs.algs4.StdDraw; import edu.princeton.cs.alg ...

  9. HTML5学习笔记——1

    1.视频 <vedio src  controls  height width autoplay loop preload > </vedio> <source src ...

  10. A N EAR -D UPLICATE D ETECTION A LGORITHM T O F ACILITATE D OCUMENT C LUSTERING——有时间看看里面的相关研究

    摘自:http://aircconline.com/ijdkp/V4N6/4614ijdkp04.pdf In the syntactical approach we define binary at ...