
Android
文章平均质量分 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 评论 -
使用 Cuttlefish 虚拟 Android 设备
什么是 Cuttlefish?cuttlefish是一种可配置的虚拟 Android 设备,既可以远程运行(使用第三方云产品,如 Google Cloud Engine),又可以在本地运行(在 Linux x86 机器上)。Cuttlefish 的目标使平台和应用开发者不再依赖于物理硬件来开发和验证代码更改。 通过与核心框架保持高度一致,以高保真度为重点来复制真实设备的基于框架的行为。 支持 API 级别 28 之后的所有 API 级别。 在各个 API 级别达到一致的功能水平,与物理硬.原创 2022-02-17 12:13:15 · 10110 阅读 · 3 评论 -
Android多开和虚拟化--Docker概念的详细介绍
本文只是对Docker的概念做了较为详细的介绍,并不涉及一些像Docker环境的安装以及Docker的一些常见操作和命令。通过阅读本文你将知道以下概念:容器什么是Docker?Docker思想、特点Docker容器主要解决什么问题容器 VS 虚拟机Docker基本概念:镜像(Image),容器(Container),仓库(Repository)原创 2022-02-16 12:03:30 · 4683 阅读 · 0 评论 -
使用 WorkManager 管理后台和前台工作
WorkManager 是应对长执行时间工作的推荐方案,推荐您使用 WorkManager 实现请求和取消长时间运行的工作任务。通过本文了解到如何以及何时使用加急工作 API,如何编写可靠的高性能多进程应用。原创 2022-02-16 11:51:30 · 2678 阅读 · 0 评论 -
Android基于Docker容器的双系统多开实现和自动化部署
本文技术涉及基于Docker容器的移动端双系统实现系统及方法,所述系统包括相互连接的内核层及应用程序层,其中,应用程序层包括Docker模块以及Docker模块根据Docker创建的多个容器,所述内核层包括LSM模块,所述LSM模块用于对多个容器内的进程进行访问控制。本文技术提供的基于Docker容器的移动端双系统实现系统及方法,可有效阻止Docker容器进程对宿主机中没有被隔离文件资源的访问,完善了Docker容器与宿主机之间的访问控制机制,可满足多元场景的实用性及移动端的安全性,同时又可以省去多个移动端原创 2022-01-20 12:12:02 · 9968 阅读 · 4 评论 -
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 评论 -
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 · 1536 阅读 · 6 评论 -
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 · 1186 阅读 · 3 评论 -
Android云手机平台搭建-2020圈钱热潮
这突如其来的投资大潮,《云手机》疫情期间在整个互联网行业掀起重磅性的热潮。刚刚在上月底百度紧锣密鼓的发布了自己百度云手机。市场上的云手机种类很多,主要服务于现在潮流的小工作室,引流、消息整合,群控云控等。所有的银行、服装品牌等都有云控,而且市场上最粗糙简陋的云控,几乎都供给银行使用了,我最佩服这些采购部门。。什么是云手机?云手机(Cloud Phone)是在云上运行APP的仿真手机。云手机服务根据不同场景提供多种规格的云手机,稳定24小时不间断,全面兼容Android原生APP,流畅运行大型手原创 2020-05-19 17:06:48 · 11001 阅读 · 2 评论 -
从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 10.0相关权限的变更(使用WiFi Direct必须打开定位)
最近很多厂商推送了Android10.0 的ROM。Android之后,大量的App出现了闪退或者打不开,白屏等问题。获取定位权限注意:在Android10.0里,获取定位权限需要增加以下权限。<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/><!-- 关于...原创 2020-04-07 12:10:11 · 2683 阅读 · 2 评论 -
Android ROM定制 入门到精通(含改机、移植、破解网络层、root原理、植入hook框架,反安全监测等)
最近在定制一款ROM,拉取谷歌源码,解包、精简、修改、打包。想要实现MIUI一样的效果和国人常用的功能设置和手势。在这个过程中遇到了很多疑难问题,也发现公司刚招来的这些小孩基础太差,而且他们根本不知道去哪学习,怎么学习,学点啥才能编译ROM。我查了一下相关资料确实太少。系统点的书也是2011出版的,太古老了,这些年真正深入到系统层,framework层开发的人太少,但是随着市场淘汰了大批的技术...原创 2020-02-28 19:39:58 · 15856 阅读 · 32 评论 -
【一键新机】免root/不刷机/拒绝Xposed 实现 Android改机,全新技术分析。
此篇文章仅探讨Android底层技术。不提供任何软件和安装包……我们通过一些底层技术对手机中的各种基础信息进行一个修改。主要修改的参数有:Android_Id、IMEI、手机序列号、手机号码、WIFI-MAC、WIFI-Name、安卓系统版本、ROM固件、手机号码、手机型号、手机品牌、CPU型号、手机制造商、GPS定位、通话记录模拟、手机短信模拟……等各类安卓手机系统信息的修改功能...原创 2020-03-24 11:31:29 · 98020 阅读 · 94 评论 -
Android仿网易新闻导航栏PagerSlidingTabStrip
效果图:下载地址:Github:https://github.com/astuetz/PagerSlidingTabStrip使用方法1、下载Zip压缩文件从 PagerSlidingTabStrip官网(https://github.com/astuetz/PagerSlidingTabStrip)上下载Zip文件,下载成功原创 2015-11-03 14:56:07 · 2565 阅读 · 0 评论 -
利用swipelistview完成qq聊天列表右滑删除功能
感谢HarryWeasley整理:http://blog.youkuaiyun.com/harryweasley/article/details/41413547前言:前段时间,由于自己比较悠闲,没有什么工作上的事情所做,所以当时就想,何不做一下qq聊天列表的item右滑出现后面的视图,然后我就开始着手自己做,之后无意间发现了可以利用一个github开源项目swiplistview完成,但是当我查看那转载 2015-11-03 15:02:56 · 738 阅读 · 0 评论 -
xListView的使用步骤
使用XListView的步骤。 1.在XListViewActivity类中的onCreate()方法设置适配器,前提是自定义一个适配器(根据不同的需求进行优化),给mListView.setAdapter(mAdapter); 这你可以根据自己的设计,可以在不同的位置设置。 总之一句话:给mListView设置适配器。 2.重写onRefresh()方原创 2015-10-20 13:02:27 · 642 阅读 · 0 评论 -
Android自定义控件之仿美团下拉刷新
android美团下拉刷新控件自定义控件目录(?)[+] 美团的下拉刷新分为三个状态: 第一个状态为下拉刷新状态(pull to refresh),在这个状态下是一个绿色的椭圆随着下拉的距离动态改变其大小。 第二个部分为放开刷新状态(release to refresh),在这个状态下是一个帧动画,效果为从躺着变为站起来的动画。 第三个部分为转载 2015-11-09 17:47:30 · 1446 阅读 · 0 评论 -
GitHub控件之BadgeView(数字提醒)
android-badgeview源代码下载路径:https://github.com/jgilfelt/android-viewbadger使用方法:直接把这个类考到自己工程里就可以了。效果如上图 看一下badgeview中常用的方法:1. setTargetView(View) --> 设置哪个控件显示数字提醒,参数就是一个view对象2. setBadg原创 2015-11-09 16:52:35 · 1771 阅读 · 0 评论 -
Android自定义控件之仿汽车之家下拉刷新
感谢阿拉灯神灯的技术分享 。版权声明:原文来自http://blog.youkuaiyun.com/nugongahou110关于下拉刷新的实现原理我在上篇文章Android自定义控件之仿美团下拉刷新中已经详细介绍过了,这篇文章主要介绍表盘的动画实现原理汽车之家的下拉刷新分为三个状态: 第一个状态为下拉刷新状态(pull to refresh),在这个状态下是一转载 2015-11-09 17:43:54 · 1427 阅读 · 0 评论 -
Android利用Volley异步加载(JSON和图片)完整示例
android的json解析部分都在包org.json下,主要有以下几个类: JSONObject:可以看作是一个json对象,这是系统中有关JSON定义的基本单元,其包含一对儿(Key/Value)数值。它对外部(External: 应用toString()方法输出的数值)调用的响应体现为一个标准的字符串(例如:{"JSON": "Hello, World"},最外被大括号包原创 2015-11-11 17:42:55 · 689 阅读 · 0 评论 -
android 内存优化
Android内存优化——对Bitmap的优化1、前因 2、如何使用(机制) 3、如何运用到项目中 4、结论 5、讨论时间在Android应用里,最耗费内存的就是图片资源。而且在Android系统中,读取位图Bitmap时,分给虚拟机中的图片的堆栈大小只有8M,如果超出了,就会出现OutOfMemory异常。内存泄露可以引发很多的问题:1.程序卡顿,响应速度慢(内存原创 2015-09-19 13:01:38 · 500 阅读 · 0 评论 -
Android_高清加载巨图方案 拒绝压缩图片
原文出处:http://blog.youkuaiyun.com/lmj623565791/article/details/49300989 一、概述距离上一篇博客有段时间没更新了,主要是最近有些私事导致的,那么就先来一篇简单一点的博客脉动回来。对于加载图片,大家都不陌生,一般为了尽可能避免OOM都会按照如下做法:对于图片显示:根据需要显示图片控件的大小对图片进行压缩显示转载 2015-10-29 14:22:14 · 631 阅读 · 0 评论 -
Android还在用Toast?你Out啦,该试试Snackbar了
Snackbar是design support library中另一个组件,使用Snackbar我们可以在屏幕底部(大多时候)快速弹出消息,它和Toast非常相似,但是它更灵活一些。当它显示一段时间后或用户与屏幕交互时它会自动消失。可以自定义action-可选操作。swiping it off the screen可以让FAB消失它是context sensitive message(自己翻译 2015-10-29 13:59:58 · 608 阅读 · 0 评论 -
Android按比例布局之layout_weight和weightSum的使用
一个Button占据整个屏幕的一半宽度,开发文档中对layout_weight属性的描述:“定义weight总和的最大值。如果未指定该值,以所有子视图的layout_weight属性的累加值作为总和的最大值。一个典型的案例是:通过指定子视图的layout_weight属性为0.5,并设置LinearLayout的weightSum属性为1.0,实现子视图占据可用宽度的50。”XML翻译 2015-10-29 14:18:13 · 867 阅读 · 0 评论 -
Android 编程规范与常用技巧
一、Android编码规范1.java代码中不出现中文,最多注释中可以出现中文2.局部变量命名、静态成员变量命名只能包含字母,单词首字母出第一个外,都为大写,其他字母都为小写3.常量命名只能包含字母和_,字母全部大写,单词之间用_隔开4.layout中的id命名命名模式为:view缩写_模块名称_view的逻辑名称view的缩写详情如原创 2015-10-29 14:36:58 · 521 阅读 · 0 评论 -
Android-Universal-Image-Loader 图片异步加载类库的使用(超详细配置)
这个图片异步加载并缓存的类已经被很多开发者所使用,是最常用的几个开源库之一,主流的应用,随便反编译几个火的项目,都可以见到它的身影。 可是有的人并不知道如何去使用这库如何进行配置,网上查到的信息对于刚接触的人来说可能太少了,下面我就把我使用过程中所知道的写了下来,希望可以帮助自己和别人更深入了解这个库的使用和配置。 GITHUB上的下载路径为:htt转载 2015-11-16 10:58:19 · 468 阅读 · 0 评论 -
Android 沉浸式透明状态栏与导航栏
Android 系统自4.2 开始 UI 上就没多大改变,4.4 也只是增加了透明状态栏与导航栏的功能这个特性是andorid4.4支持的,最少要api19才可以使用。下面介绍一下使用的方法,非常得简单:安卓自定义状态栏颜色以与APP风格保持一致 我们知道IOS上的应用,状态栏的颜色总能与应用标题栏颜色保持一致,用户体验很不错,那安卓是否可以呢?若是在安卓4.4之前,原创 2015-11-20 19:15:26 · 4668 阅读 · 0 评论 -
Android图片查看支持双击放大缩小、多点触摸(多机型测试,长期使用很稳定)
该模块主要实现了放大和原大两个级别的缩放。另外功能更加强大的一个类见本人另一篇博客http://blog.youkuaiyun.com/gfg156196/article/details/49741233#reply 功能有:以触摸点为中心放大(这个是网上其他的代码没有的)边界控制(这个是网上其他的代码没有的)双击放大或缩小(主要考虑到电阻屏)多点触摸放大和缩小原创 2015-11-16 11:22:12 · 1341 阅读 · 0 评论 -
四大组建进程间通信--基础
本文介绍了4种跨进程通讯的方式:Activity、ContentProvider、Broadcast和AIDL Service。其中Activity可以跨进程调用其他应用程序的Activity;ContentProvider可以访问其他应用程序返回的Cursor对象;Broadcast采用的是被动接收的方法,也就是说,客户端只能接收广播数据,而不能向发送广播的程序发送信息。AIDL Servi原创 2015-12-08 18:55:20 · 453 阅读 · 0 评论 -
Android传感器开发详解
效果图:连接真机Milestone,编译并运行程序,显示结果如下: 结合程序我们做一些解释。 1)Android所有的传感器都归传感器管理器 SensorManager 管理,获取传感器管理器的方法很简单: String service_name = Context.SENSOR_SERVICE; SensorM原创 2015-11-17 15:02:17 · 1017 阅读 · 0 评论 -
传感器应用的demo自动录音器
下面我通过一个实例来学会如何使用某一个类型的传感器。我们这里使用加速度传感器来实现这样一个功能:开启我们的录音程序放在你的口袋或者提包里,需要录音的时候把衣服整理一下,或者把提包挪动个位置,那么此时手机就会感受到变化从而开始录音。由此达到神不知鬼不觉的录音效果。说起来似乎有点神,其实做起来很简单。activity类public class MainActivity extends Ac原创 2015-11-17 15:48:49 · 1203 阅读 · 0 评论 -
Android仿QQ5.0侧滑菜单ResideMenu的使用和源码分析
本文出自Cym的博客(http://blog.youkuaiyun.com/cym492224103)ResideMenugithub:https://github.com/SpecialCyCi/AndroidResideMenu csdn:http://download.youkuaiyun.com/detail/cym492224103/7887801先看看如何使用转载 2015-11-03 15:14:00 · 779 阅读 · 0 评论 -
Android 控件之RatingBar评分条(五星)自定义样式
RatingBar的自定义效果有时候android系统提供给我们的ratingbar效果并不达到我们的要求,这个时候就可以自定义自己喜欢的ratingbar。从上面的效果可以看出,自定义这样的组件,需要两张图片: 。一张用来未选择的效果,一张用来显示的效果。那还要中间那种一半是未选择一半时选择的呢?其实当你写好这样的组件后,系统就会自动帮你自动解析生成那种效果。大概原创 2015-12-14 13:11:23 · 6999 阅读 · 2 评论 -
Android WebView总结
WebView可以使得网页轻松的内嵌到app里,还可以直接跟js相互调用。webview有两个方法:setWebChromeClient 和 setWebClientsetWebClient:主要处理解析,渲染网页等浏览器做的事情setWebChromeClient:辅助WebView处理Javascript的对话框,网站图标,网站title,加载进度等 WebVi原创 2015-12-15 22:06:15 · 457 阅读 · 0 评论 -
关于Zipalign的介绍和使用方法
Android 1.6 SDK中包含了一个用于优化APK的新工具zipalign。 它提高了优化后的Applications与Android系统的交互效率(俗话:“要致富先修路”,Android小组重新为Applications 与Android系统之间搭建了一条高速公路),从而可以使整个系统的运行速度有了较大的提升。Android小组强烈建议开发者在发布新Apps之前使 用zipalign优化工原创 2015-12-31 10:27:11 · 5195 阅读 · 0 评论