你真的了解Emoji吗?Emoji全貌大揭秘 随着科技发展,智能手机的普及,Emoji已经融入到了我们的生活中,但每天使用Emoji的你真的清楚它是什么,是由什么东西组成的,和普通的字符有什么区别吗?本文就从技术的角度带你揭秘Emoji的全貌
2023小红书Android面试之旅 小红书面试总体而言给我的体验是很好的,每轮面试后基本上都是当天就能出结果,然后约下一轮的面试。最终从一面到HR面结束出结果,一共花了9天时间,还是挺快的。二面结束后,一面的面试官加我微信说小红书目前很缺人,感兴趣的同学也可以来试试。
Android源码分析 - Service的停止与重建 在上一篇文章中,我们分析了一个Service是怎么启动的,这次我们再来看看一个Service是如何被停止的,什么情况下Service会被重建以及它的重建过程
Android源码分析 - Service启动流程 在之前的文章中,我们已经分析过了四大组件中Activity和ContentProvider的启动流程,这次我们就来讲讲四大组件之一的Service是如何启动和绑定的
谈谈Android如何实现不同大小的圆角 在开发过程中,设计常常会有一些比较炫酷的想法,比如两边不一样大小的圆角啦,甚至四角的radius各不相同,对于这种情况我们该怎么实现呢? 今天就来谈谈我对实现不同大小的圆角的一些想法和遇到的问题
Android源码分析 - Framework层的ContentProvider全解析 ContentProvider是用来帮助应用管理其自身和其他应用所存储数据的访问,并提供与其他应用共享数据的方法,今天,我们就从Framework层对ContentProvider做一个深入解析
有手就行!Sovits AI人声模型训练 随着AI孙燕姿的爆火出圈,各大视频平台的AI人声投稿量激增,B站首页频频给我推送相关视频,正好我对AIGC方面也挺感兴趣,心动不如行动,于是我用自己的声音训练了一个模型,发现整个过程异常的简单,并且最终出来的效果也不错,真的是有手就行,所以这次将我自己训练推理的过程经验分享给大家。
如何完美监听帧动画?AnimationDrawable深度解析 作为苦逼的程序员,产品和设计提出来的需求咱也没法拒绝,这不,前两天设计就给提了个需求,要求在帧动画结束后,把原位置的动画替换成一段文字,我们该怎么监听AnimationDrawable的结束事件呢
Android源码分析 - Activity销毁流程 我们在之前的几篇Activity启动流程分析中已经了解了Activity一半的生命周期,接下来这篇文章我们就来分析一下Activity销毁相关的生命周期
史上最完美的Android沉浸式状态导航栏攻略 在状态栏和导航栏沉浸式这一块,我还是踩了挺多坑,费了挺多精力的,这次我将我踩坑,适配各机型总结出来的史上最完美的Android沉浸式状态导航栏攻略分享给大家
Android源码分析 - Activity启动流程(中) 在上一篇文章中,我们分析了Activity启动流程中的一小部分,基本上可以算是Activity启动的前置准备工作,本篇文章我们将会分析App进程启动的主要流程
Android交叉编译OpenCV+FFmpeg+x264的艰难历程 由于OpenCV给Android提供的so库默认不支持h264编码,于是我踏上了艰难的OpenCV+FFmpeg+x264 Android交叉编译之路
Android源码分析 - Activity启动流程(上) 作为一名Android开发,我们最熟悉并且最常打交道的当然非四大组件中的Activity莫属,这次我们就来讲讲一个Activity是怎样启动起来的
Android源码分析 - Framework层的Binder(服务端篇) 我们在上一片文章Android源码分析 - Framework层的Binder(客户端篇)中,分析了客户端是怎么向服务端通过驱动发起请求,然后再接收服务端的返回的。本篇文章,我们将会以服务端的视角,分析服务端是怎么通过驱动接收客户端的请求,处理,然后再返回给客户端的。上篇文章我们是以作为服务端分析的,本篇文章我们还是围绕着它来做分析,它也是一个比较特殊的服务端,我们正好可以顺便分析一下它是怎么成为驱动的的是在独立的进程中运行的,它是由进程从文件中解析并启动的,......
Android源码分析 - Framework层的Binder(客户端篇) 本篇以分支作为基础解析我们在之前的文章中,从驱动层面分析了是怎样工作的,但驱动只涉及传输部分,待传输对象是怎么产生的呢,这就是层的工作了。我们要彻底了解的工作原理,不仅要去看驱动层,还得去看层以及应用层()我们还是以第一次见到的地方开始分析,我们选取方法来分析(这个方法既有入参也有返回),抛除掉它缓存和的部分,最核心的代码就一句BinderInternal.getContextObject我们从开始看起,这个函数是一个函数,他被实现在中ProcessState我们在这里可以发现一个比较关键的类,它是
Jetpack Compose入门 Jetpack Compose是用于构建原生界面的新工具包。它是一种声明式的UI布局,其官方声称可简化并加快上的界面开发,使用更少的代码、强大的工具和直观的,快速让应用生动而精彩。官网:https://developer.android.com/jetpack/compose?hl=zh-cn......
Linux信号机制及其原理分析 在最近在工作中,使用到了信号的相关知识,之前我们在分析系统进程的时候也提到了信号,但并没有对信号这个机制做出深入的理解,借此机会,我们深入分析一下信号机制是怎样实现的信号(),是系统中的一种古老的进程间通信机制,而作为类系统,早期也是模仿了系统,自然也保留下了这个机制。信号是一种异步通信机制,它是在软件层面上对中断机制的一种模拟注:本篇文章基于glibc版本2.35,Linux内核版本5.17,x86_64架构信号可以由内核产生,也可以由用户产生,这边举几个例子:用户在终端输入时,会产生一个信号在程序中对一