VisualStudio에서 Ant를 사용하여 Native APK를 만듭니다.

※2019/11/13 Gradle판의 기사도 올랐습니다. 자세한 내용은 여기을 참조하십시오.

소개



CEDEC2019의 "현인용 Android/iOS 대응 엔진 개발 리포트"이라는 세션에서 VisualStudio에서도 Gradle을 사용한 Native 앱을 만들 수 있다는 이야기를 들었습니다.
꽤 전부터 제가 하고 싶었던 것이었기 때문에 조속히 시험해 보았습니다.

브레이크 포인트가 멈추지 않는다.



VisualStudio와 Gradle을 사용하여 다양한 네이티브 앱을 만들 수는 있지만 브레이크 포인트가 멈추지 않았습니다.
이것은 VisualStudio의 맛이 상당히 줄어들 것입니다.
그래서 다른 방법을 모색했습니다.

VisualStudio와 Ant



NativeActivity도 시험해 보았습니다만, Android용의 광고등이 Java의 라이브러리의 물건이 많이 C++ 온리로의 개발은 꽤 부적절한 환경이었습니다.
여러 플랫폼에 대응하기 위해 VisualStudio에서 개발할 수있는 것이 내 환경에서 원했기 때문에 VisualStudio의 Ant에서 개발하는 방향으로 안정되었습니다.

개발 환경


  • OS : Windows 10
  • Visual Studio 2017 Professional

  • 프로젝트 준비



    1. Ant 프로젝트 만들기



    "Android"라는 이름으로 프로젝트를 만들고 있습니다.


    2. 공유 라이브러리용 프로젝트 만들기



    "Shared"라는 이름으로 프로젝트를 만들고 있습니다.


    3. 공유 라이브러리를 ant 프로젝트에 연결





    이 단계에서 솔루션을 빌드하고 빌드가 통과하면 설정 완료입니다.

    JNI로 뚫고 동작 확인



    여기에서 자바와 네이티브를 치고 브레이크 포인트가 멈추는지 확인해 보겠습니다.
    두 파일에 다음 코드를 추가합니다.

    Android.java
    public class Android extends Activity
    {
        // 追記
        static {
            System.loadLibrary("SharedProject");
        }
        native void NativeTest(int value);
    
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
    
            /* Create a TextView and set its text to "Hello world" */
            TextView  tv = new TextView(this);
            tv.setText("Hello World!");
            setContentView(tv);
    
            // 追記
            NativeTest(123);
        }
    }
    

    Shared.cpp
    extern "C" {
        // 追記
        JNIEXPORT void JNICALL Java_com_Android_Android_NativeTest(JNIEnv* env, jobject, jint value)
        {
            LOGI("test [%d]", value);
        }
    }
    

    동작 확인



    위를 추기하면 Android 단말과 PC를 연결하여 실행해 봅니다.


    브레이크 포인트를 붙인 곳에서 멈추고, 변수의 내용이 보이고 있는 것을 확인할 수 있었습니다.

    요약



    VisualStudio & Gradle 로 개발을 할 수 있는 것이 이상입니다만, 아무래도 어려운 경우는 VisualStudio & Ant 에서도 갈 수 있을 것 같습니다.
    VisualStudio & Gradle 에서도 브레이크 포인트가 잘 멈추면 다시 기사로 해 주려고 생각합니다.
    VisualStudio에서 Android의 Native 개발하고 있는 문헌이 너무 적기 때문에 좀 더 세상에 늘어나가면 좋겠다고 생각했습니다.

    좋은 웹페이지 즐겨찾기