13P by neo 3달전 | favorite | 댓글 1개
  • C 코드를 Android에서 실행하고 싶은가요?
  • 이 프레임워크는 약 2초 만에 APK를 생성하고 설치 및 자동 실행할 수 있으며, APK 크기는 약 25kB임
    • API 30(Android R+)에서는 ARM64 + ARM32를 지원하기 위해 45kB임.
  • 이 프레임워크의 데모는 다음을 포함함:
    • OpenGL ES 지원 창 만들기
    • 가속도계/자이로 입력, 멀티 터치
    • 키 입력을 위한 Android 키보드
    • APK에 애셋 파일을 저장하고 AAssetManager로 읽기
    • 사운드 사용과 같은 권한 지원
    • USB 장치에 직접 접근
  • 면책 조항: 이 코드는 사용자의 책임 하에 사용해야 함. 상업용 앱 제작에 문제가 있을 수 있음.

Why?

  • 때로는 정상적인 방식에 맞지 않는 일을 하고 싶음
    • 온라인에서의 모든 논의는 정상적인 프로세스를 사용하는 것에 집중함
    • 이러한 프로세스는 변경되어 특정 작업을 수행하고 최신 상태를 유지하기 어려움
    • Makefile을 사용하면 실행되는 명령을 정확히 확인하고 사용자 정의 규칙을 추가하며 빌드를 조정할 수 있음
  • C는 보편적인 언어임
    • Rawdraw는 ESP8266부터 RaspberryPi, Windows, Linux, 심지어 Android까지 모든 것에서 작동함
    • 코드를 한 번 작성하면 어디서나 사용할 수 있음
  • 빌드 프로세스를 콩깍지로 채우지 않으면 중요한 부분만 남게 됨
    • 이는 개발, 배포 등을 용이하게 만들어 줌
    • 모든 것이 훨씬 적은 시간이 소요됨
  • 이는 또한 인터넷 상의 Luddite들에게 한 방 먹이는 것과도 관련이 있음
    • Stack Overflow 질문에 "그것은 불가능하다" 또는 "당신은 잘못하고 있다"라고 게시하는 사람들
    • JNI에서 권한을 요청하는 것은 "Java에서 해야 한다"는 등의 어리석은 것들
    • 무엇이 가능하고 불가능한지에 대한 의견에 전혀 관심이 없음
    • 이것은 컴퓨터 과학임. 제한이 없음. 원하는 대로 할 수 있음. 단지 비트일 뿐임. 당신은 나를 소유하지 않음
Hacker News 의견
  • "내가 원하는 건 뭐든지 할 수 있음. 그냥 비트일 뿐임. 넌 날 소유하지 않음." 공감함

  • Android 개발에서 Java와 Kotlin 생태계가 불편함. Java는 쓰기 힘든 언어이고, Kotlin은 덜 나쁘지만 빌드 도구와 패키지 관리, IDE 사용이 번거로움. 저자에게 감사함

  • Android Studio 설치가 필요해 보임. Android SDK만 다운로드할 수 있는 방법이 있는지 궁금함

    • Makefile을 잠깐 봤을 때 Gradle을 피한 것 같지만, Java로 작성된 다른 도구들을 호출함
    • Gradle 없이 Flutter 앱을 빌드하는 방법을 보고 싶음
  • C++/OpenGL ES 엔진을 크로스 플랫폼으로 개발했던 기억이 만족스러웠음

  • 이 방법은 OpenGL을 통해 UI를 제공하고 Android 시스템과 많이 상호작용하지 않는 애플리케이션에 유용함

    • NDK는 전통적인 Java Android 애플리케이션에서 속도를 높이기 위해 작은 C 코드를 작성하는 데 사용됨
    • 이 해킹은 전체 화면에서 실행되는 OpenGL 앱을 순수 C로 작성할 수 있게 함
    • 키보드, ADC 입력, USB와 같은 것들에 제한된 접근을 제공함
    • Android 프레임워크를 C로 재구현하지 않으며, NDK는 NDK 코드가 프레임워크와 상호작용할 수 있는 제한된 접근을 제공함
    • 주요 사용 사례는 크로마 추출을 기반으로 한 실시간 오디오 반응 시각화를 지원하는 프로그램임
  • XCode나 Android Studio를 사용할 때마다 웹 개발자들이 Vite 덕분에 얼마나 운이 좋은지 상기하게 됨

    • 모든 것이 잘 작동함. 간단한 플러그인 시스템으로 무엇이든 통합할 수 있음
    • 필요한 플러그인이 없을 때는 쉽게 커스텀 플러그인을 만들 수 있었음
    • Vite가 고장 나면 완전히 망함. 다른 방법을 찾거나 패치가 나올 때까지 기다려야 함. Vite 내부를 스스로 고치는 것은 거의 불가능함
  • Elon 같은 자금이 많은 사람이 Linux를 모바일에서 작동하게 해야 함. 진행 중인 노력은 있지만 진전이 느림. 이중 독점을 깨고 이런 작업을 훨씬 쉽게 만들 것임

  • Lua를 이 시스템에 내장해 고수준 로직을 작성하면, 접근성 지원이 많이 필요하지 않은 게임이나 미디어 플레이어 같은 것에 유용할 것임

    • 성능이 중요한 부분은 C 라이브러리를 쉽게 연결하거나 직접 C 코드를 작성할 수 있음
    • (그런 다음 핵심을 점진적으로 Zig로 다시 작성함)
  • Java/Kotlin 도구는 모바일 개발에 최악임. 다른 훌륭한 언어와 도구들이 많은데도 여전히 이를 유지하는 이유를 모르겠음. Google이 Android 개발을 위해 Go를 네이티브 대안으로 제공하지 않은 이유를 이해할 수 없음

  • Make를 아직도 사용하는 사람들에게 놀람. 지난 20년 동안 다른 언어들이 만들어졌다는 것을 모르는 것 같음