ADX2 도구로 obb 만들기

입문


Oculus 응용 프로그램에서 극단적인 apk라면 분할해서 상점으로 보내야 합니다
ADX2 데이터는 Unity의 표준 obb(APK 확장 파일)에서 스트림 재생성을 할 수 없습니다.
Android Studio의 jobb 도구로 요약해야 합니다.
이obb를 만들고,Oculus의 실제 컴퓨터를 푸시하는 것은 귀찮기 때문에, 스크립트를 한 번 실행하면 완성할 수 있는 것을 만들어 보았습니다.

이 문장의 대상

  • ADX2에서 잡비로 obb를 만들고 싶은 사람
  • ADX2 스크립트에서 외부 프로세스를 호출하려는 사람
  • 환경


    Craft 3.45.00

    jobb


    jobb는 다음과 같습니다.
    이걸로 하면 되는데 틀린 것 같아요.
    의fat32.

    adb


    adb도 Android Studio에 있습니다.
    Android studio
    JDK
    등 설치
    adb,jobb의 경로 등 환경 변수의 설정 등이 필요할 수 있습니다.

    스크립트


    subprocess에서 두 개를 실행합니다.
    실패할 때 처리가 많지 않으니 고장이 났을 때 수동으로 중단하십시오.
    경로와 장치 ID 등을 적절히 덮어쓰십시오.
    MDS_MakeObb.py
    # --Description:[tatmos][Build]adx2フォルダをObbファイルにまとめる
    import sys
    import os
    import cri.atomcraft.debug as acdebug
    import subprocess
    import cri.atomcraft.view as acview
    
    # まとめるフォルダ
    srcPath = "C:/MyDearest/github/MDSoundPreview/Assets/StreamingAssets/adx2/"
    # 出力フォルダ
    outPath = "C:/MyDearest/"
    # 出力するObbファイル名
    outputFileName = "ADX2.obb"
    # アプリのビルドバージョン
    appBuildVersion = 1
    # アプリのPackageName
    appPackageName = "com.MyDearest.MDSoundPreview"
    
    # 転送先のデバイスID : adb devicesなどで調べる
    deviceId = "XXXXXXXXXXXXXX"
    
    if not os.path.exists(srcPath):
        acdebug.log("srcPath がありません。")
        sys.exit()
    
    # jobb
    cmd1 = "jobb.bat"
    cmd2 = "-d \"{0}\"".format(srcPath);
    cmd3 = "-o \"{0}\"".format(outPath + outputFileName);
    cmd4 = "-pn \"{0}\"".format(appPackageName);
    cmd5 = "-pv {0}".format(appBuildVersion);
    
    acdebug.log([cmd1 + " " + cmd2 + " " + cmd3 + " " + cmd4 + " " + cmd5])
    message = subprocess.check_output(cmd1 + " " + cmd2 + " " + cmd3 + " " + cmd4 + " " + cmd5)
    acdebug.log(message.decode().strip())
    
    message = "続いて転送します"
    button_name_list = ["続ける", "キャンセル"]
    result = acview.show_dialog(message, button_name_list)
    if result [ "data" ][ "button_name" ] == "キャンセル" or result [ "data" ][ "button_index" ] == "-1":
        sys.exit()
    
    # push
    cmd1 = "adb"
    cmd2 = "-s {0}".format(deviceId);
    cmd3 = "push {0}".format(outPath + outputFileName);
    cmd4 = "/storage/emulated/0/Android/obb/{0}/{1}".format(appPackageName,outputFileName);
    
    acdebug.log([cmd1 + " " + cmd2 + " " + cmd3 + " " + cmd4])
    message = subprocess.check_output(cmd1 + " " + cmd2 + " " + cmd3 + " " + cmd4)
    message2 = message.decode().strip().split("\r\n")
    for m in message2:
        if not str(m).startswith("["):
            acdebug.log(m)
    

    로그 숨기기



    check_output에서 되돌아오는 메시지에는 진전된 정보가 포함되어 있습니다
    출력을 기록하면 ADX2가 무거워지므로 분할과 동시에 필요하지 않은 진전을 표시하지 마십시오.
    check_output
    message2 = message.decode().strip().split("\r\n")
    for m in message2:
        if not str(m).startswith("["):
            acdebug.log(m)
    

    끝내다


    adb 명령도 가능, 조금만 적용하면
    음성 데이터 교체, 전송, 실행, 실제 기기에서 확인
    나는 가능한 한 힘들지 않은 환경을 만들 수 있을 것이라고 생각한다.

    좋은 웹페이지 즐겨찾기