首页 > 其他分享 >Android开发学习之路--Android Studio项目目录结构简介

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

时间:2023-01-15 16:07:16浏览次数:49  
标签:xml 控件 存储 parent -- Studio activity Android android


      既然已经搭建好环境了,那就对Android Studio中项目目录结构做个简单的了解了,这里以最简单的Hello工程为例子,新建好工程后看如下三个工程视图:

1、Android工程

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

manifests:

         AndroidManifest.xml:APP的配置信息

java:主要为源代码和测试代码

res:主要是资源目录,存储所有的项目资源

        drawable:存储一些xml文件,-*dpi表示存储分辨率的图片,用于适配不同的屏幕。

                           -mdpi:320x480

                           -hdpi:480x800、480x854

                           -xhdpi:至少960x720

                           -xxhdpi:1280x720

        mipmap:存储原声图片资源

        values:存储app引用的一些值

                     - colors.xml:  存储了一些color的样式

                     - dimens.xml:存储了一些公用的dp值                       

                     - strings.xml: 存储了引用的string值

                     - styles.xml:   存储了app需要用到的一些样式

         Gradle Scripts:build.gradle为项目的gradle配置文件


2、Project工程

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


build:系统生成的文件目录,最后生成的apk文件就在这个目录,这里是app-debug.apk

libs:为项目需要添加的*.jar包或*.so包等外接库

src:项目的源代码,其中android test为测试包,main里为主要的项目目录和代码,test为单元测试代码


3、Packages工程

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


4、AndroidManifest.xml

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

    AndroidManifext描述了package中暴露的组件像activity,serveice等,他们各自的实现类,各种能被处理的数据和启动位置。此外还能声明程序中的contentproviers,intentreceivers,还能指定permissions和instrumentation等等。

    xmlns:android:定义android的命名空间。

    package:指定本应用内java主程序的包名,这里就是com.example.jared.hello了。

    application:声明了每一个应用程序的组件及其属性。

    android:allowBackup:将程序加入到系统的备份和恢复架构中。

    android:icon:显而易见表示APP的图标了。

    android:label:许可列表。

    android:supportsRtl:启用各种RTLAPI来用RTL布局显示应用,这个是android4.2的新特性。     android:theme:android的主题。

    activity:android:name表示当前的activity的名字,因为工程为MainActivity,所以这个名字就为这个,之后有新的activity的话,也需要添加才可以使用。

    intent-filter:包含了action,data和category三种。

                          action:只有android:name属性,常见的是android.intent.action.MAIN,表示此activity是作为应用程序的入口。  

                          data:指定了希望接受的intent请求的数据URI和数据类型。

                          category:android:name属性,常见的是android.intent.category.LAUNCHER,决定应用程序是否显示在程序列表里。

    关于本应用的manifest基本上没啥问题了,以后遇到了别的google查阅就好。


5、layout的activity_main.xml

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

RelativeLayout:相对布局。

xmlns:android定义:android命名空间。

xmlns:tools:tools命名空间,用来预览一些布局属性的添加喝删除后的效果。

android:layout_width:指定了控件的宽度,可选择match_parent,fill_parent,wrap_content,其中match_parent和fill_parent的意思相同,官方更加推荐使用match_parent。match_parent表示让当前控件的大小和父布局的大小一样,也就是由父布局来决定当前控件的大小。wrap_content表示让当前控件的大小能够刚好包含住里面的内容,也就是由控件内容决定当前控件的大小。

android:layout_height:同上。

android:paddingLeft,android:paddingRight,android:paddingTop,android:paddingBottom:站在父view的角度描述问题,它规定它里面的内容必须与这个父view边界的距离。此外还有margin,它是站在自己的角度描述问题,规定自己喝其他的view之间的距离,如果同一级只有一个view,那么它的效果基本上就和padding一样了。

TextView:android的控件。

                android:text:textview显示的内容,这里就是hello world了。

   至此,androd的layout简单介绍了下,至于之后遇到的种种,google等着你。


6、MainActivity.java

package com.example.jared.hello;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}


    通过上面的介绍,应该不难理解这段代码了。首先MainActivity继承了AppCompatActivity,最后还是继承Activity。

public class AppCompatActivity extends FragmentActivity
public class FragmentActivity extends BaseFragmentActivityHoneycomb
abstract class BaseFragmentActivityHoneycomb extends BaseFragmentActivityDonut
abstract class BaseFragmentActivityDonut extends Activity {

    然后再看下onCreate方法,这个是android的一个设计模式ioc,android的架构基本上就是用了这个模式。用户看不到onCreate之前干了什么,只要完成这个函数,并且在里面调用需要调用的东西即可。

super.onCreate方法是调用父类的onCreate方法,然后setContentView方法就是为当前的activity引入了一个activity_main的布局,这个布局上述已经有了介绍。

标签:xml,控件,存储,parent,--,Studio,activity,Android,android
From: https://blog.51cto.com/u_15940062/6008780

相关文章

  • Android开发学习之路--Activity之初体验
      环境也搭建好了,android系统也基本了解了,那么接下来就可以开始学习android开发了,相信这么学下去肯定可以把android开发学习好的,再加上时而再温故下linux下的知识,看看an......
  • Android开发学习之路--MAC下Android Studio开发环境搭建
       一些资源可以参考如下网站,个人觉得不错:   资源提供网站: ​​http://www.androiddevtools.cn/​​   1、下载androidstudio。  下载好之后解压缩后,打......
  • 和菜鸟一起学linux之linux性能分析工具oprofile移植
    一、内核编译选项makemenuconfigGeneralsetup--->[*]Profilingsupport<*>OProfilesystemprofiling二、popt移植      下载源码:​​http://rpm5.org/files/p......
  • 和菜鸟一起学linux之upnp协议的学习记录
    UPnP全名是UniversalPlugandPlay,主要是微软在推行的一个标准。简单的来说,UPnP最大的愿景就是希望任何设备只要一接上网络,所有在网络上的设备马上就能知道有新设备加入,这......
  • 和菜鸟一起学linux之bluez学习记录1
    关于蓝牙协议栈体系结构 底层硬件模块 RF1、利用2400M~2483.5M频带2、采用调频方式传输数据,一共有79/EDR,40/BLE个hops,每秒3、采用GFSK(DQPSK和8DPSK)调制方式4、信道间隔(1......
  • 和菜鸟一起学android4.0.3源码之wifi direct的简单分析
    关于wifidirectWifidirect的连接 下面的图表示的是wifidirect的发现过程。 整个过程可以见下图。关于android上的wifidirect首先上层通过调用p2pmanager的接口来实现......
  • 和菜鸟一起学linux之bluez学习记录2
    这里主要摘取对于hci,l2cap,sdp和rfcomm的一些应用编程。 关于hci 一、HCI层协议概述 1、HCICommandPackets详见bluez源码:lib/hci.h/*LinkControl*/#defineOGF_LINK_......
  • 和菜鸟一起学linux内核源码之基础准备篇
        注:以下大部分内容摘自linux内核编程入门篇和linux内核完全注释       在工作的这段时间,发现我的visio画图熟悉了点点,总喜欢把什么源码啊,结构啊之类的就......
  • 和菜鸟一起学android4.0.3源码之wifi的简单分析
     关于wlan的组成 关于wifi应用层的接口的调用    首先从上层androidwifi的应用开始,首先会根据android的wifimanager的类,实例化一个mwifimanager的对象,这个对象处......
  • 和菜鸟一起学OK6410之ADC模块
    android上跑起来时也比较灵敏了,GPIO模拟的SPI也可以工作了,看了会书,修正了会,回到宿舍也已经9点多了。想想,OK6410上还有个AD模块呢。网上找了找资料,发现还是可以去尝试下可不......