Android 入门/项目结构(二)

Android(二)安卓项目结构 文章目录项目结构简单演示 在安卓了IDE、SDK和安卓虚拟设备(AVD)后, new 一个安卓项目,选定SDK版本(我的是29 AndroidQ), 打开新建项目的窗口后,立即修改。。\projects\项目名称\gradle\wrapper\gradle-wrapper.properties文件中的distributionUrl=file:///E:/.../本地gradle安装目录,不然它会下载一个新的。 或者打开Build=》gradle,在右边页面的gradle projects配置当前项目为本地 阅读详情

【Android项目结构】

@描述:通过描述新建项目hello world熟悉Android项目结构

1. 让我们看一下我们新建的项目是怎样的

(1)【src文件夹】里是源文件

(2)【Android 2.2】是引用的类库

(3)【gen文件夹】里面的类是ADT自动生成的,一般只有R.java文件,并且这个R.java文件不能修改 .

                  Q :  那么R.java文件是怎么生成的呢?

                  A :   R.java根据资源文件夹res生成,R.java中存放的是res中资源文件的索引. 用一个常量标记res的资源文件的好处是便于我们在代码中引用!

如果你创建的gen文件夹下没有R.java文件,可以参考解决.

2. 现在让我们去看一下【res资源文件夹】,这下面又有drawable_hdpi,drawable_ldpi,drawable_mdpi,drawable_xhdpi,layout,menu,values,values-large这些文件夹.

看到 drawable_??dpi,我们很容易会联想到这里可能是对应不同密度(dpi)的图片,猜测一下它的全写可能是这样的 hdpi => hign ,ldpi => low , mdpi => medium 那么这里的xhdpi是什么呢?

原来是extra hign!!  一般情况下的普通屏幕:ldpi是120,mdpi是160,hdpi是240,xhdpi是320。

3.【layout文件夹】中存放的是布局文件,Android支持通过XML生成视图,这样的好处是 视图与 逻辑的分离,便于管理更好的实现了MVC模式。

4.【value文件夹】中存放是我们常用的字符串,颜色,数组等。

5.【AndroidManifest.xml】是android的项目的配置文件,且一个项目有且只有一个配置文件. 我们可以在这里配置应用的属性,定义Activity,声明使用权限.


二. 现在我们具体来看项目Code

1. Hello world类

public class HelloWorld extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}
这里HelloWorld类继承了Activity类 .

Q : 那么什么是Activity ?

A : 我们可以想象成手机屏幕,那么继承Activity类的目的,是为了将Hello World输出在屏幕上.

接着onCreate()方法,这个方法的作用是初始化Activity.调用父类的构造,setContentView()方法将layout文件夹下面的main.xml布局文件作为主屏幕展示出来.

这里的R.layout.main 是main.xml在R类的索引. 通过R类的索引我们能更方便引用这个文件.

2. main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
</LinearLayout>

<?xml version="1.0" encoding="utf-8"?>
定义版本号,以及编码

LinearLayout 是【五种布局】中的【线性布局】

android:oruentation = "vertical" 设置当前为垂直布局 .

就像这样显示:

1

2

3

对应的水平布局是:android:oruentation = "horizontal"

layout_width,layout_height 是分别设置布局的长宽. 当设定为 fill_parent 即会填充满整个父类空间,即这里的整个屏幕控件.

当我们不需要填充满整个空间的时候,我们可以设置为wrap_content, 按照内容来填充 .

android:text="@string/hello" , android:text =" "是文本视图的填充文字. 就像我们熟悉的html里的text,我们可以直接在这里写上字符串,像这样

android:text =" 文字文字文字",但是不推荐这样做 . android使用 @string/hello这样的引用方式,我们可以在string.xml文件中找到hello这个声明.

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, HelloWorld!</string>
    <string name="app_name">HelloWorld</string>
</resources>

这样做的好处便于我们对字符的管理和对国际化有很大的意义.

三. AndroidManifest.xml 配置文件

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.cjq_ui"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".HelloWorld"
                  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>
    <uses-sdk android:minSdkVersion="8" />

</manifest>


我们用这样的方式展示

Line     /   Description

Line 1   / 这里xmlns: android 是什么?它后面的值可以任意设置吗?

xmlns: android 是XML中的命名空间,为了防止冲突类似于Java中的Package ,xmlns: android不允许被任意设置,

它的值必须是http://schemas.android.com/apk/res/.. 后面的部分表示R.java所在的包名,所以当我们使用系统属性,需要指定R.java的位置

Line 2  /  package = "com.cjq_ui" 定义了该应用的包

Line 3.4/  定义了应用的版本号 和版本名字

Line5   /应用的图标 以及 应用的名称

Line 6 / 定义了Activity,每个Activity都必须在这里定义 ,否则无法使用 .

Line 7 / Android:name 定义了 Activity 的类名 , 这里的 .HelloWorld 是以上面的 Package 定义为基础的,也就是 Package(com.flysnow) 加上这个 android:name(.HelloWorld) 要能定位到这个 Activity(com.flysnow.HelloWorld) ,否则就是找不到 .

Line 8 / 定义了Avtivity的标题

最后的 <uses-sdk android:minSdkVersion="8" /> 就是定义应用的最低 SDK 的级别


同为初学者, 欢迎大家留下批评与建议..








Android项目结构讲解【超详细】 本文主要讲解Android的Project查看模式和Android查看模式下的项目结构与Gradle的相关配置 阅读详情

相关推荐

Android studio2024的第一个安卓项目

解决方法:首先查看连接的设备查看是否使用了自定义布局查看安装的包使用构建 Android 应用调试版本的命令我是用构建时发现了问题:Java compiler version 23 has deprecated support for compiling with source/target version 8.(即java版本为23,不适用于目标版本8)璀﹀憡: [options] 婧愬€?8 宸茶繃鏃讹紝灏嗗湪鏈潵鍙戣鐗堜腑鍒犻櫎璀﹀憡: [options] 鐩爣鍊?

m0_69115733的博客 1865

【Android】从零搭建组件化项目

什么是组件化?组件化是什么?组件化在Android上应该如何去使用?关于这些问题,你真的了解吗?

宾有为的博客 1180

什么是Android逆向?如何学习安卓逆向?Android逆向自学笔记入门到实战

*其实上面说了这么多,钱是永远赚不完的,在这个知识付费的时代,知识技能提升才是是根本!我作为一名8年的高级工程师,知识技能已经学习的差不多。**在看这篇文章的可能有刚刚入门,刚刚开始工作,或者大佬级人物。像刚刚开始学Android开发小白想要快速提升自己,最快捷的方式,就是有人可以带着你一起分析,这样学习起来最为高效,所以这里分享一套高手学习的源码和框架视频等精品Android架构师教程,保证你学了以后保证薪资上升一个台阶。这么重要的事情说三遍啦!

2401_84149875的博客 2646

【Android入门到项目实战--3.2】—— 详解4种基本布局(线性布局、相对布局、帧布局、百分比布局)

LinearLayout又称线性布局,是非常常用的布局,此布局将它所包含的控件在线性方向上依次排列,其下面尝试演示。改变orientation属性为horizontal后效果如下:1、下面加入新属性尝试一下。,而android:gravity指定文字在控件中的对齐方式。2、android:layout_weight属性这个属性允许我们使用比例的方式来指定控件大小,在手机屏幕的适配性方面起到重要作用。下面尝试实现:编写一个消息发送界面。

个人博客 2337

快速入门Android开发的必备基础项目

在Android开发中,资源文件是应用中不可或缺的部分,它们被存放在项目的res/目录下。资源文件通常分为以下几类:布局文件layout/): 包含了用户界面布局的XML文件。菜单文件menu/): XML文件定义了应用中的菜单项。值资源文件values/): 包括字符串()、颜色(colors.xml)、尺寸(dimens.xml)、样式(styles.xml)等。图像资源drawable/

weixin_42402664的博客 736

0基础Android入门项目

实现了登录,记住账号密码,自定义标题栏,实现类似QQ的底部标题栏,实现ListView以及RecyclerView消息对话UI,适合刚入门的学习Android

2022 最新 Android 基础教程,从开发入门到项目实战【b站动脑学院】学习笔记——第三章:简单控件

2022 最新 Android 基础教程,从开发入门到项目实战【b站动脑学院】学习笔记——第三章:简单控件

weixin_43895667的博客 3337

ROS2 Control实战:多机器人仿真与控制器管理

本文详细介绍了ROS2 Control在多机器人仿真中的应用,涵盖命名空间配置、控制器管理及性能优化。通过Gazebo仿真环境和ROS2 Control框架,开发者可以高效管理多个机器人的硬件抽象和控制器,实现资源隔离与平滑切换。文章还提供了常见问题排查和调试工具推荐,助力机器人开发实践。

u9v0w的博客 203

Android基础教程(非常详细)从零基础入门到精通,看完这一篇就够了

网络安全行业产业以来,随即新增加了几十个网络安全行业岗位︰网络安全专家、网络安全分析师、安全咨询师、网络安全工程师、安全架构师、安全运维工程师、渗透工程师、信息安全管理员、数据安全工程师、网络安全运营工程师、网络安全应急响应工程师、数据鉴定师、网络安全产品经理、网络安全服务工程师、网络安全培训师、网络安全审计员、威胁情报分析工程师、灾难恢复专业人员、实战攻防专业人员…其中,本科计算机类专业起薪与2021届基本持平,高职自动化类月收入增长明显,2022届反超铁道运输类专业(5295元)排在第一位。

wangluoanquan111的博客 2万+

hcaptcha无感验证码逆向实战:从接口分析到环境补全

本文详细解析了hcaptcha无感验证码的逆向实战过程。通过分析核心接口与加密逻辑,重点介绍了采用环境补全策略来模拟真实浏览器环境,从而绕过验证码检测。文章提供了从接口抓包、剖析hsw.js加密核心到使用Node.js搭建模拟环境的完整步骤,为自动化操作提供了一种稳健的解决方案。

weixin_29324401的博客 1156

M1/M2 Mac用户看过来:不装VirtualBox,用PD虚拟机也能跑ENSP的保姆级教程

本文为M1/M2 Mac用户提供了一份不依赖VirtualBox,使用Parallels Desktop虚拟机运行ENSP的详细指南。通过ARM架构的Win10镜像选择、组件替代方案和网络配置优化,实现ENSP核心功能的高效运行,特别适合网络工程师在苹果芯片设备上进行网络模拟。

weixin_28683065的博客 413

Android Studio目录结构介绍, 安卓开发入门

安卓学习:Android Studio目录结构 刚刚开始学Android开发, 来分享一下Android Studio 项目的目录结构 这是刚刚创建完项目的样子 任何一个新建的项目都会默认使用Android模式的项目结构, 但这并不是项目最真实的目录结构, 而是被Android Studio转换过来的, 这种项目结构简洁明了,适合进行快速开发,但是对于新手来说可能并不易于理解。 点击图片中Android区域可以切换项目结构模式. 这里我们项目结构切换为Project, 这就是最真实的目录结构 这里开始

天行健 君子以自强不息,地势坤 君子以厚德载物。 5578

(十二)深入理解蓝牙BLE之“移植Bluez 5.18源码到嵌入式平台”

在某嵌入式平台进行蓝牙开发,发现上面居然没有btmon,hciattach,hcitool等蓝牙调试工具,无奈之下,只好移植bluez协议栈到目标嵌入式平台,建议移植5.18版本(最新的5.54版本居然hcitool等工具不是默认编译的,需要修改Makefile才可以)。 看到很多讲解移植过程的文章都是需要积分的,觉得写一篇免积分的文章还是有些意义的,欢迎同行来交流。 移植环境:Linux ubuntu 目标平台:sigmastar 星宸科技 配置交叉编译工具链:export PATH=$PATH:

2965

【Android Studio】基础入门(二)—— Android 项目结构模式

在上一节中,我们创建了安卓小程序,配置好了虚拟机并在虚拟机上运行了创建的小程序,今天我们来研究一下项目结构模式。

Ceylan__的博客 2228

微信小程序推广策略,打开小程序领域流量大门

本文旨在为小程序开发者、运营者和企业主提供一套完整的微信小程序推广策略体系,帮助他们在竞争激烈的小程序生态中获得更多流量和用户。内容涵盖从0到1的冷启动策略,到成熟期的增长技巧。本文将首先介绍小程序的基础推广设置,然后深入探讨各种流量获取渠道,接着分析数据驱动的优化方法,最后展望未来发展趋势。小程序:无需下载安装即可使用的应用,运行在微信生态内:独立访客数:页面浏览量转化率:完成目标行为的用户比例留存率:用户在一定时间后仍活跃的比例自然流量获取:通过优化搜索、完善资料等方式获得基础流量社交裂变。

小程序开发 1031

语义分割(Semantic Segmentation)近年发展综述

目标:为图像中每个像素分配一个语义类别标签(如“道路”、“行人”、“天空”),不区分同类实例。关键挑战精确边界恢复(高空间分辨率)全局上下文理解(大感受野)计算效率与精度平衡小样本/弱监督泛化语义分割的十年演进,是一条从专用→通用、封闭→开放、慢速→实时、像素→语义2015:FCN/U-Net 奠基;2018:DeepLabv3+/PSPNet 实现高精度;2020:HRNet+OCR 登顶竞赛;2021:SegFormer 开启 Transformer 新纪元;2023+

浩瀚之水的专栏 978

安卓入门第一课——了解安卓项目结构

通过建立一个项目,了解安卓项目结构一、为什么要了解安卓项目的结构二、明确一个共识:**界面布局和逻辑分离**1.先回顾一下如何创建一个项目:2.如何编写布局三、项目结构 一、为什么要了解安卓项目的结构 大家都听说过庖丁解牛的故事吧,当一个厨师达到登峰造极的地步,他对于牛的身体结构是了如指掌的。同样的道理,当我们接触一门工具,首先就要了解这个工具怎么用,它的哪一部分是什么作用,这个工具的快捷键有哪些,我们应该如何高效的使用它。这样一来你进行学习的时候才能事半功倍。 二、明确一个共识:界面布局和逻辑分离

江天飞鸟的博客 1206

FCC 首个扫地机器人豁免落地,Matic 凭什么抢先?

Matic获FCC首个扫地机器人豁免,实为提前布局的合规姿态。其产品在美国组装,并采用已认证射频模组,虽未达65%美国成分门槛,但已具备“本土制造”优势。豁免本质是对既有合规状态的确认,而非解救。此举在商业上放大品牌价值,抢占“安全、合规、本土”叙事高地,凸显供应链安全正取代技术标准成为监管核心。未来合规成本将攀升,规则主导权仍在FCC手中。

致力于lidar应用开发 100

Android—项目结构

这两天博客更新都在草稿箱里面,争取周三晚前把他们发出来!嘿嘿嘿。 上上周面试了一家公司,其中有个问题就是问我Android的项目结构,挺简单的一个问题,但是当时讲得不太好,所以我这里来总结一下! 一般常用的项目结构有Android模式和Project模式,Android模式是经过as转换过的,不是真实的项目结构,但是便于开发,很容易找到经常用的那几个文件夹。 切换到Project结构模式: ...

xqy3177563的博客 6486

回答网友提问:Word 里如何调用 DeepSeek API?

上面的 Visual Basic 定义了名叫 DeepSeekV3 的 subroutine,同理我们可以让 Trae 再写一个调用开启了 DeepThink(R1) 模式的 DeepSeek API,步骤类似,这里不再赘述。在 Word 的 File->Options 选项里,选择 Customize Ribbon,将 Developer 标签从左侧移到右侧,然后在 Developer 标签下新建一个 Group,随便起个名称。API 调用的 response,自动填充到了 Word 里。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 278

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

安卓Android入门

Android基于Linux内核,这使得它具有强大的硬件兼容性和稳定性。

m0_74154295的博客 2282

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

AndroidStudio——安卓项目结构与文件介绍

主要说明了本项目的名称,所包含的子项目,以及本项目仓库的位置等。简单来说,Gradle是运行于JVM中的一个用于自动构建项目的程序,目前安卓将其作为官方的构建程序,且Springboot也逐渐支持Gradle。在主目录/根目录下的build.gradle也是gradle的配置文件,主要说明了本项目所需的依赖包、Kotlin/SDK的版本等信息。例如如果一个2*2的网格布局中,所有控件的比重都为1,则将均分父控件。从安卓中的类的角度来看,控件就是view类的对象,布局就是viewgroup类的对象。

2301_79188932的博客 3064

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Android项目结构

Android项目结构 新建个空的安卓项目,打开,切换到project模式: 一、工程结构 1/ .gradle和.idea 这两个目录下都是AS自动生成的,无须关心,也不要手动编辑。 2/ app 项目中的代码、资源等几乎都在这里,后面开发也基本在这里,等下细谈这里。 3/ gradle 这个目录下包含gradle wrapper的配置文件,使用gradle wrapper的方式不需要提前将gradle下载好,而是会自动根据本地的缓存情况决定是否需要联网下载gradle。 AS默认没有启用gradle

鳄鱼泪的博客 3412

Android Kotlin 基础入门项目结构及使用说明

项目 `android-kotlin-fundamentals-starter-apps` 是由 Google 开发者培训团队提供的,用于学习 Android 开发基础课程的起始代码库。以下是项目的目录结构及其简要介绍: ``` android-kotlin-fundamentals-starter-apps/ ├── AboutMeDataBinding-Starter ├── AboutMe...

gitblog_01091的博客 730

Android Studio安卓学习笔记(二)Android项目结构

上一篇代码,我们学习了Android的功能以及如何用Android Studio开发第一个安卓程序。下面就要介绍Android项目结构。为日后学习打基础。 一:Android项目结构 打开MyFristApp,可以看到如下项目目录和文件结构: 这里对app模块下的文件进行介绍。 1.manifests 其下的AndroidMainfest.xml为项目的配置信息文件: ...

weixin_30411997的博客 317

Android开发-Android项目结构

文章目录前言一、Gradle1.1什么是Gradle?1.2Gradle是一个构建工具,那么为什么要用构建工具?二、项目结构三、app目录结构四、res目录结构总结 前言 Android工程的项目结构比较复杂,在进行Android开发前必须对Android项目的工程结构有一个清晰的认识,这样才能在开发道路上走的轻松。 一、Gradle 1.1什么是Gradle? Gradle是一种依赖管理工具,基于Groovy语言,面向Java应用为主,它抛弃了基于XML的各种繁琐配置,取而代之的是一种基于Groovy

qq_52173163的博客 5797
上一篇: Android入门/架构(一)
下一篇: Android入门/Activity生命周期(三)
多格AI零代码
博客等级 码龄15年 40粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值