Android技术
文章平均质量分 78
普通网友
这个作者很懒,什么都没留下…
展开
-
Android组件化搭建学习
为什么要用组件化?在项目的开发过程中,随着开发人员的增多及功能的增加,如果提前没有使用合理的开发架构,那么代码会越来臃肿,功能间代码耦合也会越来越严重,这时候为了保证项目代码的质量,我们就必须进行重构组件化是指解耦复杂系统时将多个功能模块拆分,重组的过程。在Android工程上表现上就是把app按照其业务的不同,划分为不同的Module。转载 2023-11-23 20:11:42 · 599 阅读 · 0 评论 -
Android加固为何重要?很多人不学
加固整体思路:先解压apk文件,取出dex文件,对dex文件进行加密,然后组合壳中的dex文件(Android类加载机制),结合之前的apk资源(解压apk除dex以外的其他资源,如manifest、res等),打包新的apk文件,并对新的apk文件进行对齐、签名。加密阶段主要是讲把原apk文件中提取出来的classes.dex文件通过加密程序进行加密。这一阶段主要是讲上一步生成的加密的dex文件和我们的壳dex文件合并,将加密的dex文件追加在壳dex文件后面,并在文件末尾追加加密dex文件的大小数值。原创 2023-11-21 20:17:34 · 484 阅读 · 0 评论 -
Android JVM内存模型——老生常谈
JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。原创 2023-11-09 19:24:52 · 376 阅读 · 0 评论 -
Android岗位居然要求有鸿蒙开发的需求了?HarmonyOS它来了
鸿蒙才开发几年,就已经让对手们脊背发凉了,要知道主流操作系统都是积累几十年的产物。以苹果MacOS为例,其前身NextStep是85年开干的。另一家微软公司,Win95爆卖的时候,中国还没加入WTO。大家使用过鸿蒙系统产品的,应该能直观感觉到它的流畅性,易用性,如果你有个华为全家桶,体会更明显,要知道它才推出几年而已。鸿蒙系统的生态正在迅速发展壮大,据统计,其在国内市场的份额已经超过了8%,并且拥有超过千家合作伙伴。鸿蒙系统覆盖了智能手机、汽车、手表、家电等各类终端设备,形成了一个全面的生态网络。原创 2023-11-06 17:19:16 · 383 阅读 · 0 评论 -
Android前沿技术?Jetpack如何?
Jetpack Compose是Android开发领域的一项前沿技术,它提供了一种全新的方式来构建用户界面。近年来,Jetpack Compose在各大招聘等网站上的招聘岗位逐渐增多,薪资待遇也相应提高。本文将从招聘岗位的薪资与技术要求入手,分析Jetpack Compose的岗位优势、学习路线和技术内容,并说说Jetpack Compose的发展。原创 2023-08-07 22:16:56 · 202 阅读 · 0 评论 -
刚面试了一位5年的Android开发,一问三不知,他还反怼我...
面试时我打算聊点基础的,先打开一下话题,结果没想到我一问,不提开发工具,仅仅基础的技术很多也知之不详,6年的工作经验仅仅是实现简单的功能堆起来的,毫无深度,对于APP性能优化等等一问三不知,都停留Android的基础层面上,性能优化问题更是一问一个死,framework最新动态也毫无关注。最近帮部门主管面试了很多人,从简历上看这些人的工作年限都不短,但做的都是一些传统的项目,想做现在大环境越来越难,大家找工作都不容易,就打算见一见。懂性能优化、网络访问、常用开源框架,framework等知识点。原创 2023-05-12 22:19:06 · 253 阅读 · 0 评论 -
一篇文章让你了解Kotlin Lazy的使用和原理
原子性就是指该操作是不可再分的。不论是多核还是单核,具有原子性的量,同一时刻只能有一个线程来对它进行操作。简而言之,在整个操作过程中不会被线程调度器中断的操作,都可认为是原子性。比如 a = 1,即直接赋值的这种行为,其不依赖其他步骤。原创 2023-05-09 22:35:16 · 649 阅读 · 0 评论 -
关于Android的性能优化,主要是针对哪些方面的问题进行优化
我们在开发Android的时候,经常会遇到一些性能问题;例如:卡顿、无响应,崩溃等,当然,这些问题为我们可以从**日志**来进行**追踪**,尽可能避免此类问题的发生,要解决这些问题,就需要在开发中**及时发现**和**优化**有风险的**代码**,除了利用一些工具检查以外,还要对**代码质量**有所提高,因此**性能优化不是一朝一夕的事**原创 2023-05-05 21:35:03 · 176 阅读 · 0 评论 -
Android系统开发之Android蓝牙SPP通信客户端实现详解
Android不同版本,蓝牙权限需要适配,分为6.0之前,6.0至11.0之间、12.0及之后,三类不同版本的适配SPP通信前需要先进行蓝牙配对蓝牙配对操作针对实际情况采用系统蓝牙设置里进行配对或者采用调用Create Socket通信接口自动触发配对有些操作需要在子线程中进行,防止ANR。原创 2023-04-27 21:56:27 · 1178 阅读 · 0 评论 -
Android音视频开发-OpenGL ES着色器使用的使用方法
顶点着色器的内建变量主要是输出变量,即将着色器产生的值传递给渲染管线,因此在顶点着色器中要对这些内建变量赋值,包括gl_Position、gl_PointSize等。一般用于每个顶点都不相同的量,比如顶点位置,颜色,法线等。片元着色器中的内建输入变量,gl_FragCoord、gl_FrontFacing,并且还是只读的,是由渲染管线片元着色器之前阶段生成的。uniform:统一变量,一般用于对同一组顶点组成的一个物体所有顶点都相同的量,比如光源位置,转换矩阵,颜色,光照等。获取uniform类型的变量。原创 2023-04-24 21:19:58 · 290 阅读 · 1 评论 -
【Android App实战】购物车添加商品特效实现详解
Interpolator 被用来修饰动画效果,定义动画的变化率,可以使存在的动画效果accelerated(加速),decelerated(减速),repeated(重复),bounced(弹跳)等。以前在饿了么上面订餐的时候,曾经看到过这么一个特效,就是将商品加入订单时,会有一个小球呈抛物线状落入购物车中,然后购物车中的数量会改变。当点击购买按钮的时候,我们在布局上加入一个动画层,然后让小球在动画层上做抛物线运动,就可实现上图中的效果了。这段代码很简单,就是设置小球的初始坐标,然后开始执行动画。原创 2023-04-19 20:40:23 · 578 阅读 · 0 评论 -
Android自定义View实现音频播放圆形进度条详解
获取播放器按钮图片的大小后,计算出进度条的相应的坐标放入RectF对象中,RectF对象是用来表示坐标系中的一块矩形区域,用于在特定的位置画图。要点其实就是canvas.drawArc()方法在RecfF的位置里画弧形,通过音频播放的开始时间/总时间*360来计算出弧度。要注意的是每次调用onDraw()方法的时候都需要先将canvas画透明色来起到清屏的作用。然后在xml布局的自定义View中加入就能获取图片的id值了。本篇文章介绍自定义View配合属性动画来实现如下的效果。原创 2023-04-19 20:32:56 · 413 阅读 · 0 评论 -
Android常用开源框架之SlidingFragment的使用详解
MainActivity.java主要是用于初始化SlidingFragmentActivity的操作,设置参数等。另外5个Fragment的代码都一样就是直接继承BaseFragment.java没有任何实现,其他4个省略。MenuFragment.java是用于管理这几个Fragment的。原创 2023-04-17 20:36:28 · 167 阅读 · 0 评论 -
【android开发小知识】使用观察者模式Observer观察网络状态
在Android开发过程中,我们经常会观察当前的网络状态,并判断网络状况是否发生变化,对于这种情况用观察者模式比较合适,不用多说,直接看代码。这里有个地方一定要注意:当Activity销毁的时候,一定要把这个观察者从观察者队列里移除掉!既然用观察者模式,自然离不开观察者模式里最重要的两个类Subject和Ovserver了。好了,到这里,标题上所有的内容已经写完了,最后,别忘了权限和注册广播接收者。读者:你是不是忘了点什么,说好的网络监听呢?原创 2023-04-17 20:11:35 · 208 阅读 · 0 评论 -
Android性能优化实战之App启动速度优化详解
APP的启动速度很重要APP启动速度慢可能会造成不好的用户体验,尤其是最近用了Android studio之后,如果 长时间不打开app,启动速度会特别慢, 下面让我们讨论一下影响app启动速度的原因和解决方法。原创 2023-04-14 21:59:28 · 295 阅读 · 0 评论 -
Android音视频开发,实现刮刮卡功能详解
上述原理图中,点 P1、P2 和半径 r 为已知信息,我们需要求出矩形的四个点 V0、V1、V2、V3 的坐标,便于去构建矩形网格,而两个圆的圆心和半径信息已知,只需要以圆心为顶点构建三角形即可。设 P0、P1 为手指在屏幕上滑动时前后相邻的 2 个点(注意屏幕坐标需要进行归一化转换为纹理坐标),r 为圆的半径,同时也用于控制矩形的宽度。这是因为点 V0、V1 的相对位置(谁在左边、谁在右边)我们并不知道,为了确保能绘制完整的矩形,这里直接绘制了 3 个三角形,这个后面还有优化。原创 2023-04-12 21:19:04 · 156 阅读 · 0 评论 -
Android开发中四种常用的多线程实现方式
*注意:**handler 在 UI 线程中初始化的,looper 在一个子线程中执行,我们必须等 mLooper 创建完成之后,才能调用 getLooper ,源码中是通过 wait 和 notify 解决两个线程的同步问题。Looper 负责创建 MessageQueue 消息对列,然后进入一个无限 for 循环中,不断地从消息队列中取消息,如果消息队列为空,当前线程阻塞,Handler 负责向消息队列中发送消息。Android AsyncTask 类,它是封装好的线程池,操作 UI 线程极其方便。原创 2023-04-12 20:45:36 · 419 阅读 · 0 评论 -
Android Studio调试功能的使用方法介绍
本文为大家汇总了Android Studio调试功能的使用方法,供大家参考,具体内容如下选定要设置断点的代码行,在行号的区域后面单击鼠标左键即可。点击红色箭头指向的小虫子,开始进入调试。IDE下方出现Debug视图,红色的箭头指向的是现在调试程序停留的代码行,方法f2()中,程序的第11行。红色箭头悬停的区域是程序的方法调用栈区。在这个区域中显示了程序执行到断点处所调用过的所用方法,越下面的方法被调用的越早。原创 2023-04-10 22:11:22 · 2764 阅读 · 0 评论 -
Android开发中如何对图片进行内存优化
在Android中,对图片的使用一定要关注,大多数情况下,占用内存多,OOM发生都是因为图片资源使用不当。不要盲目加一个大图到Android项目中,能使用.9进来使用,而且.9图本身尽可能小,另外能使用绘制实现就不要加一个图片资源。有些时候,在不影响用户体验的情况下,可以降低图片色彩质量,比如不需要透明度的就不要了,有些透明度用肉眼看不出来。原创 2023-04-07 22:37:56 · 255 阅读 · 0 评论 -
Android开发中如何使用WebSocket 实现消息通信
消息推送功能可以说是手机APP不可或缺的功能之一,一般我们可以使用第三方推送的SDK进行简单推送,比如极光推送、信鸽推等,但是对于消息聊天的时效性或者三方推送不能满足业务需求,我们需要使用WebSocket来实现消息推送功能。原创 2023-04-06 20:29:54 · 757 阅读 · 1 评论 -
Android前沿技术之Compose开发中的一些实用小技巧
在Compose开发过程中,我们经常会遇到一些看起来简单但实际上并不知道如何处理的小问题,比如去除点击阴影、Dialog全屏等问题,本文记录了这些常见小问题的处理方式。如果你有更好的方案,欢迎交流~来新公司快三个月了,学到了许多,也成长了许多,送给自己一句常说的话:但行好事莫问前程~更多关于Android前沿技术知识可参考Android进阶学习手册。原创 2023-04-04 20:33:03 · 772 阅读 · 0 评论 -
Android 应用开发项目中如何使用线程 Bezier 曲线?
贝塞尔曲线(Bézier curve),又称贝兹曲线或贝济埃曲线,是应用于二维图形应用程序的数学曲线。一般的矢量图形软件通过它来精确画出曲线,贝兹曲线由线段与节点组成,节点是可拖动的支点,线段像可伸缩的皮筋,我们在绘图工具上看到的钢笔工具就是来做这种矢量曲线的。主要结构:起始点、终止点(也称锚点)、控制点。通过调整控制点,贝塞尔曲线的形状会发生变化。原创 2023-03-14 20:58:37 · 167 阅读 · 0 评论 -
Android 中如何使用 Room 架构组件?
有时,您希望将一个实体或普通的以前的Java对象(POJO)作为数据库逻辑中的一个完整的整体来表示,即使该对象包含几个字段。Room其实就是一个orm,抽象了SQLite的使用,但是它作为Android的亲儿子orm,并且原生支持LiveData和Rxjava嵌套使用,学习一下还是不错的。您应该将导出的JSON文件(表示数据库的模式历史记录)存储在您的版本控制系统中,因为它允许为测试目的创建您的数据库的旧版本。使用这些转换器,您可以在其他查询中使用您的自定义类型,正如您将使用基本类型一样,如下代码所示。原创 2023-03-09 16:50:30 · 280 阅读 · 0 评论 -
Android开发常用的几种设计模式详解
由于项目变更的频繁性,作为一名程序员,我们需要掌握设计模式的必要性,就不言而喻~~,下面就是一些我自己学习的设计模式总结。转载 2023-03-05 21:11:01 · 2569 阅读 · 0 评论 -
Android 性能优化系列之 UI 优化怎么做
开源协议的选择,是开源项目的一个重要部分,在国内,可能大家对开源协议的理解还不是很深入,但是在国外,开源协议的约束是非常重的,开发者会自发的遵守源项目的开源协议,这里借用阮一峰的一张图,来简单的理解下开源协议的种类。这个项目,也可以给简单的md界面创建一些有意思的东西,例如我的界面中的GitHub Stats和项目卡片,使用方法在这个Repo中都写的很清楚了,大家可以根据自己的需要,搭建属于自己的GitHub个人主页。把这些链接直接贴到README中即可展示。原创 2023-03-03 20:20:16 · 244 阅读 · 0 评论
分享