09_android项目的目录结构

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项目的目录结构的更多相关文章
- Go 项目的目录结构 及 安装技巧
项目目录结构如何组织,一般语言都是没有规定.但 Go 语言这方面做了规定,这样可以保持一致性 1.一般的,一个 Go 项目在 GOPATH 下,会有如下三个目录: |--bin |--pkg |--s ...
- Android开发学习——Android项目的目录结构
Android项目的目录结构: 资源文件夹: 清单配置文件: Android的四大组件在使用前全部需要在清单文件中配置 <?xml version="1.0" encodin ...
- Maven项目的目录结构+maven的安装与配置
1.首先下载maven,然后配置环境变量,在MyEclipse里面配置maven 2.配置maven的pom.xml文件 3.下载和更新资源 右击项目,有一个Maven4Myeclipse,里面有三个 ...
- Android开发系列之Android项目的目录结构
今天开始正式学习Android开发的种种细节,首先从最基本的概念和操作学起. 首先看一下Android项目的目录结构. 这是我随便建立的一个test项目,我们重点关注一下几个方面的内容: 1.src目 ...
- ASP.NET MVC 入门2、项目的目录结构与核心的DLL
我们新建一个ASP.NET MVC的Web Application后,默认的情况下,项目的目录结构如下: App_Data :这个目录跟我们一般的ASP.NET website是一样的,用于存放数据. ...
- [转]ASP.NET MVC 入门2、项目的目录结构与核心的DLL
我们新建一个ASP.NET MVC的Web Application后,默认的情况下,项目的目录结构如下: App_Data :这个目录跟我们一般的ASP.NET website是一样的,用于存放数据. ...
- android学习——项目的目录结构
学习开发之前要了解工程目录下的文件夹下文件的用意,是以HelloWorld为例: 1.HelloWorld项目的目录结构 1.1.src文件夹 1.2.gen文件夹 1.3.Android 2.1文件 ...
- Maven项目的目录结构
刚接触Maven没多长时间,实习时在的小公司很不规范,所有web项目都是dynamic web project搭建,没有用到项目构建,管理工具,导致了非常多的重复工作与低效. 先来看看Maven的功能 ...
- 使用Maven构建Web项目的目录结构
1.Web项目的目录结构 基于Java的Web项目,标准的打包方式是WAR.与JAR比较,包含更多的内容,比如JSP文件.Servlet.Java类.web.xml配置文件.依赖JAR包.静态 ...
随机推荐
- Android Media应用开发
Java层API : AudioRecord 采集音频(PCM格式)AudioTrack 播放音频 Camera 用来采集摄像头的数据Surface / SurfaceView / GLSurface ...
- web框架详解之tornado 一 模板语言以及框架本质
一.概要 Tornado 是 FriendFeed 使用的可扩展的非阻塞式 web 服务器及其相关工具的开源版本.这个 Web 框架看起来有些像web.py 或者 Google 的 webapp,不过 ...
- 算法(Algorithms)第4版 练习 1.5.24
package com.qiusongde; import edu.princeton.cs.algs4.StdOut; public class Exercise1524 { public stat ...
- CSS3按钮效果制作
CSS3按钮效果制作 首先附上效果图,按下去有一种下沉的效果, 未按效果 按下去效果 原理:第一个按钮相对比较简单,就直接是一个双重阴影效果,然后鼠标按下去让他的margin-top值为-3px,阴影 ...
- POJ 2728 Desert King:最优比率生成树
题目链接:http://poj.org/problem?id=2728 题意: 给你n个点(x,y,z),让你求一棵生成树,使得 k = ∑ |z[i]-z[j]| / ∑ dis(i,j)最小. | ...
- 11 Python 文件操作
文件操作基本流程 计算机系统分为:计算机硬件,操作系统,应用程序三部分. 我们用python或其他语言编写的应用程序若想要把数据永久保存下来,必须要保存于硬盘中,这就涉及到应用程序要操作硬件,众所周知 ...
- JavaUtil_07_HttpUtil_使用Hutool 封装的 HttpUtil
二.参考资料 1.[Hutool]Hutool工具类之Http工具——HttpUtil
- 51nod 1829(函数)
题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1829 本题目相当于: n个不同的小球,放入到m个可区分的盒子 ...
- zoj1360/poj1328 Radar Installation(贪心)
对每个岛屿,能覆盖它的雷达位于线段[x-sqrt(d*d-y*y),x+sqrt(d*d+y*y)],那么把每个岛屿对应的线段求出来后,其实就转化成了经典的贪心法案例:区间选点问题.数轴上有n个闭区间 ...
- os.path