Android Studio 项目目录结构

Android 平台的主要组件

        使用Android Studio工具开发Android应用程序,创建的工程目录结构比较复杂,开发人员应该清楚各个目录下面放置的是什么东西。工程根目录下有app和Gradle Scripts,app是应重点关注的,app下面的主要目录有manifests、java和res。

        manifests目录中的AndroidManifest.xml是当前Android应用程序的清单文件,记录应用中所使用的各种组件,java是Java源代码目录,res是资源目录。

R.java

        访问res目录中的资源文件,并不能通过Java IO技术实现,而是通过R.java文件访问。R.java文件是在工程编译时候自动产生的R类。

        R类中包含很多静态类,且静态类的名字都与res中的一个目录名字对应,就像是资源字典大全,包含了用户界面、图像、字符串等对应于各个资源的标识符,R类定义了该项目所有资源的索引。例如,在程序代码中访问activity_main.xml布局文件,可以通过表达式R.layout.activity_main访问。

        R类还可以访问界面中的视图,如果视图在布局文件中定义id属性,类似代码"android:id="@+id/btn_1",那么在程序代码中就可以通过R.id.btn_1表达式访问该视图。

        R.java文件路径:Android列表视图下是看不到的,要想找到R文件,就要把项目列表视图切换成Project模式。然后依次点击-->app-->build-->generated-->source-->r-->debug,在debug下的两个选项的子文件中分别有一个R文件,这就是你想要找的R文件(Android Studio高版本就找不到定能找到)。

资源目录(res)

        资源是指代码使用的附加文件和静态内容,例如位图、布局定义、界面字符串、动画说明等。

        将各类资源放入项目res/目录的特定子目录中。例如,以下是一个简单项目的文件层次结构:

        drawable:位图文件(png(推荐)、9.png(推荐)、jpg(可用)、gif(不推荐使用))或XML文件,这些文件编译成以下绘制资源。

        layout:定义用户界面布局的XML文件(定义了Activity或UI组件中的UI的体系结构。)

        mipmap:不同启动器图标密度的可绘制文件(png(推荐)、jpg(可用)、gif(不推荐使用))。

        values:参数值目录,存放软件所需要显示的各种文字和一些数据。可以在这个目录下的strings.xml中存放各种文字,还可以存放不同类型的数据,例如colors.xml、dimens.xml和styles.xml等。

        注意:切勿将资源文件直接保存在res/目录内,因为这样会造成编译错误。

drawable和mipmap的区别:

        drawable:图标有固定的尺寸。

        drawable:9-Patch图片和Shape资源文件只能放在drawable目录中

        mipmap:需要适应屏幕分辨率的图片推荐放在mipmap目录中,可以提高显示性能、占用内存少。

        mipmap:系统会对其缩放进行一些性能的优化.图片会更加美观.

        注意:切勿将资源文件直接保存在 res/ 目录内,因为这样会造成编译错误。

清单文件AndroidMainfest.xml

        每个应用项目必须在项目源设置的根目录中加入AndroidManifest.xml文件(且必须使用此名称)。清单文件会向Android构建工具、Android操作系统和Google Play描述应用的基本信息。

声明应用组件如:

        声明应用必须具备的权限,例如应用中使用到的服务权限(如GPS服务、互联网服务和短信服务等等)。

        声明应用所需的最低Android API级别。

        1、声明应用的Java源代码包名,包名(如com.scc.demo)非常重要,它是应用的唯一标识符。

        2、描述应用中的组件,即Activity (活动) 、Service(服务)、Broadcast Receiver (广播接收器)和Content Provider (内容提供者)。

        3、声明应用必须具备的权限,例如应用中使用到的服务权限(如GPS服务、互联网服务和短信服务等等)。

        4、声明安全控制和测试等信息

        注意:在Android Studio工程中,AndroidManifest.xml位于manifests根目录下;而在操作系统(如Windows的资源管理器)中,AndroidManifest.xml位于应用的根目录下。

AndroidManifest.xml文件代码如下:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.scc.demo">
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.Demo">
        <activity
            android:name=".actvitiy.RadioButtonActivity"
            android:configChanges="orientation|screenSize"
            android:launchMode="standard">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="com.scc.demo.actvitiy.RedActivity"
           >
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data
                    android:host="scc"
                    android:path="/redActivity"
                    android:port="2021"
                    android:scheme="sccdemo" />
            </intent-filter>
        </activity>
        <service android:name=".service.StartService"/>
        <service android:name=".service.BindService"/>
        <activity
            android:name="com.scc.demo.actvitiy.BlueActivity"
            android:launchMode="standard" />
    </application>

</manifest>

Android Units 单位

        Android UI 设计过程中给 UI 控件添加宽高和定位都需要用到距离,有需求就有内容,丈量的单位,就产生了。

        Android 中支持 5 种单位类型

单位说明
dpdevice independent pixels(设备独立像素) 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持 WVGA、HVGA 和 QVGA 推荐使用这个,不依赖像素
pxpixels(像素). 不同设备显示效果相同,一般 HVGA 代表 320x480 像素,这个用的比较多
ptpoint,是一个标准的长度单位,1pt=1/72 英寸,用于印刷业,非常简单易用
spscaled pixels(放大像素). 主要用于字体显示
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

帅次

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值