• Android Studio for Platform (ASfP) 使用教程



    在这里插入图片描述
    归纳的很清楚,下载Repo并下载源码->可以参考我的 Framework入门のPiex 6P源码(下载/编译/刷机)

    启动图标(重启生效)

    [Desktop Entry]
    Encoding=UTF-8
    Name=AndroidStudio                                     
    Comment=AndroidStudio                                  
    Exec=/opt/android-studio-for-platform/bin/studio.sh
    Icon=/opt/android-studio-for-platform/bin/studio.png
    Terminal=false
    StartupNotify=true
    Type=Application
    Categories=Application;Development;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    OR
    /opt/android-studio-for-platform/bin/studio.sh

    修改vmoptions配置
    /opt/android-studio-for-platform/bin/studio64.vmoptions
    网上搜索了下相关配置主要是对 Xmx 的修改

    heap size
    -Xms-Xmx 配置堆内存,也就是 IntelliJ 可以使用的内存。
    
    -Xms 初始堆内存,调大该内存可以让启动速度更快,以省去分配内存的时间
    -Xmx 最大堆内存,如果遇到 OutOfMemoryError 可以调大该数值,最大不要超过系统 1/4.
    GC Algorithm
    -XX:+UseConcMarkSweepGC 参数用来调整 GC 算法。使用该算法利用多个线程在后台进行 GC,以避免应用程序停止。
    
    当分配超过 4GB 的堆内存时,可以尝试使用 -XX:+UseG1GC.
    
    Other
    -ea 选项开启 assertions。如果调试 IntelliJ 或者开发插件时可能用到,对 IntelliJ 性能并没有影响。
    
    -server 虚拟机的解释执行模式。
    
    -XX:SoftRefLRUPolicyMSPerMB=[value] 参数用来控制每 M 空间中 soft reference 保证存活的毫秒数。默认的时间是 1000JetBrains 推荐 50-XX:ReservedCodeCacheSize=510m 设置编译器最大的 code cache,另外一个相关的 JVM 参数是 -XX:InitialCodeCacheSize JetBrains 推荐这里使用 240m. 1
    
    -Dsun.io.useCanonCaches=[boolean] 该参数是否开启文件名及路径缓存,默认 java 会缓存文件名 302JetBrains 建议关闭。
    
    -XX:+OmitStackTraceInFastThrow JetBrains 官方推荐的参数。
    
    -XX:MaxJavaStackTraceDepth=-1 JVM 在实现 java.lang.Throwable.fillInStackTrace() 时把整个调用栈上的所有 Java 栈帧消息记录下来
    
    -XX:+HeapDumpOnOutOfMemoryError 当发生 OutOfMemoryError 时 dump 堆内容。3
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    编写Repo脚本

    #!/usr/bin/env bash
     
    export LOG_ACCOUNT=tmp
    export LOG_FILENAME=repo-sync
    export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'
     
    aosp_branch=android-11.0.0_r9
     
    if [ ! -d ".repo" ]; then
        repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b $aosp_branch
        repo_stat=$?
        if [ $repo_stat -ne 0 ]; then
            echo "init repo faild, please try again"
            exit 0
        fi
    else
        log -o -- "local .repo dir exists"
    fi
     
    try_count=0
    echo "from remote sync aosp"
     
    repo sync
    repo_stat=$?
    while [ $repo_stat -ne 0 ]; do
        log -o -- "sync faild, status: $repo_stat, try again in 5s ..."
        sleep 5
        repo sync
        repo_stat=$?
        ((try_count++))
    done
     
    echo "sync repo over, try_count: $try_count"
    echo "sync over, success"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    下载源代码

    在这里插入图片描述

    lunch 查看版本

    Lunch menu... pick a combo:
         1. aosp_arm-eng
         2. aosp_arm64-eng
         3. aosp_blueline-userdebug
         4. aosp_blueline_car-userdebug
         5. aosp_bonito-userdebug
         6. aosp_bonito_car-userdebug
         7. aosp_bramble-userdebug
         8. aosp_car_arm-userdebug
         9. aosp_car_arm64-userdebug
         10. aosp_car_x86-userdebug
         11. aosp_car_x86_64-userdebug
         12. aosp_cf_arm64_auto-userdebug
         13. aosp_cf_arm64_phone-userdebug
         14. aosp_cf_x86_64_phone-userdebug
         15. aosp_cf_x86_auto-userdebug
         16. aosp_cf_x86_phone-userdebug
         17. aosp_cf_x86_tv-userdebug
         18. aosp_coral-userdebug
         19. aosp_coral_car-userdebug
         20. aosp_crosshatch-userdebug
         21. aosp_crosshatch_car-userdebug
         22. aosp_flame-userdebug
         23. aosp_flame_car-userdebug
         24. aosp_redfin-userdebug
         25. aosp_sargo-userdebug
         26. aosp_sunfish-userdebug
         27. aosp_taimen-userdebug
         28. aosp_trout_arm64-userdebug
         29. aosp_trout_x86-userdebug
         30. aosp_walleye-userdebug
         31. aosp_walleye_test-userdebug
         32. aosp_x86-eng
         33. aosp_x86_64-eng
         34. arm_krait-eng
         35. arm_v7_v8-eng
         36. armv8-eng
         37. armv8_kryo385-eng
         38. beagle_x15-userdebug
         39. beagle_x15_auto-userdebug
         40. car_x86_64-userdebug
         41. db845c-userdebug
         42. fuchsia_arm64-eng
         43. fuchsia_x86_64-eng
         44. hikey-userdebug
         45. hikey64_only-userdebug
         46. hikey960-userdebug
         47. hikey960_tv-userdebug
         48. hikey_tv-userdebug
         49. pixel3_mainline-userdebug
         50. poplar-eng
         51. poplar-user
         52. poplar-userdebug
         53. qemu_trusty_arm64-userdebug
         54. silvermont-eng
         55. uml-userdebug
         56. yukawa-userdebug
         57. yukawa_sei510-userdebug
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59

    lunch product_name-build_variant
    product_name作为需要构建的产品
    build_variant 作为需要构建的变体

    PS:安卓官网这步给出的 lunch aosp_arm-eng在实际编译完成后是无法正常运行的,这个是很大的,很多人都是在这一步卡住了很久
    真正能在模拟器上运行的是 lunch sdk_phone_x86_64
    在这里插入图片描述
    在这里插入图片描述
    开始编译

    Syncing targets: [frameworks, packages/apps/Settings]
    
    Preparing for sync...
    Updating MAX_ARG_STRLEN to 131072
    
    Generating Soong artifacts...
    /bin/bash -c "source build/envsetup.sh && lunch sdk_phone_x86_64 && echo ANDROID_PRODUCT_OUT=$ANDROID_PRODUCT_OUT && refreshmod"
    
    Refreshing modules (building module-info.json). Log at /data/android-11.0.0_r9/out/target/product/generic_x86_64/module-info.json.build.log.
    ============================================
    PLATFORM_VERSION_CODENAME=REL
    PLATFORM_VERSION=11
    TARGET_PRODUCT=sdk_phone_x86_64
    TARGET_BUILD_VARIANT=eng
    TARGET_BUILD_TYPE=release
    TARGET_ARCH=x86_64
    TARGET_ARCH_VARIANT=x86_64
    TARGET_2ND_ARCH=x86
    TARGET_2ND_ARCH_VARIANT=x86_64
    HOST_ARCH=x86_64
    HOST_2ND_ARCH=x86
    HOST_OS=linux
    HOST_OS_EXTRA=Linux-5.15.0-86-generic-x86_64-Ubuntu-20.04.4-LTS
    HOST_CROSS_OS=windows
    HOST_CROSS_ARCH=x86
    HOST_CROSS_2ND_ARCH=x86_64
    HOST_BUILD_TYPE=release
    BUILD_ID=RD1A.200810.020.A1
    OUT_DIR=out
    PRODUCT_SOONG_NAMESPACES=device/generic/goldfish device/generic/goldfish-opengl hardware/google/camera hardware/google/camera/devices/EmulatedCamera device/generic/goldfish device/generic/goldfish-opengl
    ============================================
    ANDROID_PRODUCT_OUT=/data/android-11.0.0_r9/out/target/product/generic_x86_64
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33

    编译成功
    在这里插入图片描述
    IDE占用内存高达8G
    在这里插入图片描述

    虚拟机设置
    在这里插入图片描述
    在这里插入图片描述

    https://developer.android.com/studio/platform?hl=zh-cn
    https://adtxl.com/index.php/archives/85.html
    https://blog.csdn.net/u011897062/article/details/133065217

  • 相关阅读:
    利用Abp过滤器实现业务数据“回收站”功能
    企业工程项目管理系统源码(三控:进度组织、质量安全、预算资金成本、二平台:招采、设计管理)
    深度优先搜索详解
    spring boot+redis 的快速入门
    c#中适配器模式详解
    Python中Mock和Patch的区别
    【日志】@Slf4j 注解记录日志
    java计算机毕业设计物流公司停车位管理源程序+mysql+系统+lw文档+远程调试
    Windows环境下使用python安装PyCrypto模块的方法
    一个 Angular 开发人员对腾讯 Cloud Studio 使用后的体验报告
  • 原文地址:https://blog.csdn.net/qq_20330595/article/details/133764506