- 博客(10)
- 收藏
- 关注
原创 Android 面试题之ContentProvider使用+实例
ContentProvider是Android的四大组件之一,以标准化的方式在Android 应用间共享数据。ContentProvider封装的数据存储以及增删改查等,并且必须实现一个对外统一的接口(Uri)。Uri(通用资源标识符 Universal Resource Identifer),代表数据操作的地址,每一个ContentProvider都会有唯一的地址。ContentProvider使用的Uri语法结构如下:是通用前缀,表示该Uri用于ContentProvider定位资源。
2024-12-17 00:13:53
499
原创 Android 面试 - 动画
在一定时间间隔内,通过不断改变值并赋值给对象的属性从而实现该对象在该属性上的动画效果。出现的版本:Android 3.0(API 11)后才提供的一种全新动画模式。
2024-12-17 00:10:12
265
原创 Android 计时器Chronometer 使用及源码分析
Chronometer是一个**「简单的计时器」「不显示当前时间」**,它显示的是从某个起始时间开始,一共过去了多长时间。
2024-12-17 00:06:31
1298
原创 Android 自定义贝塞尔曲线工具
通过递归的方法,每一层中绘制当前控制点控制点之间的线段.除了第一层的样式是固定的之外,一定阶数下的辅助线段及控制点都可以被控制是否展示.而当开启无限制模式的时候,当前绘制的贝塞尔曲线的控制点没有上限,但是为了展示的效果当前模式下的辅助线段的样式都是一致的.监测屏幕的点击事件,增加控制点,除此之外,在长时间触摸屏幕后还会开启是否需要移动一定范围内最近的点移动到触碰的位置的监测.并能提供当前点的列表用于贝塞尔曲线绘制层绘制贝塞尔曲线绘制层来绘制贝塞尔曲线.//判断当前触碰的点附近是否有绘制过的点。
2024-12-17 00:02:50
1013
原创 Android 自定义View 代码复用
com.zhjy.hxf.hzloginview.view.LoginView就是这个View的全名称,同时我们给这个LoginView指定了id为loginView。以上代码是所有功能都在View中进行实现了,那么我们怎么去实现代码的复用呢,显然是不好的,我们得想办法在Activity去实现这个功能。下面在activity中实现这个接口(这个在java里比在ObjC里简单多了好吗),那么我们就把所有的代码都贴出来。在上面的代码中我们定义一个mContext成员变量,在这边我们后面会使用到。
2024-12-16 23:59:09
589
原创 Android 系统预设 App,有什么难的?
在什么情况下签名。testkey:普通 APK,默认情况下使用。platform:该 APK 完成一些系统的核心功能。经过对系统中存在的文件夹的访问测试,这种方式编译出来的 APK 所在进程的 UID 为 system,可以参见 Settings。shared:该 APK 需要和 进程共享数据,可以参见 Launcher。media:该 APK 是 系统中的一环,可以参见 Gallery。6、指定模块的类型,可不用定义。LOCAL_MODULE_CLASS := APPSLOCAL_MODULE_CLA
2024-12-16 23:55:29
1092
原创 android 校验用户名密码手机邮箱身份证邮编等
/ 数字[0-9]+?if (username.substring(0, 1).equals(" ")) {// 头部有空格。if (username.endsWith(" ")) {// 未部有空格。if (username.contains(" ")) {// 不能含有。
2024-12-16 23:48:02
906
原创 Android 性能优化系列:抖音字节跳动技术团队教你Java 内存优化
我们基于 LeakCanary 核心库在线下设计了一套自动分析上报内存泄露的工具,主要流程如下:图 2.线下自动分析流程抖音在运行了一段线下的内存泄漏工具之后,发现了线下工具的各种弊端:检测出来的内存泄漏过多,并且也没有比较好的优先级排序,研发消费不过来,历史问题就一直堆积。另外也很难和业务研发沟通问题解决的收益,大家针对解决线下的内存泄漏问题的 ROI(投入产出比)比较难对齐。线下场景能跑到的场景有限,很难把所有用户场景穷尽。
2024-12-16 23:44:21
1069
原创 Android 安卓MVC架构
我首先写的是一个Bean类,也就是模拟的数据,之后就要实现可以更新数据的这一层(模型),所以呢,在这一层写入了增加和删除,以及查找方法。在安卓中,MVC架构模式,当用户点击屏幕有数据交互的时候(比如说,请求网络、解析操作等),此时,首先会调用控制器(Controller)中的方法,让它负责转发到模型(Model),让模型中的功能或者是算法执行,之后模型(Model)执行完毕,此时控制器(Controller)就要调用实现的接口,把数据返回给视图(View)。看看我写的demo例子吧!
2024-12-16 23:36:45
981
原创 Android 子线程更新UI了解吗?
我们看一下异步消息的模型(生产者消费者模型),如下:那么单线程的话,怎么搞呢?其实只要一个消息不断的去读队列,如果没有消息,那就只等待状态,只要有消息进来,比如点击事件,滑动事件等,就可以直接取出消息执行。下面我们来看一下Android里面的异步消息实现机制 Handler,主线程在APP启动(ActivityThread)的时候,就会启动消息循环,如下://ActivityThread 省略部分代码//Handler启动机制: Looper.prepare()
2024-12-16 23:33:03
1097
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅