Android程序结构

Project方式

.gradle文件夹:编译相关生成

.idea文件夹:idea生成

app文件夹----应用程序的源代码和资源

build----编译后的文件存放的位置,最终apk文件存放的位置

libs:存放.jar和.so文件

src:AndroidTest与test存放测试相关的内容

main中Java文件夹存放Java源码,res文件存放资源文件

build.gradle为项目的gradle配置文件
在这里插入图片描述

res文件

1.AndroidManifest.xml文件:存放整个项目的配置文件,程序中定义的四大组件要在其中注册之后才能使用

2.drawable:存放图片和xml文件

3.layout:存放布局文件

4.mipmap:存放原生图片资源(一般是图标),缩放时具有性能优化

5.values:存储App引用的一些值

colors.xml存储一些color样式
dimens.xml存储一些公用的dp值
strings.xml存储引用的string值
styles.xml:存储app用到得样式
在这里插入图片描述

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<!--xmlns:android定义安卓的命名空间
package:指定本程序中Java主程序的包名-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="nsu.edu.firstcode">
<!--application:每一个应用程序的组件和属性
android:allowBackup:将程序加入系统的备份及属性中
android:icon程序普通图标
android:label:程序名称或Activity页面标题(优先级:Activity高于App)
android:roundIcon圆角图标
android:supportsRtl是为了做地区适配的,即从右向左布局
android:theme:安卓主题
android:name:当前activity的名字
android:launchMode当前activity启动模式intent-filter中包含action,data,category三种子标签,组件过滤器
action中
android:name="android.intent.action.MAIN"表示此activity作为程序的入口,应用程序最先启动的Activity
category中
android:name="android.intent.category.LAUNCHER"决定程序是否显示在程序列表里
android:name="android.intent.category.DEFAULT"Android系统中默认的执行方式,按照普通Activity的执行方式执行
android:name="android.intent.category.HOME"设置该组件为Home Activity,home activity就是桌面 application和activity
android:name="android.intent.category.BROWSABLE"设置该组件可以使用浏览器启动
data--><applicationandroid: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.FirstCode"><activity android:name="nsu.edu.chat.MainActivity"></activity><activity android:name=".FruitActivity" /><activity android:name=".FourActivity" /><activityandroid:name=".ThirdActivity"android:theme="@style/Theme.AppCompat.Dialog" /><activityandroid:name=".SecondActivity"android:launchMode="singleTask" /><activityandroid:name=".MenuActivity"android:launchMode="singleInstance"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /><category android:name="android.intent.category.DEFAULT" /><category android:name="android.intent.category.HOME"/><category android:name="android.intent.category.BROWSABLE"/></intent-filter></activity></application></manifest>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/446838.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通过Github创建Android库供其他项目依赖引用

目录一、简介二、实现第一步&#xff1a;将自己的项目托管到Github上。第二步&#xff1a;点击releases。第三步&#xff1a;创建release。第四步&#xff1a;填写版本号、名称、描述信息。第五步&#xff1a;点击【Publish release】。第六步&#xff1a;复制项目路径。第七步…

使用boost模板函数实现读写锁

介绍 shared_mutex即读写锁&#xff0c;不同与我们常用的独占式锁mutex&#xff0c;shared_mutex是共享与独占共存的锁&#xff0c;实现了读写锁的机制&#xff0c;即多个读线程一个写线程&#xff0c;通常用于对于一个共享区域的读操作比较频繁&#xff0c;而写操作比较少的情…

安卓内边距padding与外边距magrin

内边距padding与外边距margin 内边距只有容器才有,即里面要有视图 具体示例

Android Studio发布项目到jcenter

目录一、创建Bintray账户及Maven仓库二、上传项目到jcenter1、配置Android项目2、Gradle命令上传3、在项目中引用4、Add to JCenter三、Demo示例一、创建Bintray账户及Maven仓库 1、打开Bintray首页&#xff0c;点击 For an Open Source Account &#xff0c;快速注册或者用第…

C++读取文件,将文件内容读到string字符串里面

使用stringstream和ifstream实现 代码 std::ifstream f{file_name, std::ios::binary};std::stringstream ss;ss << f.rdbuf();auto data ss.str();

Android MotionEvent中getX()、getRawX()和getTop()的区别

为了展示getX()、getRawX()和getTop()方法的区别&#xff0c;我们写了一个简单的测试Demo&#xff0c;我们写了一个自定义控件&#xff08;继承ImageView&#xff09;。 package com.demo.ui;import android.content.Context; import android.support.annotation.Nullable; im…

C++常量

常量 1.字面常量与符号常量 字面常量:从字面形式可以识别的常量 eg:1.2;‘A’ 整型常量:八进制(以0开头),十六进制(以0x或0X开头) 浮点型常量: 小数形式(整数和小数可以省略其中之一------为0时) eg:.123(0.123) 123.(123.0) 指数形式 0.23e1(0.2310^1) 0.23E-2(0.2310^-2)…

Synchronization 进程锁

Boost.Interprocess允许多个进程同时使用共享内存。因为共享内存从定义上来说是进程间共享的&#xff0c;所以Boost.Interprocess需要支持某种同步。想到同步&#xff0c;我们会想到C11标准库中的类或Boost.Thread。但是这些类只能用来同步同一进程内的线程&#xff0c;它们不支…

Android 获取屏幕宽度和高度的几种方法

方法一&#xff1a; public static void getScreenSize1(Context context){WindowManager windowManager (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);Display defaultDisplay windowManager.getDefaultDisplay();Point point new Point();defaultD…

毛概 第二章新民主主义革命理论

1.新民主主义革命的总路线 2.

解决undefined reference to symbol ‘sem_close@@GLIBC_2.2.5‘问题

错误图示 问题原因 编译的时候&#xff0c;没有引入库文件 sem()位于pthread库中&#xff0c;所以在编译和链接时请确保使用-pthread标志&#xff0c;因此在编译的时候需要导入pthread库文件编译的顺序出现问题 解决办法 在clion的CMakeLists.txt文件中添加这一行代码set(CM…

Android 在onCreate()方法中获取控件宽高值为0解决方案

大家很多时候需要在Activity或者Fragment的onCreate()方法中获取声明的空间的高度或者宽度&#xff0c;进行位置移动或者其他操作&#xff0c;但是当调用 view.getHeight() 或者 view.getWidth() 获取的竟然为0。。。 其实很容易理解&#xff0c;在onCreate()的时候&#xff0…

C++运算符与类型转换

除法/ 参与运算时,结果符号按照(为,–为,-或为-),两个都是整型结果直接去除小数部分 -3/1-1 -3/-13 3/-13 除法 一律向0取整&#xff08;即直接切除小数部分&#xff09;。 取余% 参与运算为整型,结果符号和第一个相同(当结果不为0时) /* 21%63 -21%6-3 -21%-6-3 参与取余的运…

使用named_mutex实现锁机制

介绍 named_mutex是一个进程锁&#xff0c;考虑到进程和线程之间的区别区别&#xff1a;一个工作单元要想被称作进程&#xff0c;它必须要有操作系统指派给他的地址空间&#xff0c;必须拥有进程ID&#xff0c;必须拥有状态和进程表中的表项。进程和线程之间最大的区别是进程有…

Android Studio 突然出现很多红色波浪线或红色感叹号解决方案

最近在开发过程中&#xff0c;某次打开Android工程之后&#xff0c;代码了出现大量的红色波浪线报错提示&#xff0c;但是工程确可以正常编译、正常打包&#xff0c;尝试了很多方法都无法去掉&#xff0c;最后找到了最有效的解决方案&#xff0c;步骤如下&#xff1a; 1、删掉…

安卓常用布局学习

线性布局 布局方向 水平 android:orientation“horizontal” 垂直android:orientation“vertical” gravity对齐方式–center 布局权重:视图中剩余部分的面积所占比例 android:layout_weight“1”(数字) 水平布局:android:layout_width“0dp” 垂直布局:android:layout_heigh…

Android Canvas绘制带箭头的直线

先看下效果图&#xff1a; 下面我们直接看代码 我自定义了一个View&#xff0c;代码如下&#xff1a; package com.davis.drawtrangle;import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; imp…

使用named_mutex实现读写锁,实现进程之间读共享写独占

代码 代码的名称是read_write_mutex.h这个代码可用&#xff0c;但是未优化&#xff0c;还存在冗余的代码如果涉及到进程挂掉了&#xff0c;造成进程堵塞&#xff0c;如何解决&#xff1f;还未涉及 //#ifndef BOOST_THREAD_PTHREAD_SHARED_MUTEX_HPP #define BOOST_THREAD_PTHR…

Android Activity之间传递类对象

一、简介 开发过程中&#xff0c;Activity之间传递数据是必不可少的&#xff0c;Android中使用Intent和Bundle作为数据载体&#xff0c;在Activity之间传递&#xff0c;对于基础数据类型&#xff0c;Bundle已经提供了相关的put、set方法&#xff0c;而作为自定义的类型则需要有…

C++3个汉诺塔递归问题

3个汉诺塔问题A—>C 移动次数2^n-1 hannoni(int n,char a,char b,char c)把n个盘子借助b,从a移动到cmove(int n,char a,char c)把第n个盘子,从a移动到c #include<iostream> #include<cmath> using namespace std; //汉诺塔问题A--->C //2^n-1次移动次数 …