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. pinpoint本地开发——collector

    本地启动collector 启动前准备 启动之前,要先确保本地已经可以正常package,install 必须保证install成功,才能进行后续步骤,无法install或者package参考[pin ...

  2. SpringBoot学习笔记(4):添加自定义的过滤器

    SpringBoot:学习笔记(4)——添加自定义的过滤器 引入自定义过滤器 SpringBoot提供的前端控制器无法满足我们产品的需求时,我们需要添加自定义的过滤器. SpringBoot添加过滤器 ...

  3. Swift 枚举简单使用

    //定义一个枚举 Direction 枚举字符名字 enum Direction{ case North case South case East case West }; enum Directio ...

  4. 剑指offer——不能被继承的类

    方法一:通过将类的构造函数和析构函数声明成private来防止子类继承.声明静态的方法来构造和析构类的对象. 但是用起来不是很方便.只能得到在堆上的实例,而不能得到在栈上的实例. 方法二:构造辅助类C ...

  5. django-forms表单验证

    django生成登录随机图片验证码:http://www.cnblogs.com/wupeiqi/articles/4786251.html def insert(request): # print( ...

  6. Fermat’s Chirstmas Theorem (素数打表的)

                                                                             Fermat’s Chirstmas Theorem ...

  7. Linux上网设置

    ifconfig 命令查看网络设置 步骤1.配置/etc/sysconfig/network-scripts/ifcfg-eth0 里的文件.有的是(ifcfg-ens33) 文件 CentOS下的i ...

  8. MySQL部署时Table 'mysql.plugin' doesn't exist的解决

    今天部署了免安装版的MySQL,出现了Table 'mysql.plugin' doesn't exist的问题,苦恼了好久,终于在网上找到了解决方案,现整理一下给大家分享: 系统环境:Win10 6 ...

  9. jquery详解图片平滑滚动

    jquery详解图片平滑滚动 随便写了个DOM,没有美观性,见谅 原理: 1.定义两组ul列表放图,第一个ul放5张图,第二个ul为空 2.为什么要用两个ul?因为要用到jQuery的克隆方法clon ...

  10. R语言编程中的常见错误

    R语言编程中的常见错误有一些错误是R的初学者和经验丰富的R程序员都可能常犯的.如果程序出错了,请检查以下几方面. 使用了错误的大小写.help().Help()和HELP()是三个不同的函数(只有第 ...