Android
文章平均质量分 78
安卓(Android)是一种基于Linux内核(不包含GNU组件)的自由及开放源代码的操作系统
低吟不作语
这是最坏的时代,也是最好的时代
展开
-
Android Jetpack 实战
Jetpack 是一个开发组件的工具集,它的主要目的是帮助我们编写出更加简洁、规范的代码ViewModel传统的开发模式下,Activity 的任务太重了,既要负责逻辑处理,又要控制 UI 展示,还得处理网络回调,长此以往,项目会变得异常臃肿。ViewModel 的一个重要作用就是帮助 Activity 分担一部分工作,专门用于存放与界面相关的数据1. 创建 ViewModel在 app/build.gradle 文件添加依赖dependencies { implementati..原创 2022-01-15 22:15:05 · 1798 阅读 · 0 评论 -
Android Material Design 实战
Material Design 是由 Google 的设计工程师们所开发的一款界面设计语言Toolbar首先打开 res/values/themes.xml 文件,指定一个不带 ActionBar 的主题<resources xmlns:tools="http://schemas.android.com/tools"> <style name="Theme.FragmentTest" parent="Theme.AppCompat.Light.NoActionBar"..原创 2022-01-03 14:37:42 · 1346 阅读 · 0 评论 -
Android 最好用的网络库 Retrofit
Retrofit 同样是一款由 Square 公司开发的网络库,更侧重于对上层接口的封装基本用法通常,服务器提供的接口是按功能归类的,比如新增用户、修改用户数据、查询用户数据等可以归为一类,上架图书,查询在架图书等又可以归为一类。这样的归类能让代码结构变得更加合理,提供可阅读性和可维护性Retrofit 的用法就是基于以上几点设计的,我们可以对服务器接口进行归类,将功能同属一类的服务器接口定义到同一个接口文件中,从而让代码结构变得更加合理最后,我们无需关心网络通信的细节,只需在接口文件中声明..原创 2022-01-02 15:30:44 · 1997 阅读 · 0 评论 -
Android 使用 HTTP 访问网络
使用 HttpURLConnection在过去,Android 上发送 HTTP 请求一般有两种方式:HttpURLConnection 和 HttpClient,不过在 Android 6.0 系统中,HttpClient 被完全移除了,因此推荐使用 HttpURLConnection// 创建一个 URL 对象,并传入目标网络地址val url = URL("https://www.baidu.com")// 调用 openConnection() 方法即可获取 HttpURLConnecti.原创 2021-12-20 23:45:21 · 4882 阅读 · 0 评论 -
Android Service 的基本用法
概述Service 是 Android 中实现程序后台运行的解决方案,它非常适合执行那些不需要和用户交互而且要求长期运行的任务。Service 的运行不依赖于任何用户界面,即使程序被切换到后台,或者打开了另外一个应用程序,Service 仍然能够保持正常运行定义 Service定义一个 Service 代码如下:class MyService : Service() { override fun onCreate() { super.onCreate() }.原创 2021-12-18 23:49:36 · 1708 阅读 · 0 评论 -
Android 多线程编程
线程的基本用法Android 的多线程编程与 Java 多线程编程基本是使用相同的语法,比如定义一个线程只需要新建一个类继承自 Thread,重写父类的 run() 方法class MyThread : Thread() { override fun run() { // 编写具体的逻辑 }}启动这个线程也很简单,创建 MyThread 的实例,调用 start() 方法,这样 run() 方法中的代码就会在子线程中运行了MyThread().start().原创 2021-12-05 17:39:48 · 2720 阅读 · 0 评论 -
Android 播放多媒体文件
播放音频在 Android 中播放音频文件一般使用 MediaPlayer 类实现,下表列出 MediaPlayer 类中一些常用的 API方法名功能描述setDataSource设置要播放的音频文件的位置prepare在调用之前,完成准备工作start开始播放pause暂停reset重置 MediaPlayer 为刚刚创建的状态seekTo从指定位置播放音频stop停止播放release释放 MediaPlayer 相关的.原创 2021-12-04 18:56:03 · 2083 阅读 · 0 评论 -
Android 调用摄像头和相册
调用摄像头很多应用都会要求用户上传图片,这时打开摄像头拍照是最简单快捷的新建一个项目,修改 activity_main.xml 中的代码,如下:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" andr.原创 2021-12-04 16:13:19 · 3697 阅读 · 1 评论 -
Android 通知
概述通知是 Android 系统中比较有特色的一个功能,当某个应用程序希望向用户发送提示信息,而该应用程序又不在前台运行时,就可以借助通知来实现。发出一条通知以后,手机最上方的状态栏会显示一个通知的图标,下拉状态栏后可以看到通知的详细内容创建通知渠道设计通知必须以不打扰到用户为前提,否则效果会适得其反。对于应用程序发送的通知,用户并非都会感兴趣。以微博为例,我只希望收到我所关注的人的微博更新通知,但并不想让微博一天到晚给我推送一些明星的花边新闻。于是,Android 8.0 系统引入了通知渠道这个.原创 2021-11-27 16:07:11 · 1123 阅读 · 0 评论 -
Android 跨程序共享数据
概述ContentProvider 主要用于在不同的应用程序之间实现数据共享的功能,提供了一套完整的机制,允许一个程序访问另一个程序的数据,同时还能保证数据的安全ContentProvider 的用法一般有两种:一种是使用现在的 ContentProvider 读取和操作相应程序中的数据;另一种是创建自己的 ContentProvider,给程序的数据提供外部访问接口ContentResolver对于一个应用程序来说,要想访问 ContentProvider 中共享的数据,就要借助 Conten.原创 2021-11-13 17:20:37 · 4316 阅读 · 0 评论 -
Android 运行时权限
概述Android 的权限机制是用于保护用户的设备安全,主要在两个方面得到保护:如果用户在低于 Android 6.0 系统的设备上安装该程序,会在安装界面给出提醒,用户可以清楚的知晓该程序一共申请了哪些权限,从而决定是否要安装这个程序用户可以随时在应用程序管理界面查看任意一个程序的权限申请情况但是很多软件都存在着滥用权限的情况,如果不同意权限申请就无法使用。因此,Android 6.0 以后加入了运行时权限功能,也就是说,用户不需要在安装软件时一次性授权所有申请的权限,而是在软件的使用过程.原创 2021-11-06 17:16:06 · 2178 阅读 · 0 评论 -
Android SQLite 数据库
概述SQLite 是一款轻量级的关系型数据库,它的运算速度非常快,占用资源非常少,因此特别适合在移动设备使用。SQLite 不仅支持标准的 SQL 语法,还遵循数据库的 ACID 事务。而 SQLite 又比一般的数据库要简单许多,甚至不需要设置用户名和密码就可以使用创建数据库Android 提供了一个 SQLiteOpenHelper 帮助类,用以对数据库进行创建和升级。SQLiteOpenHelper 是一个抽象类,有两个抽象方法:onCreate() 和 onUpgrade(),我们需要重.原创 2021-11-03 20:21:16 · 464 阅读 · 0 评论 -
Android 文件存储和 SharedPreferences 存储
持久化技术简介数据持久化就是指将那些内存中的瞬时数据保存到存储设备中,保证即使在手机或计算机关机的情况下,这些数据也不会丢失。保存在内存中的数据是处于瞬时状态的,而保存在存储设备的数据是处于持久状态的。持久化技术提供了一种机制,可以让数据在瞬时状态和持久状态之间进行切换文件存储1. 将数据存储到文件中文件存储是 Android 中最基本的数据存储方式,它不对存储的内容进行格式化处理,所有数据都是原封不动的保存到文件当中,适合存储一些简单的文本数据或二进制数据Context 类提供了一个 ope.原创 2021-10-23 15:20:52 · 1593 阅读 · 0 评论 -
Android 广播机制
广播机制简介Android 提供了一套完整的 API,允许应用程序自由地发送和接收广播。发送广播需要借助之前学习的 Intent,而接收广播的方法则需要引入一个新的概念 —— BroadcasterReceiverAndroid 中的广播主要分为两种类型:标准广播:一种异步执行的广播,广播发出后,所有的 BroadcasterReceiver 几乎会在同一时刻受到这条广播消息,没有任何时间顺序有序广播:一种同步执行的广播,广播发出后,同一时刻只有一个 BroadcasterReceiver 能够.原创 2021-10-10 19:29:36 · 251 阅读 · 0 评论 -
Android Fragment 的使用
Fragment 的简单用法Fragment 是一种可以嵌入在 Activity 当中的 UI 片段,它能让程序更加合理和充分地利用大屏幕的空间,因此在平板上应用非常广泛在一个 Activity 中添加两个 Fragment,并让两个 Fragment 平分 Activity 的空间,首先新建一个左侧 Fragment 的布局 left_fragment.xml,这个布局只放置了一个按钮<LinearLayout xmlns:android="http://schemas.android.co.原创 2021-10-07 16:32:51 · 1150 阅读 · 1 评论 -
Android 控件 —— RecyclerView
RecyclerView 的基本用法和我们之前学习的控件不一样,RecyclerView 属于新增控件,所以我们需要在项目的 build.gradle 中添加 RecyclerView 库的依赖,才能使用该控件dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" implementation 'androidx.core:core-ktx:1.2.0' implem.原创 2021-10-06 21:21:10 · 588 阅读 · 0 评论 -
Android 控件 —— ListView
ListView 的简单用法在布局中加入 ListView 控件还算简单,先为 ListView 指定一个 id,然后将宽度和高度都设置为 match_parent,这样 ListView 就占满了整个布局的空间<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:orientat.原创 2021-10-05 23:22:30 · 980 阅读 · 0 评论 -
Android 常用控件
TextViewTextView 主要用于在界面上显示一段文本信息<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical" android:layout_width="match_parent" android:layout.原创 2021-10-05 11:57:49 · 200 阅读 · 0 评论 -
Activity 的生命周期
返回栈Android 中的 Activity 是可以层叠的,我们每启动一个新的 Activity,就会覆盖在原有的 Activity 之上,然后点击 Back 键会销毁最上面的 Activity,下面的一个 Activity 就会重新显示出来其实 Android 是使用任务(task)来管理 Activity 的,一个任务就是一组存放在栈里的 Activity 的集合,这个栈也被称作返回栈默认情况下,启动一个新的 Activity,它就会在返回栈中入栈,并处于栈顶的位置。而每当我们按下 Back 键.原创 2021-10-03 01:39:30 · 315 阅读 · 0 评论 -
使用 Intent 在 Activity 之间穿梭
概述Intent 是 Android 程序中各组件之间进行交互的一种重要方式,它不仅可以指明当前组件想要执行的动作,还可以在不同组件之间传递数据Intent 大致可分为两种:显式 Intent 和隐式 Intent1. 显式 IntentIntent 有多个构造函数的重载,其中一个是 Intent(Context packetContext, Class<?> cls),这个构造函数接收两个参数:第一个参数 Context 要求提供一个启动 Activity 的上下文第二个参数 .原创 2021-10-02 22:34:25 · 231 阅读 · 0 评论 -
Activity 使用 Menu
要使用菜单 Menu,首先在 res 目录下新建一个 menu 文件夹,右键 menu 文件夹 - New - Menu resource file,在该文件夹下新建一个名为“main”的菜单文件,然后在 main.xml 中添加如下代码:<?xml version="1.0" encoding="utf-8"?><menu xmlns:tools="http://schemas.android.com/tools" xmlns:android="http://schema.原创 2021-09-25 16:12:34 · 319 阅读 · 0 评论 -
Activity 使用 Toast
Toast 是 Android 系统提供的一种提醒方式,在程序中可以使用它将一些短小的信息通知给用户,这些信息会在一段时间后消失,下面我们来学习如何在 Activity 中使用 Toast首先需要定义一个弹出 Toast 的触发点,以按钮的点击事件作为触发点,在 Activity 的 onCreate() 方法中添加如下代码:override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceStat.原创 2021-09-25 15:40:32 · 491 阅读 · 0 评论 -
Android 智能手机开发概述
Android SDKAndroid SDK 提供了在 Window/Linux/Mac 等平台上开发 Android 应用程序的相应的开发组件。它含有在 Android 平台上开发应用程序的工具集。总体架构Android 最底层基于 Linux 2.6 内核实现,负责硬件驱动、网络管理、电源管理、系统安全、内存管理等Android 的第二层由大多数开源的函数库组成,在这一层...原创 2020-03-31 16:54:28 · 1042 阅读 · 0 评论