154 lines
4.6 KiB
PowerShell
154 lines
4.6 KiB
PowerShell
# Integrate to Android Studio SDK
|
|
$ErrorActionPreference = "Stop"
|
|
|
|
$ProjectRoot = $PSScriptRoot
|
|
$AppID = "__UNI__08E0C13"
|
|
$AppName = "GuoYuEdu"
|
|
$PackageName = "uni.app.UNI08E0C13"
|
|
$SDKRoot = "D:\4_Part\HBuilder-Android\HBuilder-Integrate-AS"
|
|
|
|
Write-Host "========================================"
|
|
Write-Host " Integrating to Android Studio SDK"
|
|
Write-Host "========================================"
|
|
Write-Host "AppID: $AppID"
|
|
Write-Host "Package: $PackageName"
|
|
Write-Host ""
|
|
|
|
# Check SDK exists
|
|
if (-Not (Test-Path $SDKRoot)) {
|
|
Write-Host "ERROR: SDK not found at $SDKRoot" -ForegroundColor Red
|
|
exit 1
|
|
}
|
|
|
|
Write-Host "OK: SDK found" -ForegroundColor Green
|
|
Write-Host ""
|
|
|
|
# Step 1: Copy Web resources
|
|
Write-Host "[1/5] Copying Web resources..." -ForegroundColor Yellow
|
|
$WebSource = "$ProjectRoot\unpackage\dist\build\app-plus"
|
|
$WebDest = "$SDKRoot\simpleDemo\src\main\assets\apps\$AppID\www"
|
|
|
|
if (-Not (Test-Path $WebSource)) {
|
|
Write-Host "ERROR: Build output not found. Run 'npm run build:app' first!" -ForegroundColor Red
|
|
exit 1
|
|
}
|
|
|
|
New-Item -ItemType Directory -Path $WebDest -Force | Out-Null
|
|
Copy-Item -Path "$WebSource\*" -Destination $WebDest -Recurse -Force
|
|
Write-Host " OK: Web resources copied" -ForegroundColor Green
|
|
Write-Host ""
|
|
|
|
# Step 2: Copy Vosk AAR library
|
|
Write-Host "[2/5] Copying Vosk library..." -ForegroundColor Yellow
|
|
$VoskSource = "$ProjectRoot\src\uni_modules\xwq-speech-to-text\utssdk\app-android\libs\vosk-android-0.3.47.aar"
|
|
$LibsDest = "$SDKRoot\simpleDemo\libs"
|
|
|
|
if (Test-Path $VoskSource) {
|
|
New-Item -ItemType Directory -Path $LibsDest -Force | Out-Null
|
|
Copy-Item -Path $VoskSource -Destination $LibsDest -Force
|
|
$size = (Get-Item "$LibsDest\vosk-android-0.3.47.aar").Length / 1MB
|
|
Write-Host " OK: Vosk AAR copied ($([math]::Round($size, 2)) MB)" -ForegroundColor Green
|
|
} else {
|
|
Write-Host " WARNING: Vosk AAR not found" -ForegroundColor Yellow
|
|
}
|
|
Write-Host ""
|
|
|
|
# Step 3: Update dcloud_control.xml
|
|
Write-Host "[3/5] Updating app config..." -ForegroundColor Yellow
|
|
$ControlXml = "$SDKRoot\simpleDemo\src\main\assets\data\dcloud_control.xml"
|
|
$XmlContent = @"
|
|
<?xml version="1.0" encoding="utf-8"?>
|
|
<hbuilder>
|
|
<apps>
|
|
<app appid="$AppID" appver="1.0.0"/>
|
|
</apps>
|
|
</hbuilder>
|
|
"@
|
|
|
|
New-Item -ItemType Directory -Path (Split-Path $ControlXml) -Force | Out-Null
|
|
$XmlContent | Out-File -FilePath $ControlXml -Encoding UTF8 -Force
|
|
Write-Host " OK: dcloud_control.xml updated" -ForegroundColor Green
|
|
Write-Host ""
|
|
|
|
# Step 4: Generate build.gradle config
|
|
Write-Host "[4/5] Generating Gradle config..." -ForegroundColor Yellow
|
|
$GradleConfig = @"
|
|
// Add to simpleDemo/build.gradle
|
|
|
|
android {
|
|
defaultConfig {
|
|
applicationId "$PackageName"
|
|
minSdkVersion 21
|
|
targetSdkVersion 33
|
|
versionCode 100
|
|
versionName "1.0.0"
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
// Vosk library
|
|
implementation files('libs/vosk-android-0.3.47.aar')
|
|
implementation 'net.java.dev.jna:jna:5.12.1'
|
|
}
|
|
|
|
repositories {
|
|
maven { url 'https://maven.aliyun.com/repository/public' }
|
|
maven { url 'https://maven.aliyun.com/repository/google' }
|
|
maven { url 'https://repo1.maven.org/maven2/' }
|
|
google()
|
|
mavenCentral()
|
|
}
|
|
"@
|
|
|
|
$GradleConfig | Out-File -FilePath "$ProjectRoot\gradle-config.txt" -Encoding UTF8
|
|
Write-Host " OK: Gradle config saved to gradle-config.txt" -ForegroundColor Green
|
|
Write-Host ""
|
|
|
|
# Step 5: Generate guide
|
|
Write-Host "[5/5] Generating guide..." -ForegroundColor Yellow
|
|
$Guide = @"
|
|
========================================
|
|
Android Studio Build Guide
|
|
========================================
|
|
|
|
SDK Path: $SDKRoot
|
|
AppID: $AppID
|
|
Package: $PackageName
|
|
|
|
========================================
|
|
Next Steps:
|
|
========================================
|
|
|
|
1. Open Android Studio
|
|
File -> Open -> Select: $SDKRoot
|
|
|
|
2. Wait for Gradle sync
|
|
|
|
3. Edit simpleDemo/build.gradle
|
|
Copy content from: gradle-config.txt
|
|
|
|
4. Click 'Sync Now'
|
|
|
|
5. Build APK
|
|
Build -> Build Bundle(s) / APK(s) -> Build APK(s)
|
|
|
|
6. APK output:
|
|
$SDKRoot\simpleDemo\build\outputs\apk\debug\simpleDemo-debug.apk
|
|
|
|
========================================
|
|
"@
|
|
|
|
$Guide | Out-File -FilePath "$ProjectRoot\android-studio-guide.txt" -Encoding UTF8
|
|
Write-Host " OK: Guide saved to android-studio-guide.txt" -ForegroundColor Green
|
|
Write-Host ""
|
|
|
|
Write-Host "========================================"
|
|
Write-Host " Integration Complete!"
|
|
Write-Host "========================================"
|
|
Write-Host ""
|
|
Write-Host "Next:" -ForegroundColor Cyan
|
|
Write-Host " 1. Open Android Studio" -ForegroundColor Yellow
|
|
Write-Host " 2. Open: $SDKRoot" -ForegroundColor Gray
|
|
Write-Host " 3. Read: android-studio-guide.txt" -ForegroundColor Gray
|
|
Write-Host ""
|