摘要: SparseArray是Android中特有的数据结构,他的几个重要的特点; 以键值对形式进行存储,基于二分查找,因此查找的时间复杂度为0(LogN); .由于SparseArray中Key存储的是数组形式,因此可以直接以int作为Key。避免了HashMap的装箱拆箱操作,性能更高且int的存储开 阅读全文
posted @ 2023-03-17 10:00 xiaowang_lj 阅读(156) 评论(0) 推荐(0) 编辑
摘要: android:exported="true"是什么 android:exported 其实并不是Android12的新属性,在前面的版本也可以看见它。它是Android中的四大组件 Activity,Service,Provider,Receiver 四大组件中都会有的一个属性。 作用是什么 在A 阅读全文
posted @ 2023-03-16 19:23 xiaowang_lj 阅读(378) 评论(0) 推荐(0) 编辑
摘要: 1.概述 UsageStatsService 它是收集、聚合和保存应用程序使用数据的服务, 这些数据可以被 AppOps 授权的应用查询。源码路径 framework/base/services/usage/java/com/android/server/usage/下。 UserUsageStat 阅读全文
posted @ 2023-03-16 19:19 xiaowang_lj 阅读(502) 评论(0) 推荐(0) 编辑
摘要: C++中的五种内存 在C++中内存分为五个区:堆、栈、自由存储区、全局/静态存储区和常量存储区。 堆区:用户使用new获得的内存在这里。用户需要自行管理其声明周期,也就是说一个new要对应一个delete,如果因为某些原因(之后我会说明一些可能的原因)内存没有被释放,那么在程序结束后,会由操作系统自 阅读全文
posted @ 2023-03-16 14:21 xiaowang_lj 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 1.定义类 一般写在.h文件中 #include<string> #include<iostream> using namespace std; void print(char content[]); void TestString1(); void TestString2(); void Test 阅读全文
posted @ 2023-03-16 11:27 xiaowang_lj 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 小引 C语言中,字符串是以\0结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数,但是这些库函数与字符串是分离开的,不太符合OOP(面向对象)的思想,而且底层空间需要用户自己管理,稍不留神可能还会越界访问。 C++中就引入了String类,它可以看做是一个管理字符串的数据结构 阅读全文
posted @ 2023-03-16 11:19 xiaowang_lj 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 权限 我们知道,Android应用都运行在沙盒中,默认情况下这些应用只能访问他们自己的域,即自己的文件和非常少量的系统服务。为了能够和系统或者其他应用交互,app就需要申请额外的一些权限。 permission(权限)实际上就是一个简单的字串,申明需要做哪些类型的操作。 Android系统预置了很多 阅读全文
posted @ 2023-03-15 18:39 xiaowang_lj 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 1、CompileSdkVersion是你SDK的版本号,也就是API Level,指定了Gradle编译你的App时使用的Android API版本 2、buildeToolVersion是你构建工具的版本,其中包括了打包工具aapt、dx等等。这个工具的目录位于sdk_path/build-to 阅读全文
posted @ 2023-03-15 11:16 xiaowang_lj 阅读(635) 评论(0) 推荐(0) 编辑
摘要: 1.观察者 Observer 例如客户 2.被观察者 Observable 例如 商品 3.被观察者基础Observable public class House extends Observable { private int price; public int getPrice() { retu 阅读全文
posted @ 2023-03-15 11:09 xiaowang_lj 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 一、什么是CAS CAS,compare and swap的缩写,中文翻译成比较并交换。 CAS 操作包含三个操作数 —— 内存位置(V)、预期原值(A)和新值(B)。 如果内存位置的值与预期原值相匹配,那么处理器会自动将该位置值更新为新值 。否则,处理器不做任何操作。 二、从一个案例引出CAS 案 阅读全文
posted @ 2023-03-09 17:55 xiaowang_lj 阅读(4621) 评论(0) 推荐(0) 编辑