「Xamarin.AndroidでCPUのコア数を取得する」の版間の差分
ナビゲーションに移動
検索に移動
Administrator (トーク | 投稿記録) (ページの作成:「== API Level 17 (Android 4.2) 以降 == API Level 17 (Android 4.2) 以降はCPUのコア数を取得するAPIが用意されている。 == API Level 16 (Android…」) |
Administrator (トーク | 投稿記録) |
||
31行目: | 31行目: | ||
</source> | </source> | ||
− | [[category: Xamarin. | + | [[category: Xamarin.Android]] |
2021年4月20日 (火) 06:52時点における最新版
API Level 17 (Android 4.2) 以降[編集 | ソースを編集]
API Level 17 (Android 4.2) 以降はCPUのコア数を取得するAPIが用意されている。
API Level 16 (Android 4.1) まで[編集 | ソースを編集]
API Level 16 (Android 4.1) まではCPUのコア数を取得するAPIがないので、 sysfsのCPU関連のディレクトリ数を数える。
/sys/devices/system/cpu/cpu[0-9]+/
実装例[編集 | ソースを編集]
int GetNumberOfCores()
{
// API Level 17 (Android 4.2) 以降
if (BuildVersionCodes.JellyBeanMr1 <= Build.VERSION.SdkInt)
{
return Runtime.GetRuntime().AvailableProcessors();
}
// API Level 16 (Android 4.1) まで
else
{
var regex = new Regex("cpu[0-9]+");
var cores = Directory.GetDirectories("/sys/devices/system/cpu/")
.Select( path => Path.GetFileName(path))
.Where( file => regex.IsMatch(file) )
.Count();
return cores;
}
}