自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 Android进阶:十、自定义视频播放器-1

如果开发人员不对SurfaceHolder进行维护,会出现最小化程序后,再打开应用的时候,视频的声音在继续播放,但是不显示画面了的情况,这就是因为当SurfaceView不被用户可见的时候,之前的SurfaceHolder已经被销毁了,再次进入的时候,界面上的SurfaceHolder已经是新的SurfaceHolder了。和SurfaceView不同的是,它不会在WMS中单独创建窗口,而是作为View hierachy中的一个普通View,因此可以和其它普通View一样进行移动,旋转,缩放,动画等变化。

2024-09-22 15:41:27 1063

原创 android设计模式—单例设计模式

饿汉单例模式//构造函数私有化//公有的静态函数,对外暴露获取单例对象的接口饿汉单例模式采用的是静态变量 + fianl关键字的方式来确保单例模式,应用启动的时候就生成单例对象,效率不高懒汉模式//构造函数私有化//公有的静态函数,对外暴露获取单例对象的接口懒汉模式的主要是加了synchronized关键字,每调用一次getInstance方法,都会进行同步,造成了不必要的开销DCL模式(双重检查锁定模式)// 静态属性,volatile保证可见性和禁止指令重排序。

2024-09-22 14:55:00 530

原创 Android自动化构建之Ant多渠道打包实践(下)

========这里以友盟统计为例,对各个渠道进行统计,我们需要先集成它的SDK权限友盟统计配置

2024-09-22 13:51:23 373

原创 android热修复框架对比,大厂offer手到擒来,讲的明明白白!_android 热修复

其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。下图是我进阶学习所积累的历年腾讯、头条、阿里、美团、字节跳动等公司2019-2021年的高频面试题,博主还把这些技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节以上【历年大厂高级工程师面试题集】、【Android高级进阶教学视频】、【Android高级知识点学习PDF】皆无偿分享给大家。

2024-09-22 12:03:59 478

原创 Android学习指南 — Android基础知识汇总

outState?.run {启动模式| LaunchMode | 说明 || — | — || standard | 系统在启动它的任务中创建 activity 的新实例 || singleTop | 如果activity的实例已存在于当前任务的顶部,则系统通过调用其onNewIntent(),否则会创建新实例 || singleTask | 系统创建新 task 并在 task 的根目录下实例化 activity。

2024-09-22 06:51:01 2322

原创 Android中SQLite使用

大家可以看到,几个关键步骤是,首先判断mDatabase如果不为空已打开并不是只读模式则直接返回,否则如果mDatabase不为空则加锁,然后开始打开或创建数据库,比较版本,根据版本号来调用相应的方法,为数据库设置新版本号,最后释放旧的不为空的mDatabase并解锁,把新打开的数据库实例赋予mDatabase,并返回最新实例。正如上面所述,数据库第一次创建时onCreate方法会被调用,我们可以执行创建表的语句,当系统发现版本变化之后,会调用onUpgrade方法,我们可以执行修改表结构等语句。

2024-09-22 04:16:37 1169

原创 Android 面试题集(2019-04-04总结)

5.Synchronized放在静态方法和非静态方法上的锁对象分别是什么?6.如何停止掉一个线程?7.给我说说线程池的种类 & 特点 & 内部原理 & 平时当中使用案例。8.给我谈谈你是如何保证线程数据安全问题的?9.wait()和sleep()的区别?10.什么是公平锁&非公平锁&区别?11.给我讲讲线程间通信12.volatile关键字是如何使用的?原理是什么13.说说使用5个线程去计算一个数组之和的思路。14.谈谈线程阻塞的原因有哪些?15.谈谈你对notify的理解?

2024-09-22 01:38:08 1771

原创 Android 开发中,与屏幕有关的三个小众知识

越来越多的手机厂商趋向于全面屏设计,比如今年出厂的 18.5:9 屏幕比例的三星 Galaxy S8 手机,前两天刚发布 18:9 屏幕比例的 OnePlus 5T 手机, 屏幕比例均超过过去常见的 16:9 比例。超大屏幕比例的设计对于 Android App 来说,存在一个屏幕适配的问题。我们需要在 Manifest 清单文件中定义一个更大值的属性,保证我们的 App 能够充分利用多余的屏幕空间。

2024-09-21 23:05:39 731

原创 Android WebView的WebSettings常用方法介绍

设置是否应允许在文件方案URL上下文中运行的JavaScript访问其他文件方案URL中的内容 |设置WebView是否不应从网络加载图像资源(通过http和https URI方案访问的资源) |设置WebView是否应启用对“viewport”HTML元标记的支持,或者应使用宽视口 |设置是否应允许在文件方案URL的上下文中运行的JavaScript访问来自任何源的内容 |设置WebView是否应支持使用其屏幕缩放控件和手势进行缩放 |设置使用内置缩放机制时WebView是否应显示屏幕缩放控件 |

2024-09-21 20:28:41 340

原创 Android Jetpack 技术内幕探索之 LiveData

当向 View 层提供获取 LiveData 方法时,返回 LiveData,这样在 View 层,Activity/Fragment 无法修改 LiveData 对象中的数据(除非将返回的 LiveData 强转为 MutableLiveData), 如,在使用 LiveData 前,这些生命周期的判断处理逻辑,都是需要我们去写的,很麻烦。通过调用 LiveData 的 observe 方法,开启数据的监测,当 LiveData 封装的数据有变化时,处于 active 状态的观察者就会收到数据变化通知。

2024-09-21 17:53:41 423

空空如也

空空如也

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

TA关注的人

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