Merge pull request #1632 from nikita-bykov/macos-docs

Improve documentation for Android on MacOS
This commit is contained in:
Maxim Lobanov
2020-09-23 17:59:43 +03:00
committed by GitHub
2 changed files with 115 additions and 144 deletions

View File

@@ -1,7 +1,3 @@
Import-Module "$PSScriptRoot/../helpers/Common.Helpers.psm1"
$os = Get-OSVersion
function Split-TableRowByColumns { function Split-TableRowByColumns {
param( param(
[string] $Row [string] $Row
@@ -9,17 +5,6 @@ function Split-TableRowByColumns {
return $Row.Split("|") | ForEach-Object { $_.trim() } return $Row.Split("|") | ForEach-Object { $_.trim() }
} }
function Build-AndroidTableObject {
param(
[string] $PackageName,
[string] $Description
)
return [PSCustomObject] @{
"Package Name" = $PackageName
"Description" = $Description
}
}
function Get-AndroidSDKRoot { function Get-AndroidSDKRoot {
return Join-Path $env:HOME "Library" "Android" "sdk" return Join-Path $env:HOME "Library" "Android" "sdk"
} }
@@ -43,124 +28,148 @@ function Get-AndroidInstalledPackages {
return $androidInstalledPackages return $androidInstalledPackages
} }
function Build-AndroidSDKToolsTable {
param (
[Parameter(Mandatory)]
[object] $packageInfo
)
return $packageInfo | ForEach-Object { function Build-AndroidTable {
$packageInfoParts = Split-TableRowByColumns $_ Write-Host "Build-AndroidTable"
$packageName = $packageInfoParts[0] $packageInfo = Get-AndroidInstalledPackages
$packageDescription = $packageInfoParts[2] + ", Revision " + $packageInfoParts[1] return @(
return Build-AndroidTableObject -PackageName $packageName -Description $packageDescription @{
"Package" = "Android SDK Tools"
"Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "Android SDK Tools"
},
@{
"Package" = "Android SDK Platforms"
"Version" = Get-AndroidPlatformVersions -PackageInfo $packageInfo
},
@{
"Package" = "Android SDK Build-tools"
"Version" = Get-AndroidBuildToolVersions -PackageInfo $packageInfo
},
@{
"Package" = "Android SDK Platform-Tools"
"Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "Android SDK Platform-Tools"
},
@{
"Package" = "Google APIs"
"Version" = Get-AndroidGoogleAPIsVersions -PackageInfo $packageInfo
},
@{
"Package" = "Android Support Repository"
"Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "Android Support Repository"
},
@{
"Package" = "Google Play services"
"Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "Google Play services"
},
@{
"Package" = "Google Repository"
"Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "Google Repository"
},
@{
"Package" = "SDK Patch Applier v4"
"Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "SDK Patch Applier v4"
},
@{
"Package" = "CMake"
"Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "cmake"
},
@{
"Package" = "NDK"
"Version" = Get-AndroidNDKVersions -PackageInfo $packageInfo
}
) | Where-Object { $_.Version } | ForEach-Object {
[PSCustomObject] @{
"Package Name" = $_.Package
"Version" = $_.Version
}
} }
} }
function Build-AndroidSDKPlatformTable { function Get-AndroidPackageVersions {
param ( param (
[Parameter(Mandatory)] [Parameter(Mandatory)]
[object] $packageInfo [object] $PackageInfo,
[Parameter(Mandatory)]
[object] $MatchedString
) )
return $packageInfo | ForEach-Object { $versions = $packageInfo | Where-Object { $_ -Match $MatchedString } | ForEach-Object {
$packageInfoParts = Split-TableRowByColumns $_ $packageInfoParts = Split-TableRowByColumns $_
$packageName = $packageInfoParts[0].split(";")[1] return $packageInfoParts[1]
$packageDescription = $packageInfoParts[2] + ", Revision " + $packageInfoParts[1]
return Build-AndroidTableObject -PackageName $packageName -Description $packageDescription
} }
return ($versions -Join "<br>")
} }
function Build-AndroidSDKBuildToolsTable { function Get-AndroidPlatformVersions {
param ( param (
[Parameter(Mandatory)] [Parameter(Mandatory)]
[object] $packageInfo [object] $PackageInfo
) )
return $packageInfo | ForEach-Object { $versions = $packageInfo | Where-Object { $_ -Match "Android SDK Platform " } | ForEach-Object {
$packageInfoParts = Split-TableRowByColumns $_ $packageInfoParts = Split-TableRowByColumns $_
$packageName = $packageInfoParts[0].replace(";", "-") $revision = $packageInfoParts[1]
$packageDescription = "Android SDK Build-Tools, Revision " + $packageInfoParts[1] $version = $packageInfoParts[0].split(";")[1]
return Build-AndroidTableObject -PackageName $packageName -Description $packageDescription return "$version (rev $revision)"
} }
[array]::Reverse($versions)
return ($versions -Join "<br>")
} }
function Build-AndroidNDKTable { function Get-AndroidBuildToolVersions {
param (
[Parameter(Mandatory)]
[object] $PackageInfo
)
$versions = $packageInfo | Where-Object { $_ -Match "Android SDK Build-Tools" } | ForEach-Object {
$packageInfoParts = Split-TableRowByColumns $_
return $packageInfoParts[1]
}
$groupVersions = @()
$versions | ForEach-Object {
$majorVersion = $_.Split(".")[0]
$groupVersions += $versions | Where-Object { $_.StartsWith($majorVersion) } | Join-String -Separator " "
}
return ($groupVersions | Sort-Object -Descending -Unique | Join-String -Separator "<br>")
}
function Get-AndroidGoogleAPIsVersions {
param (
[Parameter(Mandatory)]
[object] $PackageInfo
)
$versions = $packageInfo | Where-Object { $_ -Match "Google APIs" } | ForEach-Object {
$packageInfoParts = Split-TableRowByColumns $_
return $packageInfoParts[0].split(";")[1]
}
return ($versions -Join "<br>")
}
function Get-AndroidNDKVersions {
param ( param (
[Parameter(Mandatory)][AllowEmptyString()] [Parameter(Mandatory)][AllowEmptyString()]
[string[]] $installedPackages [string[]] $packageInfo
) )
$ndkInfo = @() $os = Get-OSVersion
$versions = @()
if ($os.IsLessThanBigSur) { if ($os.IsLessThanBigSur) {
$ndkInfo += [PSCustomObject] @{ # Hardcode NDK 15 as a separate case since it is installed manually without sdk-manager (to none default location)
# Hardcode NDK 15 as a separate case since it is installed manually without sdk-manager (to none default location) $versions += "15.2.4203891"
"Version" = "15.2.4203891"
"Path" = Join-Path (Get-AndroidSDKRoot) "android-ndk-r15c"
}
$ndkFolderPath = Join-Path (Get-AndroidSDKRoot) "ndk" $ndkFolderPath = Join-Path (Get-AndroidSDKRoot) "ndk"
$ndkInfo += Get-ChildItem -Path $ndkFolderPath | ForEach-Object { Get-ChildItem -Path $ndkFolderPath | ForEach-Object {
return [PSCustomObject] @{ $versions += $_.Name
"Version" = $_.Name
"Path" = $_.FullName
}
} }
} }
$ndkBundleInfo = $installedPackages | Where-Object { $_ -Match "ndk-bundle" } | Select-Object -First 1 $versions += $packageInfo | Where-Object { $_ -Match "ndk-bundle" } | ForEach-Object {
$ndkBundleVersion = (Split-TableRowByColumns $ndkBundleInfo)[1] $packageInfoParts = Split-TableRowByColumns $_
$ndkInfo += [PSCustomObject] @{ return $packageInfoParts[1]
"Version" = $ndkBundleVersion
"Path" = Join-Path (Get-AndroidSDKRoot) "ndk-bundle"
} }
$ndkInfo | ForEach-Object { return ($versions -Join "<br>")
$_.Path = $_.Path.Replace($env:HOME, '$HOME')
}
return $ndkInfo
}
function Build-AndroidUtilsTable {
param (
[Parameter(Mandatory)][AllowEmptyString()]
[string[]] $installedPackages
)
$utilsList = @("cmake", "Android Emulator")
return $utilsList | ForEach-Object {
$packageName = $_
$packageInfo = $installedPackages | Where-Object { $_ -Match $packageName } | Select-Object -First 1
$packageInfoParts = Split-TableRowByColumns $packageInfo
return [PSCustomObject] @{
"Package Name" = $packageName
"Version" = $packageInfoParts[1]
}
}
}
function Build-AndroidExtraPackagesTable {
param (
[Parameter(Mandatory)][AllowEmptyString()]
[string[]] $installedPackages
)
$extraPackages = @(
"Android Support Repository",
"Google Play services",
"Google Repository",
"Hardware_Accelerated_Execution_Manager"
)
return $extraPackages | ForEach-Object {
$packageId = $_
$packageInfo = $installedPackages | Where-Object { $_ -Like "*${packageId}*" } | Select-Object -First 1
$packageInfoParts = Split-TableRowByColumns $packageInfo
return [PSCustomObject] @{
"Package Name" = $packageInfoParts[2]
"Version" = $packageInfoParts[1]
}
}
} }

View File

@@ -310,45 +310,7 @@ if (-not $os.IsBigSur) {
# Android section # Android section
$markdown += New-MDHeader "Android" -Level 3 $markdown += New-MDHeader "Android" -Level 3
$androidInstalledPackages = Get-AndroidInstalledPackages $markdown += Build-AndroidTable | New-MDTable
$markdown += New-MDHeader "Android SDK Tools" -Level 4
$androidSDKTools = $androidInstalledPackages | Where-Object { $_ -Match "Android SDK Tools" }
$markdown += Build-AndroidSDKToolsTable $androidSDKTools | New-MDTable
$markdown += New-MDNewLine
$markdown += New-MDHeader "Android SDK Platform-Tools" -Level 4
$androidSDKPlatformTools = $androidInstalledPackages | Where-Object { $_ -Match "Android SDK Platform-Tools" }
$markdown += Build-AndroidSDKToolsTable $androidSDKPlatformTools | New-MDTable
$markdown += New-MDNewLine
$markdown += New-MDHeader "Android SDK Platforms" -Level 4
$androidSDKPlatforms = $androidInstalledPackages | Where-Object { $_ -Match "Android SDK Platform " }
$markdown += Build-AndroidSDKPlatformTable $androidSDKPlatforms | New-MDTable
$markdown += New-MDNewLine
$markdown += New-MDHeader "Android SDK Build-Tools" -Level 4
$androidSDKBuildTools = $androidInstalledPackages | Where-Object { $_ -Match "Android SDK Build-Tools" }
$markdown += Build-AndroidSDKBuildtoolsTable $androidSDKBuildTools | New-MDTable
$markdown += New-MDNewLine
$markdown += New-MDHeader "Android NDKs" -Level 4
$markdown += Build-AndroidNDKTable $androidInstalledPackages | New-MDTable
$markdown += New-MDNewLine
$markdown += New-MDHeader "Android Utils" -Level 4
$markdown += Build-AndroidUtilsTable $androidInstalledPackages | New-MDTable
$markdown += New-MDNewLine
$androidGoogleAPIsTable = $androidInstalledPackages | Where-Object { $_ -Match "Google APIs" }
if ($androidGoogleAPIsTable.Count -gt 0) {
$markdown += New-MDHeader "Android Google APIs" -Level 4
$markdown += Build-AndroidSDKPlatformTable $androidGoogleAPIsTable | New-MDTable
$markdown += New-MDNewLine
}
$markdown += New-MDHeader "Extra Packages" -Level 4
$markdown += Build-AndroidExtraPackagesTable $androidInstalledPackages | New-MDTable
$markdown += New-MDNewLine $markdown += New-MDNewLine
# #