
Kotlin
文章平均质量分 94
hao_qi
个人主页:https://github.com/Pangu-Immortal
展开
-
使用Android高性能音频--OpenSL ES和AAudio
AAudio 是作为 OpenSL ES 库的轻量级原生 Android 替代项而开发。 与 OpenSL ES 相比,AAudio API 不仅较小,而且容易使用。使用Android系统底层的OpenSL ES或者AAudio都可以实现一个高性能的音频程序,尤其是AAudio更是简单易用,性能上,功能上都更佳,但是AAudio 是在 Android O 版本中才引入的全新 Android C API,在以前的系统版本中只能使用OpenSL ES。那么我们需要做的是在新版本系统中使用AAudio在不支原创 2022-02-17 17:18:03 · 7731 阅读 · 10 评论 -
使用 WorkManager 管理后台和前台工作
WorkManager 是应对长执行时间工作的推荐方案,推荐您使用 WorkManager 实现请求和取消长时间运行的工作任务。通过本文了解到如何以及何时使用加急工作 API,如何编写可靠的高性能多进程应用。原创 2022-02-16 11:51:30 · 2678 阅读 · 0 评论 -
Android12 Jetpack SplashScreen API总结
官方Android 12的Splash Screen文档地址官方Splash Screen兼容库,支持所有版本系统本篇文章主要围绕下面三个问题来介绍:我们能从Android 12 SplashScreen API里面学到什么?新出的SplashScreen兼容库又是什么?能做成什么样子?小甲同学:我想看Android12 SplashScreen源码,可以吗?SplashScreen使用首先我们需要把 compileSdk 和 targetSdk(可选) 升级到31 。Android1.原创 2021-10-19 19:25:55 · 2737 阅读 · 2 评论 -
对比Compose 、kotlin、flutter 移动端跨平台的未来。
此篇文章只讨论跨平台技术:你是否掌握了大部分Android开发需要的知识点呢?你是否完整的看完过一本Android基础入门的书呢?你的技术栈是否还是片面的一角?Kotlin Multiplatform Mobile ?jetpack 中的 Compose Multiplatform ?还是使用Dart 的 flutter ?还是选择html的方式 RN/Cordova /等……??1、html肯定没人会选,就像用eclipse开发一样,都是多少年前的事了。2、如果你不会kotlin,原创 2021-09-08 20:00:26 · 5466 阅读 · 5 评论 -
Android 11 限制反射,如何破解?
先来分析一下问题出现的原因我们看一眼Android 11 的源码,如下:static jobject Class_getDeclaredMethodInternal(JNIEnv* env, jobject javaThis, jstring name, jobjectArray args) { // …… Handle<mirror::Method> result = hs.NewHandle( mirror::Class::GetDeclaredMethodInte.原创 2021-09-07 14:24:03 · 2625 阅读 · 0 评论 -
Android studio无法连接识别检测各种模拟器和手机的问题 (万能方案)。
Android Studio运行程序时检测不到模拟器的解决方法:现在我们公司好多新手Android开发对于模拟器无法连接非常苦恼,逐一给他们调试也很麻烦,尤其是一些Java也想运行一下Android的项目..现在整理一下非常全面的连接模拟器的方法..(首先确保path环境变量配置正确)adb命令不知道的先打开cmd输入一下adb如果path环境配置正确就会出现很多adb的命令提示.....原创 2017-09-14 14:18:23 · 40537 阅读 · 3 评论 -
Android开发万能Utils(工具大全)
AndroidUtils Android开发不得不收藏的Utils之前写这篇文章主要是项目应用到的Utils,发现已经有一个更全面的开源库总结,所以还是非常震惊可以总结的这么全面,在此我准备重新梳理一遍~(一共两个库)GitHub地址:https://github.com/Blankj/AndroidUtilCode第一个库:Gradle:implementation 'co...原创 2018-10-09 18:49:39 · 20201 阅读 · 7 评论 -
Dagger2 在 Android 项目的正确使用方式【完整篇】
Dagger2的入门难度极大,我们直奔主题,先使用起来 再去思考原理。网上几乎都是Java的用法,谨慎参考。当你看到没有使用dagger.android这个库的讲解,都是Java用的,Android如果那样用人都会累死的。。Java用法是Android的基础,是最原始的用法,Android所有的库都是对Java用法做了优化,我们先从最基础的来讲。很多人开发Android都不看Googl...原创 2018-12-19 18:43:09 · 7002 阅读 · 12 评论 -
Jetpack CameraX 最新最全解读-开发实践
本文可能是当下最新最全的CameraX解读,篇幅较长,慢慢享用。我们的生活已经越来越离不开相机,从自拍到直播,扫码再到VR等等。相机的优劣自然就成为了厂商竞相追逐的赛场。对于app开发者来说,如何快速驱动相机,提供优秀的拍摄体验,优化相机的使用功耗,是一直以来追求的目标。前言Android 5.0 时期Camera接口便已弃用,所以一般的做法是使用其替代者Camera2接口。但随着CameraX的出现,这个选择变得不再唯一。我们先来回顾下图像预览这一简单的需求,使用Camera...原创 2021-05-21 17:38:01 · 648 阅读 · 1 评论 -
Jetpack WorkManager的使用-完全解析
谷歌官方API介绍兼容范围广WorkManager最低能兼容API Level 14,并且不需要你的设备安装有Google Play Services。因此,你不用过于担心兼容性问题,因为API Level 14已经能够兼容几乎100%的设备了。WorkManager依据设备情况选择方案WorkManager能依据设备的情况,选择不同的执行方案。在API Level 23+,通过JobScheduler来完成任务,而在API Level 23以下的设备中,通过AlarmManager和B原创 2021-04-23 21:22:22 · 322 阅读 · 3 评论 -
Coil - Google推荐的协程图片加载库
随着Kotlin的转正,Glide不再是最佳选择。看一下Google极力推荐的Coil框架。GitHub:https://coil-kt.github.io/coil/Coil可以配合Kotlin协程实现图片加载,非常适合在Kotlin/Android项目中使用:性能优秀 体积较小:其包体积与Picasso相当,显著低于Glide和Fresco,仅仅只有1500个方法,但是在功能上却不输于其他同类库 简单易用:配合Kotlin扩展方法等语法优势,API简单易用 技术先进:基于Corouti原创 2021-04-09 18:48:24 · 1352 阅读 · 5 评论 -
Mac m2芯片 全量编译ijkplayer生成Android库
ijkplayer编译GitHub地址:https://github.com/Bilibili/ijkplayer最近做新人培训,讲了下编译过程,发现很多人拉不下代码,也编译不过去。我用一台新电脑重新梳理了一个新环境会遇到哪些坑,这里简单记录一下完整的内容和踩过的坑。1. 环境准备# install homebrew, git, yasmruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/mas原创 2021-04-09 18:18:05 · 1534 阅读 · 6 评论 -
【一键新机】免root/不刷机/拒绝Xposed 实现 Android改机,全新技术分析。
此篇文章仅探讨Android底层技术。不提供任何软件和安装包……我们通过一些底层技术对手机中的各种基础信息进行一个修改。主要修改的参数有:Android_Id、IMEI、手机序列号、手机号码、WIFI-MAC、WIFI-Name、安卓系统版本、ROM固件、手机号码、手机型号、手机品牌、CPU型号、手机制造商、GPS定位、通话记录模拟、手机短信模拟……等各类安卓手机系统信息的修改功能...原创 2020-03-24 11:31:29 · 98013 阅读 · 94 评论 -
解决SurfaceView渲染的各种疑难杂症
RecyclerView加载多个surfaceview覆盖,旋转,黑屏 ??SurfaceView黑色背景??透明背景??多层嵌套被遮挡??苦苦找了好多天,各个论坛问遍了,都是互相抄,痛苦的我,尝试了好多种方式都解决不了。翻了几天surfaceview的源码和API,现把解决方法总结,分享一下。首先说:不能在list视图中使用VideoView,因为VideoView继承Surfa...原创 2017-06-07 14:43:48 · 41256 阅读 · 27 评论 -
Xposed是如何为所欲为的?
Flutter使用Dart语言开发。本篇整体介绍一下Dart语言。上一篇Android Studio使用Google Flutter完整教程中SDK和插件以及环境变量的配置都很详细了。如下截图是Dart语言SDK下载地址。对于Android开发,我们仅用到FlutterSDK。Web和服务端开发都是从此处下载SDK。与上一篇提到 Flutter官网下载的FlutterSDK是一...原创 2018-09-12 18:53:35 · 6910 阅读 · 1 评论 -
Kotlin替换Dagger2/Hilt的依赖注入框架--Koin。
Koin、Dagger2、Hilt 目前都是非常流行的库,面对这么多层出不穷的新技术,我们该做如何选择,是一直困扰我们的一个问题。Hilt 与 Dagger2 区别并不大,Hilt就是对Dagger2的封装。Koin框架,适用于使用Kotlin开发 ,是一款轻量级的依赖注入框架,无代理,无代码生成,无反射。相对于Dagger2 而言Koin更加适合Kotlin语言。Koin官网:https://start.insert-koin.io/#/quickstart/kotlinGitHub:ht原创 2020-12-20 16:30:00 · 1185 阅读 · 3 评论 -
从Zygote孵化frameworks进程,分析StartActivity流程中intent传递数据的最大值。
当我们用Intent传输大数据时,有可能会出现错误:valintent=Intent(this@MainActivity,Main2Activity::class.java)valdata=ByteArray(1024*1024)intent.putExtra("111",data)startActivity(intent)如上我们传递了1M大小的数据时,结果...原创 2020-05-08 10:33:55 · 474 阅读 · 1 评论 -
史上最全面 Android逆向培训之__Xposed使用
刚招来个Android,干了半个月辞职了,他走之后,成堆的bug被测了出来,都是这个新人代码都没看懂就开始改的一塌糊涂,还给提交了。实在是让人头疼,清理了一个月多月才把他半个月写的bug清理个差不多。实在是得不偿失。有了这个前车之鉴,不得不重视新人的岗前培训,毕竟面试找个来了就能上手的实在是太难了。《写给新手入职的培训资料》-- by 齐浩 2019/5/20 15:28推荐:...原创 2019-09-23 16:00:47 · 4712 阅读 · 2 评论 -
Charles 抓包 从入门到精通
Charles 激活方法在线破解,需要破解的可以点击这里查看。简介Charles是在 Mac 下常用的网络封包截取工具,在做移动开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析。Charles 通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。除了在做移动开发中调试端口外,Charl...原创 2018-12-12 18:56:07 · 480 阅读 · 3 评论 -
android studio 初次使用Kotlin(环境准备篇)
谷歌在今年举行的I/O开发者大会上宣布,将Kotlin语言作为安卓开发的一级编程语言。Kotlin由JetBrains公司开发,与Java100%互通,并具备诸多Java尚不支持的新特性。。那么你知道Kotlin是什么吗?如果还不知道那就赶紧自行百度一下。关于Android studio 3.0之后集成Kotlin,目前2.3使用Kotlin与3.0会有什么区别呢,基本没什么区别。接下来原创 2017-06-02 15:46:09 · 4156 阅读 · 0 评论