- 博客(767)
- 资源 (3)
- 收藏
- 关注
原创 安卓基础之《(28)—Service组件》
(4)在默认情况下,Service运行在应用程序进程的主线程(UI线程)中,如果需要在Service中处理一些网络连接等耗时的操作,那么应该将这些任务放在子线程中处理,避免阻塞用户界面。Service对象与Service的启动者不在同一个进程中运行,这时存在一个进程间通信的问题,android专门为此设计了AIDL来实现进程间通信。3、一个Service可以完成:访问网络、播放音乐、文件IO操作、大数据量的数据库操作。Service对象与Service的启动者在同个进程中运行,两者的通信是进程内通信。
2026-04-13 17:27:24
51
原创 安卓基础之《(27)—真机调试》
在android开发中,真机调试通常是必要的,主要原因在于android模拟器(如AVD)无法完全模拟真实设备的硬件和系统特性。(3)GPS定位:模拟器依赖虚拟定位(需手动配置),无法完全模拟真实GPS信号漂移或环境干扰。(2)传感器:(重力感应、陀螺仪、气压计等)模拟器仅支持基础传感器模拟,精度和实时性不足。(5)生物识别:(指纹/人脸识别)模拟器不支持硬件级生物识别功能。(4)NFC/蓝牙:模拟器需通过软件模拟,实际测试需要真机。(1)USB调试:通过数据线连接安卓手机进行调试。(4)允许USB调试。
2026-04-10 17:15:32
41
原创 安卓基础之《(26)—回到桌面与切到任务列表》
3、从收到的广播意图中获取原因reason字段,该字段值为homekey时表示回到桌面,值为recentapps时表示打开任务列表。3、重写活动页面的onPictureInPictureModeChanged方法,补充进入画中画模式或退出画中画模式时的处理逻辑。1、按下主页键会回到桌面,按下任务键会打开任务列表,这两个操作并未提供相应的按键处理方法,而是通过广播发出事件信息。2、收到广播之后,调用enterPictureInPictureMode方法进入画中画模式。1、监听回到桌面与打开任务列表的广播。
2026-04-09 16:56:37
53
原创 安卓基础之《(25)—竖屏与横屏切换》
1、手机有竖屏与横屏两种模式,两种屏幕方向不但造成App界面的展示差异,而且竖屏和横屏切换之际,甚至会打乱App的生命周期。原来的activity是销毁了,切换到横屏后又创建了一个activity。
2026-04-09 13:44:41
38
原创 安卓基础之《(24)—广播(2)定时管理器AlamManager》
设置一次性闹钟,延迟若干秒后,携带延迟意图发送闹钟广播(但android6.0之后,set方法在暗屏时不保证发送广播,必须调用setAndAllowWhileIdle方法)(2)setAndAllowWhileIdle:设置一次性定时器,即使设备处于空闲状态,也会保证执行定时器。1、android提供了专门的定时管理器AlarmManager,它利用系统闹钟定时发送广播。(3)setRepeating:设置重复定时器,但系统不保证按时发送广播。(1)set:设置一次性定时器。
2026-04-08 17:01:04
56
原创 安卓基础之《(23)—广播(1)广播类别》
发送一条广播,可以被不同的广播接收者所接收,广播接收者收到广播之后,再进行逻辑处理。标准广播的接收器,StandardReceiver.java。(3)开关广播接收器(注册、注销)1、广播的收发过程分为三个步骤。2、android中的广播。广播是一种数据传输方式。(2)定义广播接收器。
2026-04-07 16:05:59
40
原创 安卓基础之《(22)—高级控件(4)碎片Fragment》
1、传统的Activity并不能很好的处理大屏问题,所以急需一个碎片化的东西能够划区域的展示内容,且有属于自己的独立可操作空间,所以就出现了Fragment。
2026-02-05 16:42:46
123
原创 安卓基础之《(21)—高级控件(3)翻页类视图》
布局文件activity_view_pager.xml。适配器ImagePagerAdapter.java。1、翻页视图允许页面在水平方向左右滑动。条目文件item_pager2.xml。一、翻页视图ViewPager。
2026-02-04 15:57:15
98
原创 安卓基础之《(20)—高级控件(2)列表类视图》
1、ListView允许在页面上分行展示数据列表,例如新闻列表、商品列表等,方便用户浏览与操作。布局文件activity_list_view.xml。选择器list_selector.xml。3、ListView去掉点击的动画效果。2、ListView去掉分隔线。一、列表视图ListView。颜色资源colors.xml。
2026-02-02 17:44:28
119
原创 安卓基础之《(19)—高级控件(1)下拉列表》
1、Spinner用于从一串列表中选择某项,功能类似于单选按钮的组合。2、android:spinnerMode属性,有两个选项。1、适配器负责从数据集合中取出对应的数据显示到条目布局上。3、下拉框要显示数据列表,涉及到适配器。(1)dropdown为下拉菜单。(2)dialog为弹窗显示菜单。一、下拉框Spinner。(3)不写默认下拉菜单。
2026-01-27 15:26:18
297
原创 安卓基础之《(18)—内容提供者(4)在应用之间共享文件》
1、继承于ContentProvider,对第三方应用暴露文件,并授予文件读写操作的权限。布局文件activity_send_mms.xml。1、MediaStore包含了系统所有的多媒体文件。三、FileProvider。一、使用相册图片发送彩信。二、MediaStore。
2026-01-20 14:33:43
178
原创 安卓基础之《(17)—内容提供者(3)使用内容组件获取通讯信息》
1、因为一个联系人可能有多个电话号码,还可能有多个邮箱,所以系统通讯录将其设计为三张表,分别是联系人基本信息表、联系号码表、联系邮箱表,于是每添加一位联系人,就要调用至少三次insert方法。(1)raw_contacts表的_id与data表的raw_contact_id对应。data表的mimetype_id与mimetypes表的_id对应。2、同理,联系人读取代码也分成三个步骤,先查出联系人的基本信息,再依次查询联系人号码和联系人邮箱。raw_contacts表。mimetypes表。
2026-01-15 15:23:39
252
原创 安卓基础之《(16)—内容提供者(2)运行时动态申请权限》
1、Android系统为了防止某些App滥用权限,从6.0开始引入了运行时权限管理机制,允许App在运行过程中动态检查是否拥有某些权限,一旦发现缺少某种必需的权限,则系统会自动弹出小窗提示用户去开启该权限。一、运行时动态申请权限。
2026-01-12 17:36:32
183
原创 安卓基础之《(15)—内容提供者(1)在应用之间共享数据》
Client App将用户的输入内容,通过ContentProvider跨进程通信传递给Server App。ContentProvider为App存取内部数据提供统一的外部接口,让不同的应用之间得以共享数据。一个应用读取另一个应用的数据,比如用户登录时,收到验证码自动读取。ContentProvider相当于一个窗口、一个门卫。一、通过ContentProvider封装数据。2、ContentProvider案例。
2026-01-12 10:57:20
253
原创 安卓基础之《(14)—数据存储(4)应用组件Application》
2、Application是Android的一大组件,在App运行过程中有且仅有一个Application对象贯穿整个生命周期。可以使用Application这个组件。一、Application的生命周期。资源不需要持久化,放到内存里就可以了。希望多个组件都可以访问这个数据。希望它是个可以操作的全局变量。1、如果有这样的需求。
2026-01-07 15:50:17
218
原创 安卓基础之《(13)—数据存储(3)存储卡的文件操作》
1、Android把外部存储分成了两块区域,一块是所有应用均可访问的公共空间,另一块是只有应用自己才可访问的私有空间。2、现在的手机虽然不插SD卡了,但是本质上是一样的,可以理解成内置了SD卡。data/data/包名,是内部存储空间。一、私有存储空间与公共存储空间。
2026-01-05 17:23:55
240
原创 安卓基础之《(12)—数据存储(2)数据库SQLite》
1、SQLiteDatabase是SQLite的数据库管理类,它提供了若干操作数据表的API。(2)setTransactionSuccessful:设置事务的成功标志。(6)rawQuery:执行拼接好的SQL查询语句,返回结果集的游标。(1)openDatabase:打开指定路径的数据库。(5)query:执行查询操作,返回结果集的游标。(4)getVersion:获取数据库的版本号。(5)setVersion:设置数据库的版本号。(1)execSQL:执行拼接好的SQL语句。
2025-12-31 15:33:37
176
原创 安卓基础之《(11)—数据存储(1)共享参数SharedPreferences》
2、共享参数的存储介质是符合XML规范的配置文件。保存路径是:/data/data/应用包名/shared_prefs/文件名.xml。1、SharedPreferences是Android的一个轻量级存储工具,采用的存储结构是Key-Value的键值对方式。4、实际开发中,共享参数经常存储的数据有App的个性化配置信息、用户使用App的行为信息、临时需要保存的片段信息等。(3)需要持久化存储的数据。在App退出后再次启动时,之前保存的数据仍然有效。若是复杂且相互间有关的数据,则要保存在数据库中。
2025-12-30 15:10:26
289
原创 安卓基础之《(10)—中级控件(4)对话框》
1、AlertDialog可以完成常见的交互操作,例如提示、确认、选择等功能。AlertDialog借助建造器AlertDialog.Builder才能完成参数设置。2、调用建造器的create方法生成对话框实例,再调用对话框实例的show方法,在页面上弹出提醒对话框。一、提醒对话框AlertDialog。3、提醒对话框效果图。
2025-12-29 15:44:52
187
原创 安卓基础之《(9)—中级控件(3)文本输入》
1、编辑框EditText用于接收软键盘输入的文字,例如用户名、密码、评价内容等,它由文本视图派生而来,除了TextView已有的各种属性和方法,EditText还支持下列XML属性。(1)inputType:指定输入的文本类型。若同时使用多种文本类型,则可使用竖线“|”把多种文本类型拼接起来。(2)maxLength:指定文本允许输入的最大长度。(4)textColorHint:指定提示文本的颜色。(3)hint:指定提示文本的内容。一、编辑框EditText。
2025-12-26 15:27:43
178
原创 安卓基础之《(8)—中级控件(2)选择按钮》
实际开发中用的是CompoundButton的几个派生类,主要有复选框CheckBox、单选按钮RadioButton以及开关按钮Switch,这些派生类均可使用CompoundButton的属性和方法。1、CompoundButton类是抽象的复合按钮,由它派生而来的子类包括:复选框CheckBox、单选按钮RadioButton以及开关按钮Switch。(1)checked:指定按钮的勾选状态,true表示勾选,false则表示未勾选。(1)setChecked:设置按钮的勾选状态。
2025-12-25 16:44:26
159
原创 安卓基础之《(7)—中级控件(1)图形定制》
2、包含图片在内的图形文件放在res目录的各个drawable目录下,其中drawable目录一般保存描述性的XML文件,而图片文件一般放在具体分辨率的drawable目录下。(5)drawable-xxhdpi:里面存放超高分辨率的图片(如1080x1920),一般对应6英寸~6.5英寸的手机。(3)drawable-hdpi:里面存放高分辨率的图片(如480x800),一般对应4英寸~4.5英寸的手机。==========图形定制==========一、图形Drawable。
2025-12-19 13:35:04
163
原创 安卓基础之《(6)—Activity组件(3)》
上下文Context类里有getString方法,就是从strings.xml中获取字符串的值。而Activity就是继承自Context。1、Activity从strings.xml获取字符串,显示到TextView中。strings.xml是不需要编译的,而Java代码需要编译。==========为活动补充附加信息==========2、为什么把字符串放到strings.xml中。所以可以直接getString(id)八、利用资源文件配置字符串。
2025-12-18 16:03:46
169
原创 安卓基础之《(5)—Activity组件(2)》
通常App不希望向外部暴露Activity名称,只给出一个事先定义好的标记串,这样大家约定俗成、按图索骥就好,隐式Intent便起到了标记过滤作用。在打电话的Activity里配置了android.intent.action.DIAL,所以你调用ACTION_DIAL就会跳转的打电话页面。隐式Intent,没有明确指定要跳转的目标Activity,只给出一个动作字符串让系统自动匹配,属于模糊匹配。(2)发起方携带本次通信需要的数据内容,接收方从收到的Intent中解析数据。2、Intent的组成部分。
2025-12-17 16:08:07
487
原创 安卓基础之《(4)—Activity组件(1)》
startActivity(new Intent(源页面.this, 目标页面.this));2、从当前页面回到上一个页面,相当于关闭当前页面,返回代码。==========启停活动页面==========// 结束当前的活动页面。从A跳到B,A就是源页面,B是目标页面。3、注意A、B页面都要在清单文件中注册。1、从当前页面跳到新页面,跳转代码。一、Activity的启动和结束。
2025-12-12 13:42:38
182
原创 安卓基础之《(3)—简单控件》
2670 * 1200分辨率,6.36寸的手机,dpi约为460,460 / 160 ≈ 2.875,也就是说在这个手机上1dp约等于2.875px。XML文件每个标签比如TextView,gradle在编译的时候会按照一定规则将标签转为java代码的类,这些转为代码的类统一都在R的java包内。所有显示到屏幕上的图像都是以px为单位,dp是我们开发中使用的长度单位,最后它也需要转换成px,计算这个设备上1dp等于多少px。(1)相同分辨率的手机,屏幕越大,同DP的组件占用屏幕比例越小。
2025-11-20 16:39:12
344
原创 安卓基础之《(2)—App开发基础》
每个XML标签都是独立的控件对象,标签内部的属性以“android”打头,表示这是标准的安卓属性,各属性分别代表控件的某种规格。(5)local.properties:项目的本地配置文件,它在工程编译时自动生成,用于描述开发者电脑的环境配置,包括SDK的本地路径、NDK的本地路径等。(1)manifests目录:下面只有一个XML文件,AndroidManifest.xml,它是app的运行配置文件。3、一般所言的“编译运行App”,指的是运行某个模块,而非运行某个项目,因为模块才对应实际的App。
2025-11-12 11:14:31
594
原创 安卓基础之《(1)—简介》
工程创建完毕后,Android Studio自动打开activity_main.xml与MainActivity.java,并默认展示MainActivity.java的源码。1、安卓(Android)是一种基于Linux内核的自由及开源的操作系统。(2)运行在模拟器,是指在电脑上构造一个演示窗口,模拟手机屏幕上的App运行效果。4、Android可以用Java、Kotlin开发,作为入门先用Java来开发。2、Android几乎每年都要发布一个大版本,技术的更新迭代非常之快。2、安卓项目的发布运行。
2025-11-06 16:23:57
266
原创 前端基础之《React(7)—webpack简介-ESLint集成》
本文介绍了如何在webpack开发环境中集成ESLint进行代码检测。主要步骤包括:安装eslint-webpack-plugin和eslint依赖;配置webpack的serve.js文件,设置ESLint检测规则;使用eslint向导生成配置文件eslint.config.mjs;解决React全局变量未定义问题;配置node环境变量以消除require等语法警告。最终通过修改eslint.config.mjs文件,整合了ESLint、TypeScript和React的推荐配置,实现了完整的代码检测功能
2025-11-03 15:09:21
194
原创 前端基础之《React(6)—webpack简介-图片模块处理》
摘要:本文介绍了在Webpack中处理图片模块的两种方法。在Webpack 5.0之前版本,需要使用file-loader和url-loader来转换图片为链接或base64编码。而在Webpack 5.0中,推荐使用asset/resource类型处理图片资源,相当于file-loader的功能。详细演示了如何在webpack配置文件中配置图片处理规则,包括修改module.rules部分,指定图片文件的处理方式和输出路径。两种方法都能实现图片的打包处理,但Webpack 5.0的内置asset模块方案更
2025-10-31 11:31:57
218
原创 android studio设置
【Android Stadio】->【Build】->【Build Bundle(s) / APK(s)】->【Build APK(s)】,输出目录在 项目名称\build\outputs\apk\debug\xxx.apk。【Android Stadio】->【File】->【Settings】->【Build, Execution, Deployment】->【Build Tools】->【Gradle】,修改Gradle JDK。2、设置encoding统一UTF-8。1、导入项目的目录不能有中文。
2025-10-31 10:13:00
323
原创 前端基础之《React(5)—webpack简介-集成CSS和SASS支持》
本文介绍了如何为webpack项目集成CSS和SASS支持。首先创建app.css文件定义基础样式,然后安装style-loader和css-loader。重点说明了webpack配置中module.rules部分如何添加CSS处理规则:当遇到.css文件时,先由css-loader解析CSS代码,再由style-loader将样式插入HTML的head标签。规则排除了node_modules目录,同时展示了完整的webpack配置文件结构,包括入口、出口、插件等基本配置。通过这种方式,webpack可以正
2025-10-29 14:11:09
267
原创 前端基础之《React(4)—webpack简介-编译打包优化》
【Webpack编译优化配置】 通过配置webpack.config.js将第三方库与业务代码分离: 在entry中定义vendors入口,包含react等第三方库 业务代码入口app通过dependOn声明依赖vendors 输出配置使用[name].[chunkhash:8].js生成带哈希的文件名 配合HtmlWebpackPlugin实现自动注入 使用ProvidePlugin全局提供React变量 优化效果: 第三方库独立打包,便于CDN部署 业务代码与依赖分离,提升缓存利用率 每次构建自动清理旧
2025-10-28 16:51:07
390
原创 前端基础之《React(3)—webpack简介-集成JSX语法支持》
本文介绍了在项目中集成JSX语法的步骤:1)安装React相关依赖(react, react-dom);2)创建React根组件App.jsx;3)配置main.js作为入口文件并挂载组件;4)安装babel预设(@babel/preset-react)处理JSX语法;5)修改webpack配置,通过babel-loader处理.jsx文件扩展名。重点说明了react用于组件封装,react-dom负责DOM挂载,以及babel预设和webpack loader的配合使用来实现JSX语法支持。
2025-10-27 14:25:38
333
原创 前端基础之《React(2)—webpack简介-使用Babel》
本文介绍了webpack中使用loader处理ES6+语法的步骤:1.安装babel相关包(babel-loader、@babel/core、@babel/preset-env);2.配置webpack.config.js,设置js文件使用babel-loader处理;3.创建babel.config.js定义编译规则,使用@babel/preset-env预设将ES6+代码转换为ES5。通过配置loader实现webpack对不同模块文件的预处理,解决浏览器不识别最新语法的问题。
2025-10-23 13:20:27
262
原创 前端基础之《React(1)—webpack简介》
Webpack是一个模块化打包工具,能够将各种前端资源打包成浏览器兼容的静态文件。它采用从入口文件开始的依赖分析机制,将每个文件视为模块。搭建Webpack环境需要先安装Node.js和npm/yarn,创建项目目录并初始化package.json文件。然后通过npm或cnpm全局和本地安装webpack核心包及webpack-cli工具,为后续的模块化开发和打包构建做好准备。整个配置过程体现了现代前端架构的技术选型能力。
2025-10-14 14:23:03
2968
原创 区块链技术之《(1)—概述》
区块链是由区块组成的去中心化链式结构,每个区块包含区块头和区块体。区块头存储元数据(版本号、前区块哈希、默克尔根等),区块体记录交易信息。通过哈希算法(SHA256)确保数据不可篡改,并利用默克尔树快速验证交易。挖矿过程通过调整难度目标和随机数(Nonce)来寻找符合条件的哈希值,维护区块链安全。比特币是区块链技术的典型应用,展现了该技术的去中心化特性。
2025-09-22 16:03:56
674
原创 Java基础之《activiti(1)—工作流介绍》
摘要 工作流是通过计算机对业务流程进行自动化管理的技术,广泛应用于订单处理、行政管理、人事财务等场景。工作流系统基于业务流程,通过状态字段或专业引擎实现流程控制。Activiti作为基于BPMN2.0标准的工作流引擎,能将复杂业务流程可视化建模,实现业务与流程的分离,降低系统维护成本。BPMN建模符号包括事件(圆圈)和活动(圆角矩形)等元素,用于构建流程模型。工作流技术提高了系统的可扩展性和适应性,特别适合大型企业和集团公司的业务管理需求。
2025-08-13 13:49:45
758
原创 前端基础之《Vue(30)—Vue3 Pinia状态管理》
本文介绍了Pinia在Vue3中的安装与使用。首先通过npm安装Pinia并在main.ts中引入。然后详细说明了如何创建store:定义state、getters和actions,并强调store命名需以"use"开头。在组件中使用时,可以通过$patch直接修改state或调用actions方法更新数据。文章特别指出,解构store变量会导致响应式丢失,需使用storeToRefs保持响应性。最后展示了模板中调用store数据和方法的示例代码。
2025-08-12 10:15:27
211
原创 前端基础之《Vue(29)—Vue3 路由V4》
本文介绍了Vue3项目中集成Vue Router(v4)的全过程。首先通过npm安装依赖,配置@路径别名指向src目录,包括vite.config.ts和tsconfig.app.json的修改。然后详细说明了在main.ts中如何初始化路由,创建路由实例并定义路由规则。接着指导建立router/index.ts文件,配置hash模式路由和全局守卫。最后演示了在App.vue中使用<router-view>展示路由组件,并验证了路由访问效果。文章还简要提及了集成步骤的三个关键环节,为后续使用El
2025-08-08 14:12:55
425
gitflow工作流程.pdf
2020-03-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅