Fetching Android SDK component information

本文介绍如何通过修改配置文件来禁用AndroidStudio在启动时获取Android SDK组件信息,从而加快启动速度。

在启动Android Studio时,可能弹出“Fetching Android SDK component information”对话框去获取Android SDK组件的信息。这个获取的过程可能需要很长的时间,也不一定能够成功的获取。

本经验介绍一种方法,在启动的时候不去获取Android SDK component information.

工具/原料

  • Android Studio

方法/步骤

  1. 如果启动时,弹出“Fetching Android SDK component information”对话框,如图所示:

    则可以在配置文件中配置启动时,不去获取Android SDK component information

    Fetching Android SDK component information
  2. 打开Android Studio的安装目录下的bin目录,如图所示:

    Fetching Android SDK component information
  3. 在bin目录下,找到idea.properties文件,如图:

    Fetching Android SDK component information
  4. 打开idea.properties文件

    本经验采用Notepad++打开idea.properties,

    Fetching Android SDK component information
  5. 在最后一行添加“disable.android.first.run=true”。如图:

    Fetching Android SDK component information
  6. 重启Android Studio,就不会去获取Android SDK component information了。如图:

    Fetching Android SDK component information

这是获取硬件信息的 Delphi 第三方控件包,非常强大。 官方在2013年7月24日更新的版本,试用版在软件运行时会弹出控件版权信息框。破解MSI_Common.dcu后,无信息框弹出! 控件详细说明: Product: MiTeC System Information Component Suite Version: 11.2.0 Author: Michal Mutl E-Mail: michal.mutl@mitec.cz Target: Delphi 5.x, Delphi 6.x, Delphi 7.x, Delphi 2005, Delphi 2006, Delphi 2007, Delphi 2009, Delphi 2010, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4 Platform: W95, W98, NT, W2000, Windows ME, Windows XP, Windows 2003, Windows Vista, Windows 7, Windows Server 2008, Windows Server 2008 R2, Windows 8 Status: Up date Source: N/A Description: The most complex system probe in the Delphi world. It consists of many standalone components covering many system information problematics: + TMiTeC_SystemInfo: gathers all following components to one for simple use + TMiTeC_APM: provides informaton about Advanced Power Management + TMiTeC_BT: detects Bluetooth devices using Native Bluetooth Enumerator) + TMiTeC_CPU: provides detailed CPU information + TMiTeC_Devices: provides devices information like Windows Device Manager + TMiTeC_Disk: provides logical drive information + TMiTeC_Display: provides display adapter information + TMiTeC_DMA: provides direct memory acceess + TMiTeC_Engines: provides information about various installed engines + TMiTeC_Machine: provides informaton about computer or virtual machine, BIOS etc. + TMiTeC_Media: provides media devices information + TMiTeC_Memory: provides memory information + TMiTeC_Monitor: provides all connected moitors information + TMiTeC_Network: provides network card info, TCP/IP ad Winsock config, installed protocols, clients and services. + TMiTeC_OperatingSystem: provides OS detailed information, Locale, Timezone, NT specific info, hotfixes, internet settings etc. + TMiTeC_Printers: detects installed printers and their properties + TMiTeC_ProcessList: collects list of running processes, services, drivers and windows and their properties + TMiTeC_SMBIOS: reads SMBIO
获取硬件信息的控件,支持delphi10.3 rio TMiTeC_SystemInfo将以下所有组件收集在一起,以方便使用 TMiTeC_AD探索ActiveDirectory TMiTeC_APM提供有关高级电源管理的信息 TMiTeC_BT使用本机蓝牙枚举器检测蓝牙设备) TMiTeC_CPU提供详细的CPU信息 TMiTeC_Devices提供Windows设备管理器之类的设备信息 TMiTeC_Disk提供逻辑驱动器信息 TMiTeC_Display提供显示适配器信息 TMiTeC_DMA提供直接的内存访问权限 TMiTeC_DriveContent扫描并保存指定的驱动器内容 TMiTeC_Engines提供有关各种已安装引擎的信息 TMiTeC_EventLog从Windows EventLog中提取信息 TMiTeC_Firewall枚举Windows防火墙中的设置和规则,规则管理功能 TMiTeC_Machine提供有关计算机或虚拟机,BIOS,TPM等的信息。 TMiTeC_Media提供媒体设备信息 TMiTeC_Memory提供内存信息 TMiTeC_Monitor提供所有已连接的监视器信息 TMiTeC_MSProduct检测到已安装的某些Microsoft产品及其产品密钥 TMiTeC_MUS检测可用的Windows更新(MicrosoftUpdateSession) TMiTeC_Network提供网卡信息,TCP / IP广告Winsock配置,已安装的协议,客户端和服务。 TMiTeC_OperatingSystem提供OS详细信息,区域设置,时区,NT特定信息,修补程序,Internet设置等。 TMiTeC_Printers检测已安装的打印机及其属性 TMiTeC_ProcessList收集正在运行的进程,服务,驱动程序和窗口及其属性的列表 TMiTeC_Security检测已安装的防病毒,防间谍软件和防火墙 TMiTeC_SMBIOS从内存中读取SMBIOS信息 TMiTeC_Software提供已安装软件的列表 TMiTeC_Startup提供在系统启动期间启动的应用程序的列表 TMiTeC_Storage可检测S-ATA,ATA,ATAPI,RAID,SCSI,USB,Firewire存储设备及其参数 TMiTeC_USB检测USB端口和设备及其参数 TMiTeC_WIFI会检测所有可用参数的可用Wi-Fi网络 每当将任何USB,火线等设备或卷连接到计算机或与计算机断开连接时,TMiTeC_DeviceMonitor都会检测并触发事件。 TMiTeC_DiskMonitor监视指定的驱动器或路径,并在发生指定事件时触发事件 TProcMonThread 通过其进程IDentifier监视给定的进程,并提供基本的进程属性,内存,CPU和I / O进程使用率,并枚举进程线程及其运行时属性。 TProcListMonThread 实时监视正在运行的进程,并提供进程属性,内存和CPU进程使用率等。 TSysMonThread监视系统并提供基本属性以及CPU,内存和磁盘使用情况 TSysModListMonThread实时监视系统模块并提供其属性 TNetConMonThread通过进程实时监视网络连接并提供其属性 TPerfMonThread实时监视性能计数器并提供其属性 THndListMonThread实时监视系统句柄并提供其属性 TMiTeC_NetCreds提供缓存的网络凭据枚举。 TMiTeC_USBHistory USB使用率检测组件 TMiTeC_WLANC已知的Wi-Fi网络枚举(包括网络密钥)
<think>我们面对的核心问题是:在执行主仓库的cherry-pick操作时,如何避免子模块(特别是sdk/an7551)被更新。根据引用[2]和引用[4]的提示,子模块更新可能会在cherry-pick过程中被触发,导致需要手动解决子模块冲突或更新。 解决方案的核心思路是:在cherry-pick过程中排除对子模块路径的更改。以下是具体步骤: ### 方法1:使用路径过滤(推荐) ```bash # 步骤1:执行cherry-pick但不自动提交(-n 或 --no-commit) git cherry-pick -n <commit-id> # 步骤2:从暂存区移除子模块的变更(假设子模块路径为sdk/an7551) git reset HEAD sdk/an7551 # 步骤3:恢复子模块到原始状态(丢弃工作区中该子模块的更改) git checkout -- sdk/an7551 # 步骤4:手动提交(此时提交只包含主仓库的变更) git commit -m "Cherry-pick [commit-id] without updating submodule" ``` ### 方法2:单行命令(适用于一个子模块) ```bash git cherry-pick -n <commit-id> && git reset HEAD sdk/an7551 && git checkout -- sdk/an7551 && git commit -m "Cherry-pick without submodule" ``` ### 方法3:使用补丁并过滤(适用于复杂场景) ```bash # 生成排除子模块路径的补丁 git show <commit-id> -- . ":!sdk/an7551" > patch.diff # 应用补丁 git apply patch.diff # 提交 git add -A git commit -m "Apply patch without submodule" ``` ### 解释关键步骤: - `git cherry-pick -n`:避免自动提交,给我们机会修正子模块状态。 - `git reset HEAD <path>`:将指定路径从暂存区移除(这里指子模块)。 - `git checkout -- <path>`:恢复子模块目录到HEAD指向的状态(丢弃更改)。 ### 注意事项: 1. **冲突处理**:如果cherry-pick过程中发生冲突(即使排除了子模块),需先解决主仓库的冲突,再执行上述步骤。 2. **多子模块情况**:如果有多个子模块需要排除,可以重复步骤2和3,或者使用通配符: ```bash git reset HEAD sdk/ # 重置sdk目录下所有子模块 git checkout -- sdk/ # 恢复sdk目录下所有子模块 ``` 3. **验证子模块状态**:操作完成后,使用以下命令检查子模块是否被修改: ```bash git diff --ignore-submodules # 忽略子模块的差异 ``` ### 引用说明: - 引用[2]提到`git submodule update -f`可以强制更新子模块,但我们在cherry-pick中要避免使用,因为它是更新子模块的命令[^2]。 - 引用[4]提到`git diff`查看未提交的修改,我们在操作后可以用此命令验证[^4]。 ### 永久配置(可选): 如果希望所有操作默认忽略子模块更新,可设置: ```bash git config --global diff.ignoreSubmodules all git config --global status.submoduleSummary false ``` §§相关问题§§ 1. 如何批量cherry-pick多个提交同时排除所有子模块? 2. 如何恢复因误操作而更新的子模块? 3. Git如何永久配置忽略子模块的变更? 4. 如何检查某个提交是否包含子模块的更改?</think>### 解决 Git Cherry-Pick 时避免更新特定子模块的方法 针对您需要 cherry-pick 主仓库提交但避免更新 `sdk/an7551` 子模块的需求,以下是具体解决方案: #### 最佳解决方案:使用路径过滤排除子模块 ```bash # 1. 执行 cherry-pick 时排除特定子模块路径 git cherry-pick -n <commit-id> -- . ":!sdk/an7551" # 2. 重置子模块状态(确保不更新) git reset HEAD sdk/an7551 git checkout -- sdk/an7551 # 3. 提交变更(不包含子模块更新) git commit -m "Cherry-pick [commit-id] without updating sdk/an7551 submodule" ``` #### 替代方案:使用补丁过滤 ```bash # 1. 生成排除子模块的补丁 git show <commit-id> -- . ":!sdk/an7551" > filtered.patch # 2. 应用过滤后的补丁 git apply filtered.patch # 3. 提交变更 git add -A git commit -m "Apply filtered patch without submodule" ``` #### 关键操作说明: 1. **路径过滤语法** `:!sdk/an7551`: - 使用 Git 的路径规范排除特定子模块[^4] - 确保子模块路径正确(区分大小写) 2. **强制恢复子模块**: ```bash # 如果子模块意外更新 git submodule update --force sdk/an7551 ``` 3. **验证是否包含子模块变更**: ```bash git diff --ignore-submodules=all # 检查主仓库变更 git submodule status # 确认子模块未更新[^2] ``` #### 冲突处理流程: 1. 如果 cherry-pick 冲突涉及子模块: ```bash # 接受主仓库版本,丢弃子模块变更 git checkout --ours sdk/an7551 # 强制重置子模块 git submodule update --force sdk/an7551 ``` 2. 继续完成 cherry-pick: ```bash git add . git cherry-pick --continue ``` > **重要提示**:子模块状态由 `.gitmodules` 文件控制,cherry-pick 可能包含子模块指针变更。路径过滤是隔离这些变更的最可靠方法[^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值