Android开发学习之路--Android Studio项目目录结构简介

<div id="article_content" class="article_content tracking-ad" data-mod="popu_307" data-dsm="post">


<p><span style="font-size:18px"><span style="font-family:SimSun">&nbsp; &nbsp; &nbsp; 既然已经搭建好环境了,那就对Android Studio中项目目录结构做个简单的了解了,这里以最简单的Hello工程为例子,新建好工程后看如下三个工程视图:</span></span></p>
<p><span style="font-size:18px"><strong><span style="font-family:SimSun">1、Android工程</span></strong></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun"><img src="https://img-blog.csdn.net/20160127215211688?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt=""><br>
</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun">manifests:</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;AndroidManifest.xml:APP的配置信息</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun">java:主要为源代码和测试代码</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun">res:主要是资源目录,存储所有的项目资源</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun">&nbsp; &nbsp; &nbsp; &nbsp; drawable:存储一些xml文件,-*dpi表示存储分辨率的图片,用于适配不同的屏幕。</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;-mdpi:320x480</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;-hdpi:480x800、480x854</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;-xhdpi:至少960x720</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;-xxhdpi:1280x720</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun"><span style="white-space:pre"></span>&nbsp; &nbsp; &nbsp; &nbsp; layout:存储布局文件</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun">&nbsp; &nbsp; &nbsp; &nbsp; mipmap:存储原声图片资源</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun">&nbsp; &nbsp; &nbsp; &nbsp; values:存储app引用的一些值</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;- colors.xml: &nbsp;存储了一些color的样式</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;- dimens.xml:存储了一些公用的dp值 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;- strings.xml: 存储了引用的string值</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;- styles.xml: &nbsp; 存储了app需要用到的一些样式</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Gradle Scripts:build.gradle为项目的gradle配置文件</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun"><br>
</span></span></p>
<p><span style="font-size:18px"><strong><span style="font-family:SimSun">2、Project工程</span></strong></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun"><img src="https://img-blog.csdn.net/20160127215243470?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt=""></span></span></p>
<p><span style="white-space:pre-wrap"><span style="font-size:18px"><span style="font-family:SimSun"><br>
</span></span></span></p>
<p><span style="white-space:pre-wrap"><span style="font-size:18px"><span style="font-family:SimSun">build:系统生成的文件目录,最后生成的apk文件就在这个目录,这里是app-debug.apk</span></span></span></p>
<p><span style="color:inherit; background-color:transparent; white-space:pre-wrap"><span style="font-size:18px"><span style="font-family:SimSun">libs:为项目需要添加的*.jar包或*.so包等外接库</span></span></span></p>
<p><span style="white-space:pre-wrap"><span style="font-size:18px"><span style="font-family:SimSun">src:项目的源代码,其中android test为测试包,main里为主要的项目目录和代码,test为单元测试代码</span></span></span></p>
<p><span style="white-space:pre-wrap"><span style="font-size:18px"><span style="font-family:SimSun"><br>
</span></span></span></p>
<p><span style="font-size:18px"><strong><span style="font-family:SimSun">3、Packages工程</span></strong></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun"><img src="https://img-blog.csdn.net/20160127215320186?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt=""><br>
</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun"><br>
</span></span></p>
<p><span style="font-size:18px"><strong><span style="font-family:SimSun">4、AndroidManifest.xml</span></strong></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun"><img src="https://img-blog.csdn.net/20160128082808313?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt=""><br>
</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun">&nbsp; &nbsp; AndroidManifext描述了package中暴露的组件像activity,serveice等,他们各自的实现类,各种能被处理的数据和启动位置。此外还能声明程序中的contentproviers,intentreceivers,还能指定permissions和instrumentation等等。</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun">&nbsp; &nbsp; xmlns:android:定义android的命名空间。</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun">&nbsp; &nbsp; package:指定本应用内java主程序的包名,这里就是com.example.jared.hello了。</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun">&nbsp; &nbsp; application:声明了每一个应用程序的组件及其属性。</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun">&nbsp; &nbsp; android:allowBackup:将程序加入到系统的备份和恢复架构中。</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun">&nbsp; &nbsp; android:icon:显而易见表示APP的图标了。</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun">&nbsp; &nbsp; android:label:许可列表。</span></span></p>
<p><span style="font-family:SimSun"><span style="font-size:18px">&nbsp; &nbsp; android:supportsRtl:启用各种RTLAPI来用RTL布局显示应用,这个是android4.2的新特性。</span><span style="font-size:18px">&nbsp; &nbsp; &nbsp;android:theme:android的主题。</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun">&nbsp; &nbsp; activity:android:name表示当前的activity的名字,因为工程为MainActivity,所以这个名字就为这个,之后有新的activity的话,也需要添加才可以使用。</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun">&nbsp; &nbsp; intent-filter:包含了action,data和category三种。</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; action:只有android:name属性,常见的是android.intent.action.MAIN,表示此activity是作为应用程序的入口。 &nbsp;</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; data:指定了希望接受的intent请求的数据URI和数据类型。</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; category:android:name属性,常见的是android.intent.category.LAUNCHER,决定应用程序是否显示在程序列表里。</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun">&nbsp; &nbsp; 关于本应用的manifest基本上没啥问题了,以后遇到了别的google查阅就好。</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun"><br>
</span></span></p>
<p><span style="font-size:18px"><strong><span style="font-family:SimSun">5、layout的activity_main.xml</span></strong></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun"><img src="https://img-blog.csdn.net/20160128093754378?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt=""><br>
</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun">RelativeLayout:相对布局。</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun">xmlns:android定义:android命名空间。</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun">xmlns:tools:tools命名空间,用来预览一些布局属性的添加喝删除后的效果。</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun">android:layout_width:指定了控件的宽度,可选择match_parent,fill_parent,wrap_content,其中match_parent和fill_parent的意思相同,官方更加推荐使用match_parent。match_parent表示让当前控件的大小和父布局的大小一样,也就是由父布局来决定当前控件的大小。wrap_content表示让当前控件的大小能够刚好包含住里面的内容,也就是由控件内容决定当前控件的大小。</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun">android:layout_height:同上。</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun">android:paddingLeft,android:paddingRight,android:paddingTop,android:paddingBottom:站在父view的角度描述问题,它规定它里面的内容必须与这个父view边界的距离。此外还有margin,它是站在自己的角度描述问题,规定自己喝其他的view之间的距离,如果同一级只有一个view,那么它的效果基本上就和padding一样了。</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun">TextView:android的控件。</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:text:textview显示的内容,这里就是hello world了。</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun">&nbsp; &nbsp;至此,androd的layout简单介绍了下,至于之后遇到的种种,google等着你。</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun"><br>
</span></span></p>
<p><span style="font-size:18px"><strong><span style="font-family:SimSun">6、MainActivity.java</span></strong></span></p>
<p><span style="font-family:SimSun"><span style="font-size:18px"></span></span></p>
<pre style="background-color:rgb(43,43,43); color:rgb(169,183,198)"><span style="font-size:18px"><span style="font-family:SimSun"><span style="color:#cc7832">package </span>com.example.jared.hello<span style="color:#cc7832">;
</span><span style="color:#cc7832">
</span><span style="color:#cc7832">import </span>android.support.v7.app.AppCompatActivity<span style="color:#cc7832">;
</span><span style="color:#cc7832">import </span>android.os.Bundle<span style="color:#cc7832">;
</span><span style="color:#cc7832">
</span><span style="color:#cc7832">public class </span><span style="background-color:#344134">MainActivity</span> <span style="color:#cc7832">extends </span>AppCompatActivity {


    <span style="color:#bbb529">@Override
</span><span style="color:#bbb529">    </span><span style="color:#cc7832">protected void </span><span style="color:#ffc66d">onCreate</span>(Bundle savedInstanceState) {
        <span style="color:#cc7832">super</span>.onCreate(savedInstanceState)<span style="color:#cc7832">;
</span><span style="color:#cc7832">        </span>setContentView(R.layout.<span style="color:#9876aa"><em>activity_main</em></span>)<span style="color:#cc7832">;
</span><span style="color:#cc7832">    </span>}
}
</span></span></pre>
<span style="font-size:18px"><span style="font-family:SimSun">&nbsp; &nbsp; 通过上面的介绍,应该不难理解这段代码了。首先MainActivity继承了AppCompatActivity,最后还是继承Activity。</span></span>
<p></p>
<p><span style="font-family:SimSun"><span style="font-size:18px"></span></span></p>
<pre style="background-color:rgb(43,43,43); color:rgb(169,183,198)"><span style="font-size:18px"><span style="font-family:SimSun"><span style="color:#cc7832">public class </span><span style="background-color:#344134">AppCompatActivity</span> <span style="color:#cc7832">extends </span>FragmentActivity</span></span></pre>
<p></p>
<p><span style="font-family:SimSun"><span style="font-size:18px"></span></span></p>
<pre style="background-color:rgb(43,43,43); color:rgb(169,183,198)"><span style="font-size:18px"><span style="font-family:SimSun"><span style="color:#cc7832">public class </span>FragmentActivity <span style="color:#cc7832; background-color:#344134">extends</span><span style="color:#cc7832"> </span>BaseFragmentActivityHoneycomb</span></span></pre>
<p></p>
<p><span style="font-family:SimSun"><span style="font-size:18px"></span></span></p>
<pre style="background-color:rgb(43,43,43); color:rgb(169,183,198)"><span style="font-size:18px"><span style="font-family:SimSun"><span style="color:#cc7832">abstract class </span>BaseFragmentActivityHoneycomb <span style="color:#cc7832">extends </span>BaseFragmentActivityDonut</span></span></pre>
<pre style="background-color:rgb(43,43,43); color:rgb(169,183,198)"><span style="font-size:18px"><span style="font-family:SimSun"><span style="color:#cc7832"></span></span></span></pre>
<p></p>
<pre style="background-color:rgb(43,43,43); color:rgb(169,183,198)"><span style="font-size:18px"><span style="font-family:SimSun"><span style="color:#cc7832">abstract class </span>BaseFragmentActivityDonut <span style="color:#cc7832">extends </span><span style="background-color:#344134">Activity</span> {
</span></span></pre>
<p><span style="font-size:18px"><span style="font-family:SimSun">&nbsp; &nbsp; 然后再看下onCreate方法,这个是android的一个设计模式ioc,android的架构基本上就是用了这个模式。用户看不到onCreate之前干了什么,只要完成这个函数,并且在里面调用需要调用的东西即可。</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun">super.onCreate方法是调用父类的onCreate方法,然后setContentView方法就是为当前的activity引入了一个activity_main的布局,这个布局上述已经有了介绍。</span></span></p>
<p><span style="font-size:18px"><span style="font-family:SimSun"><span style="white-space:pre"></span>&nbsp; &nbsp; 好了,关于Android Studio的项目工程简单的介绍就在这里了。</span></span></p>
   
</div>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值