自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

潇潇安宁的android学习

坚持坚持再坚持

  • 博客(60)
  • 资源 (8)
  • 收藏
  • 关注

原创 ArkTS UI开发规范的常用装饰器

@Component 可以装饰struct。结构体(struct)在被装饰后具有基于组件的能力,需要实现build方法来更新UI。@Entry 可以装饰struct。组件在被装饰后会作为页面的入口组件,页面加载时将被渲染显示。@Preview 可以装饰struct。 如果自定义的组件被@Preivew装饰,则可以在DevEco Studio 的预览器中进行预览。@CustomDialog 可以装饰struct。用于装饰自定义弹窗。@Observed 装饰class。类被装饰后,该类中的数据变更将被

2024-06-03 22:02:00 319

原创 UIAbility的启动模式

当应用的UIAbility实例已经被创建,并且配置为指定实例模式时,如果再次调用startAbility()方法启动该UIAbility实例,且AbilityStage的onAcceptWant()回调匹配到一个已经创建的UIAbility实例,则系统会启动原来的UIAbility实例,并且不会重新创建一个新的UIAbility实例。对于文档应用,用户从文档应用中打开一个文档内容,回到文档内容,继续打开同一个文档,希望打开的还是同一个文档内容。以如下步骤所示进行举例说明。

2024-06-03 18:51:09 750

原创 UIAbility的生命周期

WindowStageCreate和WindowStageDestroy为窗口管理器(WindowStage)在UIAbility中管理UI界面功能的两个生命周期回调,从而实现UIAbility与窗口之间的弱耦合。UIAbility类提供了很多回调,通过这些回调可以知晓当前UIAbility的某个状态已经发生改变:例如UIAbility的创建和销毁,或者UIAbility发生了前后台的状态切换。当用户浏览、切换和返回到对应应用的时候,应用中的UIAbility实例会在其生命周期的不同状态之间转换。

2024-05-28 14:04:08 1071 1

原创 UIAbility的使用

UIAbility的概述、页面跳转、参数传递

2024-05-28 13:06:12 679

原创 Jetpack学习之Room数据库的注解

慕课网-jetpack实战课程笔记room数据库众多注解Room是Google为了简化旧式的SQLite操作专门提供的。1.拥有SQLite的所有操作功能;2.使用简单(类似于Retrofit库),通过注解的方式实现相关功能。编译时自动生成实现类Impl3.LiveData,LifeCycle,Paging天然融合,支持在module的build.gradle文件里定义工程的缓存目录a...

2020-04-24 22:23:47 1876

原创 android内存--强弱软虚

为什么要进行内存优化?.app运行内存限制,OOM导致app崩溃;app流畅性、相应速度和用户体验和内存息息相关。 android的内存管理方式:android系统内存分配与回收方式:每个app对应一个linux进程,在一个虚拟机下运行。 cmd ->adb shell 命令行模式下用ps命令可以看到所有正在运行的进程。GC只在Heap剩余空间不够时才出发进行垃圾回收。app内存...

2018-04-27 16:31:09 444 1

原创 android动画2--属性动画

属性动画Animator操作属性的getset方法来改变属性,画出动画效果。 实现Animation框架的功能。 位移和旋转: public void move(View view){ ObjectAnimator.ofFloat(mImageView,"translationX",0,200f).setDuration(1000).start(); ...

2018-04-26 22:03:26 221

原创 Kotlin程序结构---变量常量、函数、lambda表达式

val相当于java中的被Final关键字修饰的常量 val:值类型 = value 不可以被重复赋值。 运行时常量:val x = getX() 编译期常量:const val x = 2var是变量 var x:值类型 = value 或者用类型推导 var x = “helloworld” //定义变量并初始化 x = “hiworld” //再次赋值 类型推导:变...

2018-04-26 21:36:57 214

原创 Kotlin数据类型--空类型、智能类型、包、区间、数组

空类型和智能类型转换 字符串被设定为不能为null。例如:fun getName():String{ return null;}上面这样的代码段编译不会被通过,提示字符串不能被返回空值。 因此,下面一小段代码是空指针安全的。fun main(args:Array<String>){ println(getName().length)}如果...

2018-04-24 23:17:15 473

原创 Kotlin数据类型--布尔,数字,字符,字符串,类

Kotlin中有两个关键字var和val,用来定义变量。 var是一个可变变量,这是一个可以通过重新分配来更改为另一个值的变量。这种声明变量的方式和java中声明变量的方式一样。val是一个只读变量,这种声明变量的方式相当于java中的final变量。一个val创建的时候必须初始化,因为以后不能被改变。Boolean类型val aBoolean:Boolean = trueval bB...

2018-04-20 23:40:34 1185

原创 android动画1

android中的动画包括以下几类:系统不断的调用onDraw方法重绘页面。 Tween Animation 变换动画 Frame Animation 帧动画 Layout Animation 布局动画 Property Animation 属性动画 另外还有矢量图动画、轨迹动画等。 一、 Tween Animation 变换动画 alpha:渐变透明度;Scale:渐变尺寸缩放动画...

2018-04-18 21:48:55 161

原创 自定义控件1

为什么要自定义控件?1做特定的显示风格;2处理特有的用户交互,例如实现可滑动的textView;3优化布局,例如把title抽出来;4封装,复用,例如多项选择框等 自定义控件的步骤:1.自定义属性的声明与获取;2测量onMeasure方法;3,布局onLayout(ViewGroup);4,绘制,onDraw;5,onTouchEvent;6,onInterceptTouchEvent(View...

2018-04-17 22:40:17 110

原创 java设计模式--观察者模式

观察者模式定义对象间的一种一对多的依赖关系。当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 观察者:Observer update() 被观察者(目标):Subject attach();Detach();notify() 1. 目标与观察者的关系:典型的一对多 2. 单向依赖: 3. 命名建议 4. 触发通知的时机:完成消息处理后触发通知 5. ...

2018-04-17 18:56:45 159

原创 java设计模式--适配器模式

适配器模式:将一个类的接口,转换成客户期望的另外一个接口。使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。 适配器模式的构成: 通过包装Adapter把adaptee转换为客户需要的Target。 对象适配器/** * 三相插座接口 */public interface ThreePlugIf { public void powerWithThree();...

2018-04-16 11:42:57 130

原创 java设计模式--单例模式---线程安全的懒汉式

设计模式是一套被反复使用、多数人知晓的经过分类编目的、代码设计经验的总结。 使用设计模式是为了可重用代码、让代码更容易被他人理解,保证代码可靠性。在开发过程中,有些对象,我们只需要一个,比如:配置文件、工具类、线程池、缓存、日志对象等。这些对象如果被创造出了多个实例,就会导致许多问题,例如占用过多资源,读写文件不一致等。 怎么保证整个应用中某个实例有且只有一个?—-单例模式 单例模...

2018-04-15 20:06:14 819

原创 java并发--生产者消费者模型---volatile关键字

生产者消费者模型:系统中包含生产者和消费者两种角色,通过内存缓冲区进行通信。生产者生产消费者需要的产品,消费者把产品取出消费掉。 生产者===》 ====》消费者 生产者===》内存缓冲区(存放资源)====》消费者 生产者===》 ...

2018-04-09 22:21:00 551

原创 java中的多线程+手写死锁+线程池

java线程的基本方法:Thread类,Runnable接口。 线程的创建方法:Thread();Thread(String name);Thread(Runnable target);Thread(Runnable target,String name); 启动线程的方法:void start(); 线程休眠的方法:static void sleep(long millis); stati...

2018-04-09 18:14:19 675

原创 剑指offer19---顺时针打印矩阵

输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. int a[][] = { {1, 2, 3, 4, 5, 6}, ...

2018-04-06 21:42:34 118

原创 剑指offer18--二叉树的镜像

题目描述 操作给定的二叉树,将其变换为源二叉树的镜像。 输入描述: 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10...

2018-04-06 21:10:38 121

原创 剑指offer17---树的子结构

输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 要查找树A中是否存在和树B结构一样的子树,我们可以分成两步:   1.在树A中找到和B的根结点的值一样的结点R;   2.判断树A中以R为根结点的子树是不是包含和树B一样的结构。 public static boolean HasSubtree(TreeNode root1, TreeNode r...

2018-04-06 20:15:23 152

原创 剑指offer16---合并两个排序的链表

输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class Solution { ...

2018-04-06 18:34:55 115

原创 剑指offer15---反转链表

输入一个链表,反转链表后,输出链表的所有元素。/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/import java.util.Stack;public class Solution {...

2018-04-06 18:32:39 117

原创 剑指offer14--输出链表中倒数第k个结点

输入一个链表,输出该链表中倒数第k个结点。 简单粗暴的用另一个链表存储输入链表的逆序,然后返回逆序的第K个结点。public class ListNode { int val; ListNode next = null; ListNode(){} ListNode(int val) { this.val = val; }} pu...

2018-04-06 16:00:10 120

原创 剑指offer13--调整数组顺序使奇数位于偶数前面

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 简单粗暴的用空间换时间: public static int[] reOrder(int[] array) { int length = array.length; if (lengt...

2018-04-06 07:49:22 100

原创 剑指offer12--数值的整数次方

给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 主要考虑负数次方的情况。public double Power(double base, int exponent) { double result = 1; if (exponent >= 0) { for (in...

2018-04-06 07:07:06 109

原创 剑指offer11--二进制中1的个数

输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 概念: 1、机器数 一个数在计算机中的二进制表示形式, 叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1. 比如,十进制中的数 +7 ,计算机字长为8位,转换成二进制就是00000111。如果是 -7,就是 10000111 。 那么,这里的 00000011 和 10000...

2018-04-05 20:30:00 163

原创 剑指offer10----矩形覆盖

我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 关于分治法   分治法,分而治之。就是将原问题划分为n个规模较小,结构与原问题类似的小问题进行处理,递归地解决这些问题,然后再合并求解的过程。   分治法在解决的流程上分为三个步骤:   1.分解:将原问题划分为n个规模较小,结构与原问题类似的小问题。 ...

2018-04-05 20:16:05 153

原创 剑指offer9--变态跳台阶

一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。1.f(1) = 1;f(0) = 02.f(2) 会有两种跳的方式,一次1阶或者2阶,这回归到了问题f(1),f(2) = f(2-1) + f(2-2)3.f(3) 会有三种跳得方式,1阶、2阶、3阶,那么就是第一次跳出1阶后面剩下:f(3-1);第一次跳出2阶,剩下f(3...

2018-04-05 20:13:01 85

原创 剑指offer8 ----跳台阶

一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 假设,一级台阶,有f(1)种方法,二级有f(2)种,以此类推,n级有f(n)种方法。可以看出,f(1)=1;f(2)=2。那么,假设n级台阶,那么第一步就有两种情况,跳一步,跟跳两步。情况一:跳一步,那么接下去的就是f(n-1); 情况二:跳两步,那么接下去的就是f(n-2)。 所以总数是...

2018-04-05 20:09:09 141

原创 剑指offer7---斐波那契数列

大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。 n<=39public class Fibonacci { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int i = sc.nextInt(); ...

2018-04-05 19:18:27 201

原创 剑指offer6--旋转数组的最小数字----二分查找

把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。简单粗暴的遍历 private static int minNumberInRotateArray(int[] ...

2018-04-05 18:57:20 154

原创 剑指offer5--用两个栈来实现一个队列

用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。import java.util.Stack;/*思路:用stack1来实现队列的push操作,用stack2来实现队列的pop操作,当stack2为空时,将stack1的数据全部压入stack2,等待队列的pop操作。*/public class Solution { Stack<I...

2018-04-05 16:19:54 96

原创 剑指offer4--重建二叉树

输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。/** * Definition for binary tree * public class TreeNode { * int val; ...

2018-04-05 16:12:45 120

原创 剑指offer3--逆序打印链表

输入一个链表,从尾到头打印链表每个节点的值。/** public class ListNode {* int val;* ListNode next = null;** ListNode(int val) {* this.val = val;* }* }**/import java.u...

2018-04-05 16:05:32 102

原创 剑指offer2--替换空格--java--StringBuffer

请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 String一旦初始化,无法改变。 使用StringBuffer,是因为牛客网的模板。 实际使用中,单线程建议是用StringBuilder,因其无锁,效率高。 多线程中,使用StringBuffer。 public stat...

2018-04-05 16:01:32 81

原创 HTTP请求和响应报文详解

Http请求报文由三部分组成:请求行、请求头、请求体。 HTTP客户程序(例如浏览器),向服务器发送请求的时候必须指明请求类型(一般是GET或者POST)。如有必要,客户程序还可以选择发送其他的请求头。 ①是请求方法,GET和POST是最常见的HTTP方法,除此以外还包括DELETE、HEAD、OPTIONS、PUT、TRACE。不过,当前的大多数浏览器只支持GET和POST,androi...

2018-04-02 15:51:22 988

原创 Anr&Oom学习

什么是Anr? Application not responding 引起Anr的原因? 主线程被IO操作阻塞 主线程里存在了耗时计算 5s内没有响应用户输入事件 10s内广播接收器没有处理完毕 20s内服务没有处理完毕 Android中哪些操作是在主线程? Activity的所有生命周期回调都在主线程中执行 Service默认在主线程中执行 BroadcastReceive...

2018-04-01 19:00:02 196

转载 RecyclerView和ListView的对比

RecyclerView和ListView布局效果的对比: Android默认提供的RecyclerView支持线性布局,网格布局,瀑布流布局三种。通过布局管理器来控制布局效果。 RecyclerView和ListView常用API对比: ListView 的基础使用大家再熟悉不过,其使用的关键点主要如下: 继承重写 BaseAdapter 类 自定义 ViewHolder 和 conv...

2018-04-01 17:35:45 277

转载 protobuf格式的java使用

Protobuf协议,全称:Protocol Buffer 它跟JSON,XML一样,是一个规定好的数据传播格式。不同于XML、JSON等的数据格式,protobuf直接将用户数据序列化成了二进制数据,这从本质上决定了它的性能优势,也是目前大家选择它的一个重要原因,特别是当对传输效率要求较高的情况下。 目前主要有两个大版本:proto2 和 proto3。 其中 proto2 支持 Java、...

2018-04-01 10:41:21 780

原创 android线程间通信机制5---IntentService

IntentService就是一个自身含有消息循环的Service,内部封装了一个消息队列和一个HandlerThread。 onHandleIntent方法运行在它的消息队列线程中。

2018-03-30 19:23:42 192

android 基础动画demo

android的基础动画 旋转 缩放 连续 list 闪烁 AnimationUtils.loadAnimation

2018-04-18

android 断点续传下载

android 断点续传

2018-04-15

横向无限循环的筛选组件

1.控件可以动态设置宽度;2.每次滑动都要左对齐,并默认选中最左边选项;3.控件可以无限循环。

2017-07-20

android激活系统设备管理器之一键锁屏

申请应用系统管理员以及一键锁屏,使用DevicePolicyManager类。 写一个广播接收者,给这个BroadcastReceiver申请系统管理员的权限,让操作系统给广播接收者授权。这样就激活了系统的授权组件。这些功能都是由Android提供的DevicePolicyManager类来完成的。

2016-10-27

android指南针

利用Android的TYPE_ORIENTATION传感器和旋转动画实现指南针。

2016-10-27

js 网页播放器

JS实现的网页播放器 所有文件都可以用记事本打开 里面说明很详细

2014-01-25

face detection

很好的人脸检测算法 matlab编写 adaboost分类器识别

2009-09-30

新闻发布系统

新闻发布 后台管理 asp

2008-04-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除