Android最佳流畅设计

智能驾驶感知模块的测试评估方法(上) 对于智能驾驶系统而言,感知模块是开发难度最大、投入资源最多的核心部分。在智能驾驶开发团队内部,感知模块需要独立进行评测才能及早发现潜在缺陷或判断性能是否有改进。随着近几年BEV、OCC、E2E等新技术方案被越来越多企业应用,感知的评测变得越来越艰难,效率也变得越来越低下。本文作者基于在智驾测试行业多年经验,试图总结感知评测的基本规律和效率提升方法,以供读者一些启发。 阅读详情
 

即使你的应用程序是快速且响应灵敏的,但一些设计仍然会给用户造成问题——与其它应用程序或对话框未事先计划的交互,意外的数据丢失,意料之外的阻塞等等。避免这些问题,有助于理解应用程序运行的上下文和系统的交互过程,而这些又正影响着你的应用程序。简而言之,你应该竭尽全力去开发一个与系统和其它应用程序流畅交互的应用程序。 

一个常见的流畅问题是,一个应用程序的后台处理——例如,一个 Service或者BroadcastReceiver——弹出一个对话框来响应一些事件。这可能看起来没啥大碍,尤其是你在模拟器上单独地构建和测试你的应用程序的时候。然而,当你的应用程序运行在真机上时,有可能你的应用程序在没有获得用户焦点时后台处理显示了一个对话框。因此,可能会出现在活跃的应用程序后方显示了你的应用程序的对话框,或者从当前应用程序夺取焦点显示了一个对话框,而不管当前用户正在做什么(例如,正在打电话)。那种行为,对应用程序或用户来说,就不应该出现。 

为了避免这些问题,你的应用程序应该使用合适的系统资源来通知用户——Notification类。使用Notification,你的应用程序可以在状态栏显示一个 icon来通知用户已经发生的事情,而不是夺取焦点和打断用户。 

另一个流畅问题的例子是未能正确实现Activity的 onPause()和其它生命周期方法而造成意外丢失了状态或用户数据。又或者,如果你的应用程序想暴露数据给其它应用程序使用,你应该通过ContentProvider来暴露,而不是(举例)通过一个可读的原始文件或数据库来实现。 

这些例子的共同点是它们都应该与系统和其它应用程序协作好。Android系统设计时,就把应用程序看作是一堆松散耦合的组件,而不是一堆黑盒代码。作为开发者来说,允许我们把整个系统看作是更大的组件集合。这有益于我们可以与其它应用程序进行清晰无缝的集成,因此,作为回报,我们应该更好的设计我们的代码。 

下面将讨论常见的流畅问题以及如何避免它们:

1)别丢弃数据 

一定要记住Android是一个移动平台。可以显而易见地说,其它Activity(例如,“Incoming Phone Call”应用程序)可能会在任何时候弹出来遮盖你的Activity,记住这个事实很重要。因为这个过程将触发onSaveInstanceState()和 onPause()方法,并可能导致你的应用程序被杀死。 

如果用户在你的应用程序中正在编辑数据时,其它 Activity出现了,这时,你的应用程序被杀死时可能丢失那些数据。当然了,除非你事先保存了正在进行的工作。“Android方式”是这样做的:能接收和编辑用户输入的 Android应用程序应该重写 onSaveInstanceState()方法,并以恰当的方式保存它们的状态。当用户重新访问应用程序时,她能得到她的数据。 

进行这种处理方式最经典的例子是 mail应用程序。如果用户正在输入 email,这时其它 Activity启动了,mail应用程序应该把正在编辑的email以草稿的方式保存起来。 

2)不要暴露原始数据 

如果你不想穿着内衣在大街上溜达的话,你的数据也不应该这样。尽管可能存在暴露应用程序的某种形式给其它应用程序,但这通常不是最好的主意。暴露原始数据,要求其它应用程序能够理解你的数据的格式;如果你变更了格式,那么,你将破坏那些没有进行同步更新的应用程序。 

 “Android方式”是创建一个 ContentProvider,以一种清晰的、深思熟虑的和可维护的API方式暴露你的数据给其它应用程序。使用 ContentProvider,就好像是插入Java接口来分离和组装两片高耦合的代码。这意味着你可以修改数据的内部格式,而不用修改由ContentProvider暴露的接口,这样,也不会影响其它应用程序。 

3)不要打断用户 

如果用户正在运行一个应用程序(例如,Phone程序),断定对用户操作的目的才是安全的。这也就是为什么必须避免创建Activity,而是直接在当前的 Activity中响应用户的输入。 

 那就是说,不要在 BroadcastReceiver或在后台运行的 Service中调用 callActivity()。这么做会中断当前运行的应用程序,并导致用户恼怒。也许更糟糕的是,你的 Activity可能成为“按键强盗”,窃取了用户要提供给前一个 Activity的输入。视乎你的应用程序所做的事情,这可能是个坏消息。 

不选择在后台直接创建 Activity UI,取而代之的是,应该使用NotificationManager来设置 Notification。它们会出现在状态栏,并且用户可以在他空闲的时候点击它们,来查看你的应用程序向他显示了什么。(注意,如果你的 Activity已经在前台了,以上将不适用:这时,对于用户的输入,用户期望的是看到下一个 Activity来响应) 

4)有太多事情要做?在线程里做 

如果你的应用程序需要执行一些昂贵或耗时的计算的话,你应该尽可能地将它挪到线程里。这将阻止向用户显示可怕的“Application Not Responding”对话框,如果不这样做,最终的结果会导致你的应用程序完全终止。 

一般情况下,Activity中的所有代码,包括它的 View,都运行在相同的线程里。在这个线程里,还需要处理UI事件。例如,当用户按下一个按键,一个 key-down事件就会添加到 Activity的主线程队列里。事件处理系统需要很快让这个事件出列并得到处理;如果没有,系统数秒后会认为应用程序已经挂起并为用户提供杀死应用程序的机会。 

如果有耗时的代码,内联在Activity上运行也就是运行在事件处理线程里,这在很大程度上阻塞了事件处理。这会延迟输入处理,并导致ANR对话框。为了避免这个,把你的计算移到线程里。

 5)不要让一个 Activity超负荷 

任何值得使用的应用程序都可能有几个不同的屏幕。当设计UI屏幕时,请一定要使用多个Activity对象实例。 依赖于你的开发背景,你可能理解 Activity类似于 Java Applet,它是你应用程序的入口点。然而,那并不精确:Applet子类是一个 Java Applet的单一入口点,而一个Activity应该看作是你的应用程序多个潜在入口点之一。你的“main”Activity和其它之间的唯一不同点是“main”Activity正巧是在AndroidManifest.xml文件中唯一对“android. intent.action.MAIN”动作感兴趣的Activity。 因此,当设计你的应用程序的时候,把你的应用程序看作是Activity对象的集合。从长远来看,这会使得你的代码更加方便维护。 

 6)扩展系统主题 

当谈到 UI观感时,巧妙地交融非常重要。用户在使用与自己期望相反的 UI的应用程序时,会产生不愉快的感觉。当设计你的 UI时,你应该尽量避免太多自己的主题。相反的,使用同一个主题。你可以重写或扩展你需要的主题部分,但至少在与其它应用程序相同的 UI基础上开始。

 7)设计你的 UI可以应对多屏幕分辨率 

不同的 Android设备可能支持不同的屏幕分辨率。甚至一些可以自己变更分辨率,例如,切换到风景模式。确保你的布局和图片能足够灵活地在不同的设备屏幕上正常显示。幸运的是,这很容易做到。简而言之,你需要做的是为主要分辨率提供不同版本的作品,然后为不同的尺寸设计你的布局。(例如,避免使用硬编码位置而使用相对布局。)如果那样做的话,系统会处理剩下的部分,而且你的应用程序在任何设备上都看起来很棒。 

 8)假设网络很慢 

Android设备会有多种网络连接选项。所有的都提供数据访问,但之间肯定有更快的。其中,速度最慢的是GPRS,GSM网络的非 3G数据服务。即使具备 3G能力的设备在非3G的网络上也会花费很多的时间,所以,网络很慢仍然是一个长期存在的事实。

这就是为什么你应该按照最小化的网络访问和带宽来编写你的代码。你不能假设网络是快速的,所以,你应该总是计划它是慢的。如果你的用户碰巧在一个快速的网络上,那很好——他们的用户体验会提升。你要避免相反的情形:在不同的地点和不同时间,应用程序有时可用,有时慢得令人抓狂,这样的程序可能不会受欢迎。 

还有一个潜在的地方是,如果你正在使用模拟器,那么你很容易受它迷糊,因为模拟器使用电脑的网络连接。这比手机网络快很多,所以,你需要修改模拟器设定来模拟较低的网络速度。你可以在 Eclipse中做到这点,在启动选项的模拟器设置页里设置或者在启动模拟器时通过命令行选项设置。 

 9)不要假定触摸屏或键盘 

Android可以支持多种外观形状。也就是说,一些Android设备拥有全“QWERTY”键盘,而其它可能会有40键、12键或其它键盘设置。同样的,一些设备可能有触摸屏,但一些也会没有。当创建你的应用程序的时候,记住这一点。不要假定特定的键盘布局——除非你真的想限定你的应用程序只运行在某些设备上。 

10)节省设备电池 

如果移动设备经常插在墙上,那么,它也就不是很“移动”。移动设备是电池供电的,如果我们能让每次充电的电池使用得更持久一些,那么每个人都会更加开心——尤其是用户。其中两大耗电硬件是处理器和无线;这也就是我们为什么要写尽可能少做工作、尽可能少去使用网络的应用程序的重要原因。 

如何让你的应用程序最小化的占用处理器,归根结底还是要写高效代码。为了减少无线的电量消耗,确保对错误条件进行正确的处理,并只获取你要的东西。例如,如果某一个网络操作失败了,不要不断地进行重试。如果失败了一次,有可能是用户不受欢迎,因此,如果你再以正确的方式操作,有可能还会失败;所有你做的都是在浪费电池。 

用户是相当聪明的:如果你的程序高耗电,他们是一定会发现的。到那个时点,你唯一可以确定的是,你的程序将很快被卸载掉。 

生信人的一天~HIFI数据+HIC数据组装基因组 HIFI+HIC数据组装基因组! 阅读详情

相关推荐

Sparse4Dv3

instance_feature也设置为nn.Parameter。修正分支2*(linear->relu->linear->relu->layernorm)->linear->scale,分类分枝2*(linear->relu->layernorm)->linear(256,9),质量评估分枝2*(linear->relu->layernorm)->linear(256,2)。每组两类instance,1是加上范围(-x,x)内均匀分布噪声,2是加上(-2x,-x)U(x,2x)范围内均匀分布噪声。

yuanl15的博客 1352

Android最佳实践之流畅设计

即使你的应用程序是快速且响应灵敏的,但一些设计仍然会给用户造成问题——与其它应用程序或对话框未事先计划的交互,意外的数据丢失,意料之外的阻塞等等。避免这些问题,有助于理解应用程序运行的上下文和系统的交互过程,而这些又正影响着你的应用程序。简而言之,你应该竭尽全力去开发一个与系统和其它应用程序流畅交互的应用程序。  一个常见的流畅问题是,一个应用程序的后台处理——例如,一个 Service或...

LYP_移动猎人——永远不要低估一颗菜鸟的心! 150

Win11用户文件夹中文名修改全攻略

本文详细介绍了Windows 11系统中修改中文用户文件夹名称的完整步骤。操作包含七个关键环节:前期数据备份、账户名称修改、管理员账户激活、用户文件夹重命名、注册表路径更新、收尾操作及注意事项。特别强调需要同步修改账户名、文件夹名和注册表关联路径,并建议操作前备份重要数据。文中还针对常见问题提供了解决方案,如软件报错时的符号链接创建方法。整个过程需谨慎操作,建议在管理员权限下逐步执行,修改完成后需验证系统及软件功能是否正常。

Qinti_mm的博客 3128

Android推流帧率的设定与实际情况的影响

如果您在Android平台上通过setVideoFPS设置帧率为30,可能会发现实际帧率只有20FPS,什么原因? 硬件限制 部分安卓机器的Camera接口无法实现30FPS及以上的数据采集频率,这个问题在很多机型的前置摄像头上尤为明显。 编码不足 我们一般说编码不足是说编码器的计算量太大,机器性能无法胜任,对于Android而言尤为明显。其实Android的CPU核心数

Hugo.Lee的博客 4918

传输线的特征阻抗

信号源内阻与所接传输线的特性阻抗大小相等且相位相同,或传输线的特性阻抗与所接负载阻抗的大小相等且相位相同,分别称为传输线的输入端或输出端处于阻抗匹配状态,简称为阻抗匹配。否则,便称为阻抗失配。有时也直接叫做匹配或失配。指一个电路输入端的等效阻抗。在输入端上加上一个电压源U,测量输入端的电流I,则输入阻抗Rin就是U/I。可以把输入端想象成一个电阻的两端,这个电阻的阻值,就是输入阻抗。- 对于电压驱动的电路,输入阻抗越大,则对电压源的负载就越轻,因而就越容易驱动,也不会对信号源有影响;

学海无涯的专栏 4466

基于云盾构建等保三级Web安全体系:从合规要求到实战落地

网络安全等级保护(等保)是保障信息系统安全的重要制度,其核心原理是通过分级防护、动态调整的策略,构建纵深防御体系。在技术层面,等保要求覆盖物理环境、通信网络、区域边界、计算环境和安全管理中心等多个层面,旨在通过技术和管理相结合的方式,有效应对网络攻击和数据泄露风险。对于Web应用而言,满足等保三级要求具有极高的技术价值,它不仅是合规的刚性需求,更是提升业务系统整体安全水位、建立用户信任、保障业务连续性的关键工程实践。在云计算时代,利用云原生安全服务(如Web应用防火墙WAF、云安全中心、态势感知等)可以高效

weixin_29324877的博客 310

vLLM推理加速:PagedAttention与连续批处理部署实战

大模型推理服务在并发场景下常面临GPU利用率低、显存溢出等问题,其根源往往不在硬件性能,而在推理引擎的显存管理与调度策略。KV Cache的动态增长是显存浪费的主要因素,而PagedAttention通过借鉴操作系统虚拟内存的分页机制,将KV Cache切分为固定块并按需分配,显著降低显存碎片化并支持前缀共享。连续批处理则在迭代级别动态调度请求,避免静态批处理中长短请求互相等待的缺陷,使GPU计算单元保持高负载。vLLM正是将这两项核心技术与高效的调度器相结合,在提供OpenAI兼容API的同时,实现数倍的

weixin_34174422的博客 415

PostgreSQL使用 pg_rman物理备份搭建流复制备库(streaming replication standby)

摘要:使用pg_rman备份搭建PostgreSQL流复制备库 本文详细介绍了利用pg_rman工具快速搭建PostgreSQL流复制备库的完整流程。该方法结合物理备份的高效性和流复制的实时性,特别适合大型数据库环境。主要内容包括:主库上的pg_rman安装配置、全量备份操作;备份文件传输至备库;备库数据目录准备及恢复;流复制参数配置;以及最终的启动验证步骤。文章还提供了架构示意图和关键配置示例,并包含常见问题排查建议,如备库无法启动或复制卡顿情况的处理方法。整个流程强调通过.pgpass文件管理密码的安全

liumangtuzi888的博客 1169

再一次惊艳!当Win10资源监视器UWP用上Fluent流畅设计体系

IT之家6月2日消息 微软在Build 2017开发者大会上首次演示了较为全面的Fluent Design System(流畅设计体系),微软流畅设计体系分为五个元素Light(光感)、Depth(深度)、Motion(动效)、Material(材质)、Scale(缩放),简单地来讲就是现在设计要考虑多种因素,比如材质,考虑膨胀,摩擦等等。 但以往我们认为流畅设计体系主要是用来针对W

gyhg002的博客 987

Docker:安装Apache Pulsar 消息队列的详细指南

本文详细介绍了Apache Pulsar的Docker化安装部署方法,包括单节点Pulsar服务和管理界面Pulsar Manager的安装配置。通过Docker命令快速搭建Pulsar环境,并演示了租户和命名空间的基础管理操作。同时提供了Spring Boot项目与Pulsar集成的完整方案,从依赖配置到客户端初始化,为开发人员构建实时消息系统提供实用参考。

木头 2210

CMake是什么?为什么学习CMake

CMake的主要作用和重要性,包括其在跨平台构建中的应用、如何支持多种编译器及操作系统,以及它在管理大型和复杂项目中的优势。

小鱼酱的博客 3874

2024年Android最佳流畅设计,Android开发面试准备

在技术领域内,没有任何一门课程可以让你学完后一劳永逸,再好的课程也只能是“师傅领进门,修行靠个人”。“学无止境”这句话,在任何技术领域,都不只是良好的习惯,更是程序员和工程师们不被时代淘汰、获得更好机会和发展的必要前提。如果你觉得自己学习效率低,缺乏正确的指导,可以一起学习交流!加入我们吧!群内有许多来自一线的技术大牛,也有在小厂或外包公司奋斗的码农,我们致力打造一个平等,高质量的Android交流圈子,不一定能短期就让每个人的技术突飞猛进,但从长远来说,眼光,格局,长远发展的方向才是最重要的。

2401_84544531的博客 866

【软件系统架构】系列六:系统工程

系统工程是一种跨学科方法论,用于分析、设计、集成和管理复杂系统的全生命周期。其核心特点包括系统性思维、全周期管理、跨学科协作和需求导向。主流采用V模型生命周期,涵盖需求分析、系统设计、实现、测试验证及运维退役等阶段。核心工作方法包括需求工程、系统建模、接口设计、风险管理等。系统工程与项目管理协同,分别侧重技术实现和进度资源管理。应用领域覆盖航天军工、智能制造、智慧城市等。未来将向AI融合、数字孪生、模型驱动工程等方向发展,为复杂系统开发提供系统化协作范式。

moton2017的博客 2259

2024年最新Android最佳流畅设计(1),2024年最新android 面试题库

这里附上上述的技术体系图相关的几十套腾讯、头条、阿里、美团等公司2021年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。

2401_84545669的博客 723

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

android闹钟设计心得,Timely闹钟:也许是设计最出彩的安卓App!

Timely Alarm Clock,这款近期出现的闹钟App让不少安卓用户乃至安卓App设计者都惊呼不已。无他,只因为Timely Alarm Clock的设计实在是太精美了。有评论称,Timely Alarm Clock是设计得最出彩的安卓App,应该成为每一款安卓App的榜样。Timely Alarm Clock的设计打动了无数人,甚至安卓UI的主设计师Juhani Lehtimaki都赞不...

weixin_33443333的博客 409

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

android 平板 续航,Nexus 7成第一款续航超越iPad的Android平板

Nexus 7近来是大受好评,不管是其内部的硬件配置,还是Android 4.1系统。都让Nexus 7成为现在最有竞争力的平板电脑之一。日前《华尔街日报》著名的科技评论专家Walt Mossberg在使用过Nexus 7之后,给出了相当肉麻的评价——Nexus 7是当下最好的Android平板,某些特性甚至超过了iPad。Mossberg表示,虽然Nexus 7的定位与iPad不同,而且也不具有...

weixin_42394088的博客 310

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Android高级开发-布局渲染流程与优化

扩展知识 CPU(中央处理器)与GPU(图像处理器) 主要是设计目标不同,针对不同的应用场景。多缓存多分支,适用于复杂的逻辑运算,主要负责Measure,Layout,Record,Execute的计算操作。 CPU擅长逻辑控制和通用类型数据运算。CPU的运算速度取决于请了多么厉害的教授,教授处理复杂任务的能力高,但简单重复的任务,还是人多快。众核少缓存,适用于结构单一的数据处理,主要负责Rast...

weixin_33762321的博客 209

安装Android模拟器Genymotion【And…

安装Android模拟器Genymotion 推荐教程:一个强大的Android模拟器Genymotion具体内容如下: 相信很多Android开发者一定受够了速度慢、体验差效率及其地下的官方模拟器了,自己在平时的开发中几乎是不会用模拟器的,等的时间太久了,但是在一些尺寸适配或是兼容性测试的时候没有足够多的机器进行测试,这个时候就必须得用模拟器来代替了。用的久了真的不堪忍受那龟速般的模拟器,好

whieenz的专栏 510

ios presentviewcontroller 关闭 前一个窗体_MIUI 12抢先体验:一次足以叫板iOS的“魔改”?...

在昨天的新品发布会上,小米正式推出了全新的MIUI 12 以及小米10青春版。毋庸置疑,前者绝对是诸多米粉心中的第一主角,最直观的体现就是在发布会结束后官方宣布MIUI 12开启报名尝鲜,小米社区由于大量米粉的同时涌入致使无法正常显示。根据小米官方公布的MIUI 12发版计划来看,新OS稳定版本将会在6月底推送,目前支持升级机型从最新的小米10系列、Redmi K30系列到小米8系列、小...

weixin_35775608的博客 132

Android_编程规范与常用技巧

一、Android编码规范 1.java代码中不出现中文,最多注释中可以出现中文 2.局部变量命名、静态成员变量命名 只能包含字母,单词首字母出第一个外,都为大写,其他字母都为小写 3.常量命名 只能包含字母和_,字母全部大写,单词之间用_隔开 4.layout中的id命名 命名模式为:view缩写_模块名称_view的逻辑名称 view的缩写详情如

Y_xiaohe1234的专栏 570

Windows 10安卓子系统完整指南:让Android应用在PC上流畅运行

还在为Windows 10无法直接运行Android应用而烦恼吗?WSA-Windows-10项目将Windows 11独有的安卓子系统完整移植到Windows 10系统,让你在不升级操作系统的前提下享受原生Android应用体验。无论是刷抖音、玩手游还是使用移动办公软件,都能在你的Windows 10电脑上完美运行。 ## 🚀 系统要求与环境准备 ### 硬件配置检查 在开始安装前,请确保

gitblog_00396的博客 1251

最佳Android系统 | 运行在台式机、笔记本手提电脑的安卓Android系统

这是JIDE公司在2016年年初创建的另一个系统,它是专门构建的,因此PC持有者可以在使用应用程序时获得梦幻般的体验,尽管它稍微落后,因为它只有基于英特尔的计算机。它已被许多人使用,即使现在仍在继续,正在进行修订以使其成为最好的之一,并且它在Android OS的维度中具有很多声誉。这是另一个最好的Android操作系统,它是在一家中国公司的帮助下实现的,而且它开始运作的是与Remix OS一起以极快的速度竞争。关于它的最令人印象深刻的因素是它伴随着DecaPro,它是您可能遇到的最好的地图工具之一。

weixin_45311714的博客 3万+

苹果手机系统是linux吗,全面解析为何苹果手机比安卓手机流畅稳定

当前最新的手机SOC CPU方面的跑分,苹果最新的A14处理器的单核性能跑分达到了1603分,而安卓这边表现最好的是骁龙888只有1135分,苹果A14的优势达到了50%。而在单核性能方面的优势就是IOS流畅的一个核心的保障,因为指令都是单线程,他们更依赖于单核性能而不是多核性能,那么在这种情况下,苹果A系列处理器的瞬时性能输出能力就要明显强于同时代的安卓旗舰处理器一大截,而瞬时输出性能越强,其对...

weixin_29826879的博客 3388

如何让老旧安卓设备流畅播放高清直播?MyTV-Android终极解决方案揭秘

还在为家中那些运行缓慢的老旧安卓设备无法观看高清电视直播而烦恼吗?你是否有一台安卓5.0系统的旧电视、平板或机顶盒,想要重温传统电视的便捷体验却苦于找不到合适的应用?今天,我要向你介绍一款专为老旧安卓设备量身定制的电视直播解决方案——MyTV-Android,它能让你的设备重获新生,流畅播放高清直播内容。 ## 🔍 老旧设备的痛点与市场空白 ### 为什么主流直播应用无法在老设备上运行?

gitblog_00731的博客 214

一加还原Android10,曾经安卓最佳第三方ROM回归,基于安卓10,支持小米、一加等机型...

原标题:曾经安卓最佳第三方ROM回归,基于安卓10,支持小米、一加等机型对于安卓来说,由于其开源的特性,除了手机厂商自己会推出基于安卓的定制系统外,一些团体或爱好者也会根据它们的想法在原生安卓中加入一些内容,使系统更具特色。近年,随着刷机浪潮的退去,不少第三方ROM都黯然消逝,如今知名度较高的也就剩下魔趣以及Lineage OS。然而也有些第三方ROM在消逝多年后选择再次回归,比如Paranoid...

weixin_31205717的博客 1045

equalizer android,全球最佳十大安卓均衡器

网易手机 8月27日消息,据androidauthority报道,多年来,Android的音乐质量已经相当稳定,很多用户仍然使用均衡器来提高音质。此举当然不会提高很多,但这额外的促进总能使音质更上一层楼。以下为排名前十的Android均衡器。第10位:音乐均衡器(Music Equalizer)音乐均衡器开发者是罗德里戈-科尔布(Rodrigo Kolb),该均衡器能够满足用户需求。在接下来的排名...

weixin_39560207的博客 5469
上一篇: WebView
下一篇: 文字中间加横线效果
cding1818
博客等级 码龄17年 963粉丝 154原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值