本文共 2917 字,大约阅读时间需要 9 分钟。
Android 基本概念
本文约定
项目名:MyFirstApp
3.0
清单文件 AndroidManifest.xml
app > manifests > AndroidManifest.xml- 定义启动类
MainActivity.java
- 声明应用所需的权限
- 声明应用所需的软硬件功能
- 声明应用所需的最低 API 级别
- 声明应用需要链接的 API 库
- 声明应用的:Activity、Service、ContentProvider 必须声明,不然用不了。BroadcastReceiver 可以代码中动态创建和注册
- 设置要用:名称、图标、主题
四大组件
活动 Activity
Activity
就是一个页面(类似于一个HTML文件) 、
Activity
组成,其它的APP也可以调用你 APP
中的某个Activity
,但并不是直接调用。而是通过广播,让系统来调度,大家你情我愿(你的APP安装时就要跟系统打招呼,以后有XXX活,可以找我XXXActivity
。比如你调用相机功能时,会跳出来一堆接活的Activity
等你选)。 服务 Service
服务用来执行不需要UI页面的后台工作。
广播、接收器 BroadcastReceiver
系统和APP都可以发广播
和监听广播
。通过定义好的协议做相应处理。(消息以Intent
的形式打包)
内容提供程序 ContentProvider
ContentProvider
封装了数据CRUD
,通过它操作数据,你不用操心那些数据从哪来。(当然如果从网上取,你的应该要能访问网络才行)。系统和别人的APP都可以提供 ContentProvider
。我们也可以为自己的APP设计ContentProvider
,这样我们还能设置权限,哪些数据可以让大家访问,哪些私有。
四大组件的小弟
可以在发生广播事件时创建状态栏通知
提醒用户
意图 Intent
组间之间发送消息,都打包成Intent
再丢来丢去。四大组件中,除了内容提供程序,其它的都是通过发Intent
来启动的。 Intent
分显式和隐式。(模拟环境零散劳动力市场,工人们都在等活) 显式就是明确的说:哪个谁谁谁出来干活。 隐式就是说:要个泥瓦匠,有人没人?(如果有多个人回答,就会给个列表让你选) public static final String EXTRA_MESSAGE = "一个当作KEY的字符串"; // 原 Activity 中按钮点击事件 /** 当用户点击【发送】按钮时调用 */ public void sendMessage(View view) { ... // 创建 intent 用到了 当前 Activity 和 目标 Activity.class Intent intent = new Intent(this, DisplayMessageActivity.class); // 向 intent 中压入数据 intent.putExtra(EXTRA_MESSAGE , "从当前Activity文本框中获取的字符串"); // 打开新的 Activity 同时把 intent 传给它 startActivity(intent); } // 目标 Activity onCreate事件 @Override protected void onCreate(Bundle savedInstanceState) { ... // 获取打开此活动的意图并提取字符串 Intent intent = getIntent(); String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE ); ... }
文件中的大佬们
要看文件先看资源管理器,这里可以切换显示模式,常用的有【Project】【Android】
app > java > com.example.myfirstapp > MainActivity.java
APP的入口 。运行APP时,系统会启动此 Activity。
app > res > layout > activity_main.xml
布局文件, MainActivity.java
在 onCreate
事件中加载了它。它通过各种标签定义UI元素,有点像HTML。
Gradle Scripts > build.gradle
build.gradle 文件用于配置 Gradle 工具,指明编译和构建您的应用的方式。每个项目会有一个 build.gradle,项目下的每个模块也都会有一个自己的 build.gradle
布局文件
存放位置 MyFirstApp\app\src\main\res\layout
View
它提供了最基本的UI绘制和事件处理能力,是所有UI对象的基类。按钮、文本、图片
等UI对象 包括布局对象ViewGroup
都是它的子类。大概看一下它的子类里还是有些熟悉面孔的。
ViewGroup
它是所有布局对象的基类,继承于View 。作为布局对象通常是不可见的,能够嵌套其它 View 对象。
ViewGroup 嵌套关系:官网盗图资源文件
资源文件的定义主要是为了防止硬编码。所以把这些值提取出来方便后期调整。
定义颜色
文件位置 : MyFirstApp\app\src\main\res\values\colors.xml
#3F51B5 #303F9F #FF4081
定义字符串
文件位置 : MyFirstApp\app\src\main\res\values\strings.xml
My First App
定义样式
文件位置 : MyFirstApp\app\src\main\res\values\styles.xml
资源类 R
系统会帮我们生成一个 R
类 ,里面给每个资源定义了一个整形id。 R.类型.id
//Java 中这样取文本框 EditText editText = (EditText) findViewById(R.id.editText);
Android Studio 常用热键
Alt + Enter : 自动修复
Alt + / : 智能提示
转载地址:https://jerryjin.blog.csdn.net/article/details/86636841 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!