使用Android Studio进行C/C++的开发

前言

作为一名专业Android开发者, 当我们遇到需要C/C++的开发时, 完全可以直接使用Android Studio, 而不用另外下载诸如CLion AppCode等收费IDE

使用Android Studio的好处有:

  • 免费: JetBrains的软件大部分都是收费的 唯独Android Studio 完全免费使用
  • Gradle天然支持C语言的编译: Gradle不仅可以编译Groovy JavaKotlin, 还可以编译C/C++ScalaSwift, 未来还会支持更多语言, 潜力无限
  • 节省电脑资源: 无需装多个IDE, 一个Android Studio就可以搞定Android WebC的开发 你说爽不爽

说了这么多好处, 接来了咱们来聊聊如何实现Android StudioC/C++开发

实现步骤

  1. 创建一个空工程, 默认选择AndroidActivity工程即可, 然后将一些用不上的文件都清除, 最后目录结构如下:

    1
    2
    3
    4
    5
    6
    .
    |-- build.gradle
    `-- src
    `-- main
    `-- c
    `-- hello.c

    如果是C++开发, 那么目录名改成cpp, 其结构如下:

    1
    2
    3
    4
    5
    6
    .
    |-- build.gradle
    `-- src
    `-- main
    `-- cpp
    `-- hello.cpp
  2. App目录下的build.gradle中的内容全部清除 然后填入以下内容:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    apply plugin: 'c'

    model {
    components {
    main(NativeExecutableSpec) {
    }
    }
    }

    dependencies {

    }

    同样的 如果是C++, 则将plugin改成cpp, 如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    apply plugin: 'cpp'

    model {
    components {
    main(NativeExecutableSpec) {
    }
    }
    }

    dependencies {

    }
  3. gradle同步之后, 右侧gradle task面板中会生成三个task:

    image-20220916122044974

  4. 此时我们尝试编写C代码

    1
    2
    3
    4
    5
    6
    #include <stdio.h>

    int main(int argc, char** argv){
    printf("Hello World!\n");
    return 0;
    }
  5. 编写完后 运行gradle task中的build, 就会自动对源码进行编译并生成可执行文件, 该文件我们可以在build目录中找到

    image-20220916122359799

  6. 打开文件 双击运行, 此时控台输出Hello World

    image-20220916122515283

构建执行流程优化

  1. 编译结束后自动执行程序

    修改build.gradle文件内容如下即可:

    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
    apply plugin: 'c'

    model {
    components {
    main(NativeExecutableSpec) {
    println("开始编译...")

    }
    }
    }
    task execProgram(){
    doLast {
    println("开始执行...")
    exec {
    commandLine("./build/exe/main/main")
    }
    }

    }

    build.finalizedBy(execProgram)

    dependencies {

    }

    这样, 点击build任务之后就会自动执行程序了, 如果只想重复执行程序 不进行重新编译, 那么单独执行execProgram任务即可:

    image-20220916181048724

本文为作者原创转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

0%