首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么我需要在安卓系统中使用ViewModelFactory?

在安卓系统中,ViewModelFactory 是一个用于创建 ViewModel 实例的工厂类。它的主要作用是允许你在创建 ViewModel 时传递参数,这在某些情况下是非常有用的。以下是一些基础概念和相关优势:

基础概念

  1. ViewModel: 这是一个用于存储和管理与 UI 相关的数据的类,它可以在配置更改(如屏幕旋转)时保持数据不丢失。
  2. ViewModelFactory: 这是一个接口,用于创建 ViewModel 实例。通过实现这个接口,你可以自定义 ViewModel 的创建过程。

优势

  1. 依赖注入: 使用 ViewModelFactory 可以方便地进行依赖注入,使得 ViewModel 的创建更加灵活和可测试。
  2. 参数传递: 当你需要向 ViewModel 传递一些初始化参数时,ViewModelFactory 是一个很好的解决方案。
  3. 生命周期管理: ViewModel 的生命周期与 ActivityFragment 不同,使用 ViewModelFactory 可以更好地管理这些生命周期。

类型

  1. 默认工厂: Android Jetpack 提供了一个默认的 ViewModelProvider.Factory 实现,可以直接使用。
  2. 自定义工厂: 你可以根据需要实现自己的 ViewModelFactory

应用场景

  1. 复杂初始化: 当 ViewModel 需要复杂的初始化逻辑时,可以使用 ViewModelFactory
  2. 依赖注入框架: 结合依赖注入框架(如 Dagger 或 Hilt),ViewModelFactory 可以更方便地管理依赖关系。
  3. 多实例需求: 如果你需要为不同的 ActivityFragment 创建不同实例的 ViewModelViewModelFactory 是一个很好的选择。

示例代码

假设你有一个 UserViewModel,它需要一个 UserId 参数来初始化:

代码语言:txt
复制
class UserViewModel(private val userId: String) : ViewModel() {
    // ViewModel 的逻辑
}

你可以创建一个自定义的 ViewModelFactory 来处理这个参数:

代码语言:txt
复制
class UserViewModelFactory(private val userId: String) : ViewModelProvider.Factory {
    override fun <T : ViewModel?> create(modelClass: Class<T>): T {
        if (modelClass.isAssignableFrom(UserViewModel::class.java)) {
            @Suppress("UNCHECKED_CAST")
            return UserViewModel(userId) as T
        }
        throw IllegalArgumentException("Unknown ViewModel class")
    }
}

然后在 ActivityFragment 中使用这个工厂来创建 ViewModel

代码语言:txt
复制
class UserActivity : AppCompatActivity() {
    private lateinit var viewModel: UserViewModel

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_user)

        val userId = intent.getStringExtra("USER_ID") ?: ""
        viewModel = ViewModelProvider(this, UserViewModelFactory(userId)).get(UserViewModel::class.java)

        // 使用 viewModel
    }
}

遇到的问题及解决方法

如果你在使用 ViewModelFactory 时遇到问题,可能是由于以下原因:

  1. 工厂实现错误: 确保你的 ViewModelFactory 正确实现了 create 方法,并且能够正确创建 ViewModel 实例。
  2. 参数传递错误: 确保你在创建 ViewModelFactory 时传递了正确的参数,并且在 create 方法中正确使用了这些参数。
  3. 类型不匹配: 确保 ViewModelFactory 创建的 ViewModel 类型与你在 ViewModelProvider 中请求的类型匹配。

解决方法:

  • 调试: 使用调试工具检查 ViewModelFactory 的创建过程,确保每一步都正确执行。
  • 日志: 添加日志输出,查看在创建 ViewModel 过程中是否有异常或错误信息。
  • 单元测试: 编写单元测试来验证 ViewModelFactory 的行为是否符合预期。

通过以上方法,你应该能够解决在使用 ViewModelFactory 时遇到的问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

IPhone 到底爽在哪?【知乎提问】

6],然后苹果机的疯狂路就开始了,陆续购入IPhone7p、IPhone X 、IPhone XS 、IPhone11使用至今,也快该换了 其实说了这么多,我仅仅想表示,安卓和iOS两个系统的手机我还是有一些发言权的...也确实那个时候安卓大多数厂商做的系统都很鸡肋,MIUI在当年是一个很屌的东西,我希望这里没有质疑的声音,红米第一代机出现799的价格直接把山寨机干没了这个事情真心喷不了。...直到后来,国内技术更新也很快,安卓手机厂商做出了各自的OEM安卓定制系统吧也只能这么叫,手机版本的鸿蒙当然也可以归类这个里面 安卓开源主打的是开放,生态嘛,国内一个样海外另一个样。...那些说用苹果就不爱国的人,我是真的想不通为什么会说这种话,首先它是一款商品,其次不管是安卓也好苹果也罢,安卓的技术领头羊是Google,苹果的技术领头羊是Apple,HarmonyOS和openHarmony...就像Deepin、FydeOS、中标麒麟、UOS、等等,也很希望,能更早的无感切换到国产操作系统使用,如果感兴趣,我再写一篇安卓到底爽在哪里!

49020

如何应对美国送上门的“美人计”? 华为:将计就计!

如果美国不允许华为使用安卓,华为还没有确定是否会把鸿蒙发展为手机系统。” 回想美国对华为颁布禁令之初,华为曾非常硬气地宣称——“没有安卓,不怕,我们有鸿蒙”。...并直接按安卓来对比——如果安卓应用经过重新编译,在鸿蒙操作系统上的运行性能将提升超过60%。...从过往所有的舆论导向来看,华为确实是信誓旦旦要把鸿蒙打造成一个替代安卓的操作系统产品的。为什么在谷歌才刚释放恢复合作的信号,华为就来了一个一百八十度大转弯呢?...如今,我认为华为对待美国布下的美人计的策略也大抵如此—— 既然美国释放友好信号了,华为就来一招“将计就计”,主动发声“安卓仍是华为手机首选系统”,送上门的不要白不要,让美国认为华为愚蠢、短视,从此放松对华为的警惕...; 随后再来一招“欲擒故纵”,承认“鸿蒙系统并不是要替代安卓,是用在物联网上的”,如此对手就不再忌惮华为的替代野心,不再对华为的替代方案严防死守,虽然鸿蒙号称完全兼容安卓生态,但要真正打造以我为主的生态体系需时甚长

62030
  • 微软打算重新拥抱安卓 弥补曾经4000 亿美元的错误

    6月27日消息,Microsoft信仰中心昨日发布微博称:微软打算重新拥抱安卓,即将发布的 Windows Lite 系统将引入安卓应用以及安卓应用商店支持,Windows Lite 除了需要 UWP...近期,Redmondians甚至正式批准Windows Phone用户改用安卓和iOS系统。 ? 此外,有消息称微软也正在考虑让安卓应用程序在未来的某些Windows设备上运行。...此前,微软暂时允许安卓应用程序使用代号为Astoria的微软开发的安卓桥移植到Windows 10。...当下,微软需要的不仅仅是UWP和Win32应用程序,更需要在Windows 10上安装第三方安卓应用程序。 ?...Windows 10 移动平台的用户,都需转而使用 iPhone 或安卓手机。

    86640

    Android Hilt实战初体验: Dagger替换成Hilt

    它将替代Dagger中的AppComponent。 Android类 对于Android类,使用Dagger时需要定义SubComponent并将它依赖到Application类中。...目的是告知模块用在哪个Android类中。 @Binds @Binds注释会告知Hilt在需要提供接口的实例时要使用哪种实现。...对于Dagger我们需要自定义一个ViewModelFactory,并且提供注入方式,例如在AwesomeGithub的componentbridget模块中定义了ViewModelFactory @Module...例如上面的MainVM,使用Hilt的效果如下 class MainVM @ViewModelInject constructor() : BaseVM() { ... } 至于Hilt为什么会这么简单呢...我们不要忘了它的本质,它是在Dagger之上建立的,本质是为了帮助我们减少不必要的样板模板,方便开发者更好的使用依赖注入。 在Hilt中,上面的实现会自动帮我们生成,所以才会使用起来这么简单。

    1.7K20

    如何为Linux系统中的SSH添加双重认证

    在这种多重认证的系统中,用户需要通过两种不同的认证程序:提供他们知道的信息(如 用户名/密码),再借助其他工具提供用户所不知道的信息(如 用手机生成的一次性密码)。...我将使用一款Android设备来生成一次性密码,本教程中需要两样武器:(1)一台运行着OpenSSH服务的Linux终端,(2)一台安卓设备。...在Linux系统中安装Google Authenticator 第一步需要在运行着OpenSSH服务的Linux主机上安装Google认证器。按照如下步骤安装Google认证器及其PAM模块。...在安卓设备上运行Google认证器 我们需要在安卓设备上安装Google Authenticator app才能完成双因子认证,到Google Play下载并安装一个。...在安卓设备上运行Google认证器,找到下图所示中的配置菜单。 你可以选择"Scan a barcode" 或者"Enter provided key"选项。"

    2.9K50

    一篇读懂:Android手机如何通过USB接口与外设通信(附原理分析及方案选型)

    大家好,又见面了,我是你们的朋友全栈君。 ---- 目录 0背景 1.手机USB接口通信特点 1.1 使用方便 1.2 通用性强 1.3 速度快 1.4 可采用总线供电 2....大部分USB外设无需单独的供电系统。 由于 USB 的诸多特点,在PC的外围设备中,取代了大部分传统的接口。但在智能仪器仪表中,还大量地使用RS一232C接口。...设备不需要在安卓平台加载任何驱动,但要使用该方案Android手机要支持OTG 功能,并且要具备android.hardware.usb.host.xml 另外,相应的方案需要配合相应软件, 如方案...由于手机和平板上的安卓系统的多样性,没有确定的标准知道某款手机平板是否支持OTG和USB HOST,且即使手机平板支持OTG功能的情况下,非原生安卓系统仍可能不能完成usb转RS232的功能。...3、USB供电问题、设备兼容性等问题 4、如使用USB-UART方案,要考虑转换芯片的统一、效率等问题,都需验证 5、目前在安卓系统下的串口终端程序,大多是由IC厂家免费提供,功能偏简单,不能发送中文,

    11.4K10

    Android 系统签名实现的三种方式

    大家好,又见面了,我是你们的朋友全栈君。 在项目开发时,如果需要使应用具有系统权限,例如可以支持静默安装和卸载APK,此时就需要使用系统签名。...com.xxxx.xxxx" android:sharedUserId="android.uid.system"> 1. ubuntu环境编译 该方式需要在安卓源码编译的环境下...,在将APK打包至安卓系统升级包时,需要配置Android.mk文件,通过在配置LOCAL_CERTIFICATE 参数时,将其设置为PRESIGNED,如果需要改APK具有系统权限,使用系统签名,则需要设置为...2.2 查找security文件 拿到系统定制厂商提供的security文件,不同编译下生成的security文件内容不同,需针对该安卓系统下的编译生成的security文件,因此这也限定了该系统签名后的应用只能在该系统下运行...参考 安卓签名工具SignApk.jar使用教程 让Android Studio支持系统签名 keytool-importkeypair 使用 发布者:全栈程序员栈长,转载请注明出处:https:

    2.4K20

    uniapp开发App从开发到上架全过程

    安卓端上架安卓端上架最常见的问题是隐私政策问题,不同的应用市场对于APP的隐私政策都有相应的要求,大家可以提前阅读相应应用市场的隐私政策来进对自己APP的隐私政策进行修改(还有一个野路子解决方案:找到你要上架的相应应用市场中与你...对于隐私政策,APP要在三个地方进行展示,第一个地方是要在APP首次打开的时候以弹窗形式进行展示 ​ 第二则是要在APP进行账户登录的时候进行展示,并要求用户勾选并同意隐私协议才可进行登录 ​ 第三处则是要在我的或设置页面中再次展示隐私协议...接下来的注册步骤需要在手机端完成: 手机appstore中搜索Apple Developer并安装,使用注册的账号进行登录,登录成功后在账户中点击立即注册按钮,进行填写信息  根据需要注册的账号类型选择个人或组织...,如Apple 登录、通知等,都要在此选择,否则是无法使用的。...在此界面我们需要上传App的页面截图、版本和二进制安装包等信息,对于截图,必须使用真机进行截图,否则苹果审核人员会给我们进行驳回  二进制包上传不同于安卓APP可以直接在网页端上传安装包,IOS的安装包需要使用到

    47110

    今天起 Windows 可以直接运行安卓手机 App,网友的带薪摸鱼梦实现了!

    近日,Windows 直接运行安卓手机 App 了,这一功能主要在 Windows 11 上实现。 Windows 变身“安卓”,网友的摸鱼梦实现了!...用户可以在设置-Windows更新-Windows 预览体验计划中申请加入。 安装完成后,安卓应用会在桌面生成快捷方式,像原生Windows软件一样,双击即可打开使用。...想在Windows上体验移动应用,需要满足以下三步: 需是Windows预览体验计划成员且适配PC系统必须是Canary或者Dev Channel的版本。 PC所在地区须设置为中国。...以下是一些应用的运行展示界面: Windows 用户终于可以在PC上畅享安卓应用,这一历史性时刻标志着技术的逐步融合与创新。...这一进展不仅丰富了操作系统的应用生态,更弥补了用户在多种设备间使用应用的障碍,为技术的未来发展奠定了更加坚实的基础。

    59710

    Android 让你的 Room 搭上 RxJava 的顺风车 从重复的代码中解脱出来

    关于本文中的代码以及后续文章中的代码,我已经上传至我的 GitHub 欢迎大家围观、star 详见-> FishInWater-1999/ArchitectureComponentsStudy 开始之前...---- 为什么我们要学 Room 相比于我们直接使用传统方式,如果直接使用 Java 代码进行 SQLite 操作,每次都需要手写大量重复的代码,对于我们最求梦想的程序员来说,这种无聊的过程简直是一种折磨....> 类型的对象,这是为了防止表中数据过多,读取速率远大于接收数据,从而导致内存溢出的问题,具体详见 RxJava 的教程,这里我就不赘述了。...顾名思义,我们需要在标记了该标签的类里,做具体的数据库操作,比如数据库的建立、版本更新等等。...每个方法的功能,我已经在注释中给出,这里就不再赘述 ViewModelFactory 有上面我们可以看到,我们已经有了进行数据处理的 ViewModel 类,那么我们这里的 ViewModelFactory

    1.2K20

    Appium+python自动化(三)- SDK Manager(超详解)

    而AVD Manager是一个Android虚拟驱动管理器,主要用来创建安卓模拟器(即手机模拟器)。当然,安卓模拟器所需的镜像(可以理解成模拟器的操作系统)是通过SDK Manager来下载的。...所以要想用模拟器,必须先使用SDK下载操作系统。  对于SDK Manager和AVD Manager的使用,还需要一个基础工具包tools提供支持。       ...一、详解图1、以下图是来自大神的神解释,在许多安卓开发的博客中都可以看到的二、SDK Manager1、双击打开SDK Manager就会出现和大神分享一模一样的界面2、这里我再次啰嗦一下各个工具作用如下...┣ ━━Samples for SDK(可选,此项在高版本tools中已不提供,需要在IDE里通过Import Sample引入,内置的安卓示例程序,推荐安装。      ...License),耐心等待下载完成...2、如果已经安装了,后面会有Installed标志,勾选后可以选择右下角“Delete”按钮卸载 3、注意事项注1:Google开头的文件初学一般用不到,而且使用需

    45520

    EMUI9.1更新后,流畅度仅次于ios,为何有人说少有人更新?

    ,所以在执行过程中效率会大打折扣,这是安卓手机比苹果手机体验差的主要原因,当然谷歌也是一直在提升安卓的性能,用安卓5.0开始就开始摒弃Dalvik,采用了Art机制,主要原理在安装的过程中把字节码翻译成机器码来执行...对于安卓系统的优化在安卓4.0时期,三星公司尝试优化过,但由于还是跟不上谷歌的节奏最后不得已放弃,这个事情最终还是让华为公司给做了,从各个纬度考虑华为正在为部署自己的操作系统,毕竟操作系统之前是编译器先行...EMUI9.1在文件系统也优化了功能,EROFS文件系统,主要在访问硬盘数据方面做了优化,早期的安卓系统如果图库的图片太多会导致性能下降很多,引入EROFS文件系统会提升访问文件的效率,EROFS属于可压缩的只读文件系统...EMUI9.1有关GPU Turbo,从技术角度上理解就是硬件加速功能的实现,把通过软件算法实现的功能用硬件来代替,虽然原理上理解起来比较简单,要在安卓复杂的图形系统中无缝接入也是个技术含量非常大的活。...EMUI9.1在完善这三个功能之后,只能讲相比苹果手机更加拉近了差距,有一点是安卓手机无法比拟的,苹果系统无论软件硬件都是苹果系统掌控的,占有大量资源的应用基本上苹果不会在应用市场上通过,安卓手机几乎可以随便安装应用存在

    1.4K20

    什么是无障碍适配?

    后续我将继续给大家介绍,如何实现无障碍适配。什么是无障碍要给网页做无障碍适配,我们需要明白:什么是无障碍。百度百科定义:无障碍,在发展过程中没有阻碍,活动能够顺利进行。...开发前需了解作为前端开发者,我们要解决的大都是「视障群体」的无障碍适配。我们需要先学会像盲人一样使用手机。...下面是我个人罗列了一些常用操作:常用表现 安卓 Talk Back iOS Voice...所以大部分视障群体更愿意使用Apple系列产品。我们做无障碍测试时,经常遇到Android和iOS播报有差异。我们要求必须兼容iOS的语音播报,不会花太多心思去兼顾所有安卓机的语音播报软件。...推荐阅读MDN对无障碍的介绍Apple对无障碍的支持Android对无障碍的支持写在最后我是HullQin,公众号线下聚会游戏的作者(欢迎关注我,交个朋友)。转发本文前需获得作者HullQin授权。

    3.1K73

    巧用ADB安卓调试工具,在双十一直播间轻松回复文字领取优惠!

    此文项目的实践视频: 【双十一直播间技巧,巧用ADB安卓调试工具回复文字领取优惠券!】...温馨提示: 若对adb工具不了解的朋友,请参考如下两篇文章《安卓设备adb调试工具安装配置使用实践》以及《安卓设备adb调试工具命令归纳总结一览表》。...操作步骤: Step 0.提前准备好USB线以及安卓手机,并且计算机中安装 adb 工具以及驱动,不用安装的朋友参考上述提示。...PowerShell提供的字符串转换为base64模块即可, 例如,当我们使用命令的方式通过 ADBKeyBoard 将要输入中文字符串传到安卓手机时: $str=[Convert]::ToBase64String...3.项目实战 描述: 有了前面扫盲小节,相信看友应该能明白作者的意图了,作者使用adb工具并通过手机开发者中开启USB调试,让程序进行模拟点击, 需提前获取要点击的 x,y 坐标(这也是我们为啥开启指针位置的原因

    42820

    【叮咚抢菜助手】送给有需要的人,共度时艰!

    前言: 囤的菜快吃完了,于是我打开了朋友安利的抢菜插件——叮咚助手。然后分享给大家: 1....然后这个插件没有任何的黑科技,原理只是使用安卓系统提供的无障碍服务,通过模拟点击来实现自动化下单流程,并没有办法保证 100% 下单成功。 关于叮咚助手的各种问题: 1.叮咚助手支持苹果手机吗?...如没有安卓手机,建议找其他城市的朋友帮忙下单。 2. 为什么无法安装?...下图是开启教程(请注意我这里只是使用了小米手机做演示,不同的手机系统流程不同): (点击可查看大图) 成功开启插件之后,再打开叮咚买菜 APP 的购物车页面,程序会自动跳转到结算页面,并自动选择时间...你只需要在成功下单之后立即支付即可。 4. 为什么程序执行的速度很慢,还不如自己用手点? 因为叮咚助手只是一个普通应用,它所使用的功能全是安卓系统公开支持的,不会利用任何漏洞或者什么黑科技。

    99210

    安卓开发基础教程-使用隐式意图打开系统内置应用,干货

    开篇 本文阅读需15分钟,属于安卓开发基础教程。 建议先收藏,然后打开开发工具,按照步骤一起做。 本文由做全栈攻城狮原创首发。 本教程致力于讲解及快速进行安卓开发的学习。...除安卓开发教程之外,还有Python、C#、网站建设、SEO等教程。对电脑技术感兴趣的朋友直接点击上方“关注”。 本文章要求你有一点安卓基础。...没有安卓基础的朋友可以,查看以前我写的关于安卓开发的文章。 上次课程:安卓开发基础教程-Android多界面应用程序开发 实现的功能: 点击按钮实现打开系统内置浏览器,并访问百度的功能。 ?...使用隐式意图打开本应用内界面。了解整个过程。 通过隐式意图打开系统内置浏览器 下面是重头戏。 隐身意图 下面使用隐身意图,打开自己应用内一个新界面SecondActivity。...Brower中的androidManifest文件 其中有很多intent-filter。可以根据自己的需求选择对应的intent-fliter就可以了。我们使用圈中的intent-fliter。

    1.3K20

    ARFoundation☀️ 一、本专栏概述及开发环境配置

    本专栏概述 1️⃣ 为什么要用ARFoundation? ARFoundation 对 ARCore、ARKit 等进行了封装。原先我们开发安卓应用,要用 ARCore 开发。...同一个应用,若想开发成苹果的,需重新接入 ARKit。...我们只需要对 ARFoundation 进行一次开发,切换平台,便可导出安卓、或苹果等的应用了。我们可以看看2020021官方出示的集成资源包图片: 2️⃣ 本专栏能学到什么?...不要考虑使用虚拟机装苹果系统了,过于卡顿。 若你不打算开发苹果应用,使用Windows电脑即可。 3️⃣ XCode、苹果开发者账号 Xcode安装在mac电脑,用以生成苹果应用。...4️⃣ Android SDK、JDK、NDK 上述3个SDK是导出安卓apk必须的环境。若没这个环境,则apk无法打包。

    14810

    再聊华为鸿蒙及对其未来5年的期望

    ,将相应分布式应用的底层技术实现难度对应用开发者屏蔽,使开发者能够聚焦自身业务逻辑,像开发同一终端一样开发跨终端分布式应用,也使最终消费者享受到强大的跨终端业务协同能力为各使用场景带来的无缝体验。...其实华为也早有想法,首先安卓的软件是可以直接套用在鸿蒙OS上的,(可能这也就是为什么起初有人称鸿蒙是换壳安卓吧),但是现在华为也在用自己的社会影响力,来开办各种鸿蒙开发者大赛,有图为证 鸿蒙开发者学堂...想一下7,8年前安卓的那批程序员,哪一个不是人中龙凤了,但是仅供参考,我不确定现在的鸿蒙是不是以后的安卓,当然不是说鸿蒙将替代安卓,俩家的起初定位就不同。...,让安卓程序员可以迅速上手,以下是优点: 如果要一个操作系统高效,它的设计必须和它的芯片或多或少有更密切的关联,而这些关联就是用编译器去达成的,就是负责把程序源代码根据芯片的设计去做最大化优化。...为了对标苹果,当初的目的是为了省内存和闪存,从而有相应性能提高,而华为首先尝试改变安卓上的采用编程技术,再来实现软件和硬件联同设计,如 CPU 的流水线和特有指令等。

    60510

    安卓开发基础教程-Android多界面应用程序开发

    本套教程主要讲解安卓开发的相关知识,从基础到精通。一方面可以巩固自己所得,另一方面可以帮助对安卓开发感兴趣的朋友。...Activity Activity是安卓四大组件之一。...个人理解就是在App中的每一个界面都属于Activity。在这个界面上实现功能,处理逻辑。 可以看到在安卓的项目中有Activity的身影: ? 安卓项目 Activity需要进行配置才可以使用。...Activity需要在AndroidManifest.xml中进行配置才可以使用。 那你可能会问,为什么我们以前写的项目,为什么Activity可以直接打开呢?...我是成傲天。 生活在不出名的本科院校,白天是学生族,晚上是程序员和知识服务工作者。 读完我的文章如果有收获,记得打赏、关注和点赞哦!

    88240

    欧盟要统一充电接口为USB-C,苹果急了:这是在扼杀创新

    “我用的是安卓。”充电器不一样,实在是不方便。 现在,欧洲要实现充电接口的统一了。 欧盟一项最新提案要求电子行业统一使用USB-C作为充电设备标准。...圈地自萌的市场现状 来看看手机市场充电接口的现状:目前已经是苹果Lightning与安卓Type-C二分天下,相比濒临淘汰、只能单面插入的micro-USB接口,这两种类型使用起来更安全,不易损坏接头。...安卓宇宙的参差 安卓和苹果充电器不兼容,那插口类型相同的各品牌安卓充电器,能不能通用呢? 虽然都叫Type-C,但也是有功率大小之分的。...为什么各家厂商都不愿统一 厂商为什么不会配合?还不是赚不了这部分利润了。 安卓内部各自开发快充技术,就是为了做到隐形捆绑销售。既然都要买配件,为什么不能是买自己家的?...6大奖项锁定AI TOP企业 「2021中国人工智能年度评选」报名中!本次评选将从公司、人物、产品三大维度寻找优秀的AI企业,欢迎大家扫码报名参与。

    53730
    领券