- 以下这些权限在Android6. 0之后,都需要动态申请: 我们以申请WRITE_EXTERNAL_STORAGE权限为例 1、在AndroidManifest.xml中注册权限 <manifest> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/... 以下这些权限在Android6. 0之后,都需要动态申请: 我们以申请WRITE_EXTERNAL_STORAGE权限为例 1、在AndroidManifest.xml中注册权限 <manifest> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/...
- 概述 在Android中实现跨进程通信的方式有很多种,如广播、Content Provider、AIDL(Android Interface Definition Language)。AIDL在跨进程通信中用得最多,因为AIDL相比其他方式,速度更快,效率更高。 AIDL最常见的使用场景:让某个Service与多个应用程序组件之间进行跨进程通信,从而可以实现多个应用... 概述 在Android中实现跨进程通信的方式有很多种,如广播、Content Provider、AIDL(Android Interface Definition Language)。AIDL在跨进程通信中用得最多,因为AIDL相比其他方式,速度更快,效率更高。 AIDL最常见的使用场景:让某个Service与多个应用程序组件之间进行跨进程通信,从而可以实现多个应用...
- xml方式: 在res/drawable中创建一个xml文件(repeat_bg.xml) <?xml version="1.0" encoding="utf-8"?> <bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@mipmap/bg... xml方式: 在res/drawable中创建一个xml文件(repeat_bg.xml) <?xml version="1.0" encoding="utf-8"?> <bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@mipmap/bg...
- 在API 26以下,每个应用只有一个渠道。Android8.0(API 26)引入了通知渠道,界面将渠道称作“类别”,从API 26开始必须为所有通知分配渠道,否则通知是不会显示的。 将通知归类为不同的渠道,用户可以停用应用的特定通知渠道(而非停用应用的所有通知)。在Android系统设置中可以控制每个渠道的视觉和听觉选项。用户还可以长按通知以更改所关联渠道的行为。 一... 在API 26以下,每个应用只有一个渠道。Android8.0(API 26)引入了通知渠道,界面将渠道称作“类别”,从API 26开始必须为所有通知分配渠道,否则通知是不会显示的。 将通知归类为不同的渠道,用户可以停用应用的特定通知渠道(而非停用应用的所有通知)。在Android系统设置中可以控制每个渠道的视觉和听觉选项。用户还可以长按通知以更改所关联渠道的行为。 一...
- Android系统的广播有一个全局监听器,专门用于监听/接收应用程序发出的广播消息。 广播的作用 可以实现不同组件之间的通信(这些组件可以是同一应用内的或不同应用内的。)多线程通信与Android系统通信,如电话呼入、网络可用时等。 广播的通信模型 广播的使用流程 自定义广播接收者BroadcastReceiver (1)继承BroadcastRec... Android系统的广播有一个全局监听器,专门用于监听/接收应用程序发出的广播消息。 广播的作用 可以实现不同组件之间的通信(这些组件可以是同一应用内的或不同应用内的。)多线程通信与Android系统通信,如电话呼入、网络可用时等。 广播的通信模型 广播的使用流程 自定义广播接收者BroadcastReceiver (1)继承BroadcastRec...
- 强引用 Java中最基本、最常用的就是“强引用",如果存在着对某个对象的强引用,GC时就不会回收该对象。 软引用 “软引用”通过Java类java.lang.ref.SoftReference实现,一般情况下,GC是不会回收“软引用”引用的对象的。只有当系统内存不足时才会回收。“软引用”特别适合用来引用图片资源,仅当系统内存不足时才释放图片资源。 弱引用 “弱... 强引用 Java中最基本、最常用的就是“强引用",如果存在着对某个对象的强引用,GC时就不会回收该对象。 软引用 “软引用”通过Java类java.lang.ref.SoftReference实现,一般情况下,GC是不会回收“软引用”引用的对象的。只有当系统内存不足时才会回收。“软引用”特别适合用来引用图片资源,仅当系统内存不足时才释放图片资源。 弱引用 “弱...
- 1、显式Intent(explicit intent) 显式Intent明确指定了要启动的activity: Intent intent= new Intent(this, Target.class) 1 2、隐式Intent(implicit intent) 隐式Intent没有明确指定要启动的activity ,而是通过设置一些Intent Filter... 1、显式Intent(explicit intent) 显式Intent明确指定了要启动的activity: Intent intent= new Intent(this, Target.class) 1 2、隐式Intent(implicit intent) 隐式Intent没有明确指定要启动的activity ,而是通过设置一些Intent Filter...
- 将xml转换成对象的方法有很多种。今天我要走一条“曲线”来实现这个转换。 1.思路 将xml转换成json,再通过将json转换成java对象。 2.添加java-json.jar包 java-json.jar将此包放入项目中。这个包实现了xml到json字符串的转化,甚至对象到xml的转化。 3.使用方法 // xml中有“<![CDATA[ ]]&... 将xml转换成对象的方法有很多种。今天我要走一条“曲线”来实现这个转换。 1.思路 将xml转换成json,再通过将json转换成java对象。 2.添加java-json.jar包 java-json.jar将此包放入项目中。这个包实现了xml到json字符串的转化,甚至对象到xml的转化。 3.使用方法 // xml中有“<![CDATA[ ]]&...
- Android 的 SQLLite数据库 关系型数据库 SQLLite 每个应用程序都要使用数据,Android应用程序也不例外,Android使用开源的、与操作系统无关的SQL数据库—SQLite。SQLite第一个Alpha版本诞生于2000年5月,它是一款轻量级数据库,它的设计目标是嵌入式的,占用资源非常的低,只需要几百K的内存就够了。SQLite已经被多种软... Android 的 SQLLite数据库 关系型数据库 SQLLite 每个应用程序都要使用数据,Android应用程序也不例外,Android使用开源的、与操作系统无关的SQL数据库—SQLite。SQLite第一个Alpha版本诞生于2000年5月,它是一款轻量级数据库,它的设计目标是嵌入式的,占用资源非常的低,只需要几百K的内存就够了。SQLite已经被多种软...
- 解决方案 错误信息: All com.android.support libraries must use the exact same version specification (mixing versions can lead to runtime crashes 当我们在android studio使用api或compile添加一些第三方的依赖库时,就有可能... 解决方案 错误信息: All com.android.support libraries must use the exact same version specification (mixing versions can lead to runtime crashes 当我们在android studio使用api或compile添加一些第三方的依赖库时,就有可能...
- WebView请求需要网络权限,所以先在AndroidManifest.xml文件中申请网络权限: <uses-permission android:name="android.permission.INTERNET"/> 1 当WebView在进行网络请求时,突然报了net::ERR_CLEARTEXT_NOT_PERMITTED错误。经过了解,发现API 28(... WebView请求需要网络权限,所以先在AndroidManifest.xml文件中申请网络权限: <uses-permission android:name="android.permission.INTERNET"/> 1 当WebView在进行网络请求时,突然报了net::ERR_CLEARTEXT_NOT_PERMITTED错误。经过了解,发现API 28(...
- Android的虚拟机(VM)是依赖于自动内存管理方案。开发人员不需要亲自管理内存的分配与释放。这是Java编程语言相对于低层级编程语言(如C语言)的重要区别,低层级编程语言需要手动管理内存。 每一次应用程序需要分配内存,而堆没有足够空间来满足分配需求,GC(Garbage Collection)就会被启动。GC的工作就是遍历堆,枚举应用程序已分配的所有对象,并标记所... Android的虚拟机(VM)是依赖于自动内存管理方案。开发人员不需要亲自管理内存的分配与释放。这是Java编程语言相对于低层级编程语言(如C语言)的重要区别,低层级编程语言需要手动管理内存。 每一次应用程序需要分配内存,而堆没有足够空间来满足分配需求,GC(Garbage Collection)就会被启动。GC的工作就是遍历堆,枚举应用程序已分配的所有对象,并标记所...
- Android Studio 3.0+后的module依赖: dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'androidx.const... Android Studio 3.0+后的module依赖: dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'androidx.const...
- 需要更新适配器并调用notifyDataSetChanged。在Flutter中,如果setState()中更新widget列表,您会发现没有变化, 这是因为当setState被调用时,Flutter渲染引擎会遍历所有的widget以查看它们是否已经改变。 当遍历到你的ListView时,它会做一个==运算,以查看两个ListView是否相同,因为没有任何改变,因此没有... 需要更新适配器并调用notifyDataSetChanged。在Flutter中,如果setState()中更新widget列表,您会发现没有变化, 这是因为当setState被调用时,Flutter渲染引擎会遍历所有的widget以查看它们是否已经改变。 当遍历到你的ListView时,它会做一个==运算,以查看两个ListView是否相同,因为没有任何改变,因此没有...
- 在使用Git版本管理工具的项目里都会有一个隐藏文件叫 .gitgnore,它的作用是忽略指定的文件,这样Git就不会去跟踪这些文件的修改,它们也不会被提交到版本库。典型的android studio IDE的android项目的.gitgnore配置: # Built application files *.apk *.ap_ *.aab # Files for t... 在使用Git版本管理工具的项目里都会有一个隐藏文件叫 .gitgnore,它的作用是忽略指定的文件,这样Git就不会去跟踪这些文件的修改,它们也不会被提交到版本库。典型的android studio IDE的android项目的.gitgnore配置: # Built application files *.apk *.ap_ *.aab # Files for t...
上滑加载中
推荐直播
-
华为云码道 × 仓颉编程:工程化AI编码探索2026/05/27 周三 19:00-21:00
刘俊杰-华为云仓颉语言专家/李炎-华为云码道技术专家/王智鹏-OpenCangjie开源社区发起人
本场直播围绕华为云仓颉语言与华为云码道的深度结合,展示华为云智能编程从零基础到高效落地的完整生态能力。以华为云码道为引擎,仓颉语言为载体,带给大家日常提效、趣味创新到极速量产的开发体验。
回顾中 -
一个AI团队帮你写代码:华为云码道Agent Space实战2026/06/25 周四 19:00-21:00
张翰文-华为云码道工程师/郭英旭-青软创新科技集团股份有限公司 软件架构师
本场直播聚焦华为云码道Agent Space两大模式:研发办公、代码开发,亲身体验从需求到代码的AI自动化能力。实操演示基于华为 CodeArts CLI,依托 OpenSpec 规格体系从零搭建业务项目。
即将直播
热门标签