13 điểm bởi GN⁺ 2024-09-23 | 1 bình luận | Chia sẻ qua WhatsApp
  • Muốn chạy mã C trên Android?
  • Framework này có thể tạo APK chỉ trong khoảng 2 giây, đồng thời cài đặt và tự động chạy, với kích thước APK khoảng 25kB
    • Trên API 30 (Android R+), kích thước là 45kB để hỗ trợ ARM64 + ARM32.
  • Bản demo của framework này bao gồm:
    • Tạo cửa sổ hỗ trợ OpenGL ES
    • Đầu vào từ gia tốc kế/con quay hồi chuyển, đa chạm
    • Bàn phím Android để nhập phím
    • Lưu tệp asset trong APK và đọc bằng AAssetManager
    • Hỗ trợ quyền, chẳng hạn như dùng âm thanh
    • Truy cập trực tiếp vào thiết bị USB
  • Tuyên bố miễn trừ trách nhiệm: Bạn tự chịu trách nhiệm khi sử dụng đoạn mã này. Có thể sẽ phát sinh vấn đề khi tạo ứng dụng thương mại.

Why?

  • Đôi khi bạn muốn làm những việc không phù hợp với cách làm thông thường
    • Mọi thảo luận trên mạng đều tập trung vào việc dùng quy trình tiêu chuẩn
    • Những quy trình này thay đổi, khiến việc thực hiện một số tác vụ cụ thể và luôn cập nhật trở nên khó khăn
    • Dùng Makefile cho phép bạn thấy chính xác các lệnh được chạy, thêm quy tắc tùy chỉnh và điều chỉnh quá trình build
  • C là một ngôn ngữ phổ quát
    • Rawdraw chạy được trên đủ mọi thứ, từ ESP8266 đến RaspberryPi, Windows, Linux, và cả Android
    • Viết mã một lần rồi dùng ở mọi nơi
  • Khi không nhồi nhét lớp vỏ bọc vào quy trình build, bạn chỉ còn lại những phần quan trọng
    • Điều này giúp việc phát triển, triển khai, v.v. trở nên dễ dàng hơn
    • Mọi thứ đều tốn ít thời gian hơn rất nhiều
  • Đây cũng là một cách đáp trả đám Luddite trên Internet
    • Những người trả lời trên Stack Overflow rằng "điều đó là không thể" hoặc "bạn đang làm sai"
    • Những điều ngớ ngẩn như bảo rằng việc yêu cầu quyền trong JNI thì "phải làm bằng Java"
    • Hoàn toàn không quan tâm đến ý kiến về điều gì là có thể hay không thể
    • Đây là khoa học máy tính. Không có giới hạn. Bạn có thể làm theo cách mình muốn. Tất cả chỉ là bit. Bạn không sở hữu tôi

1 bình luận

 
GN⁺ 2024-09-23
Ý kiến trên Hacker News
  • "Tôi có thể làm bất cứ thứ gì tôi muốn. Suy cho cùng cũng chỉ là các bit. Anh không sở hữu tôi." Đồng cảm

  • Hệ sinh thái Java và Kotlin trong phát triển Android khá bất tiện. Java là ngôn ngữ khó dùng, còn Kotlin thì đỡ tệ hơn nhưng công cụ build, quản lý gói và việc dùng IDE vẫn rườm rà. Cảm ơn tác giả

  • Có vẻ vẫn cần cài Android Studio. Tò mò không biết có cách nào chỉ tải Android SDK hay không

    • Khi liếc qua Makefile, có vẻ như đã tránh được Gradle nhưng vẫn gọi các công cụ khác được viết bằng Java
    • Muốn xem cách build ứng dụng Flutter mà không cần Gradle
  • Có những ký ức rất hài lòng về việc phát triển engine C++/OpenGL ES đa nền tảng

  • Cách này hữu ích cho các ứng dụng cung cấp UI qua OpenGL và không tương tác quá nhiều với hệ thống Android

    • NDK thường được dùng để viết một lượng nhỏ mã C nhằm tăng tốc cho các ứng dụng Android Java truyền thống
    • Mẹo này cho phép viết ứng dụng OpenGL chạy toàn màn hình hoàn toàn bằng C
    • Nó cung cấp quyền truy cập hạn chế tới những thứ như bàn phím, đầu vào ADC và USB
    • Nó không tái triển khai Android framework bằng C, và NDK chỉ cung cấp quyền truy cập hạn chế để mã NDK có thể tương tác với framework
    • Trường hợp sử dụng chính là một chương trình hỗ trợ trực quan hóa phản ứng âm thanh theo thời gian thực dựa trên tách chroma
  • Mỗi lần dùng XCode hay Android Studio lại thấy các lập trình viên web may mắn thế nào nhờ có Vite

    • Mọi thứ đều hoạt động tốt. Có thể tích hợp bất cứ thứ gì bằng một hệ thống plugin đơn giản
    • Khi không có plugin cần thiết, trước đây vẫn có thể dễ dàng tự tạo plugin tùy chỉnh
    • Nếu Vite hỏng thì coi như toang hẳn. Phải tìm cách khác hoặc chờ có bản vá. Gần như không thể tự sửa phần bên trong của Vite
  • Một người nhiều tiền như Elon nên làm cho Linux chạy được trên di động. Đã có những nỗ lực đang diễn ra nhưng tiến triển chậm. Điều đó sẽ phá vỡ thế song quyền và khiến kiểu công việc này dễ hơn rất nhiều

  • Nếu nhúng Lua vào hệ thống này để viết logic cấp cao, nó sẽ hữu ích cho những thứ như game hoặc trình phát đa phương tiện không cần quá nhiều hỗ trợ trợ năng

    • Các phần cần hiệu năng có thể dễ dàng liên kết thư viện C hoặc tự viết mã C trực tiếp
    • (Rồi sau đó dần dần viết lại phần lõi bằng Zig)
  • Bộ công cụ Java/Kotlin là thứ tệ nhất cho phát triển di động. Có quá nhiều ngôn ngữ và công cụ tuyệt vời khác mà vẫn duy trì chúng thì thật khó hiểu. Không thể hiểu vì sao Google lại không cung cấp Go như một lựa chọn native cho phát triển Android

  • Ngạc nhiên là vẫn còn người dùng Make. Có vẻ họ không biết rằng trong 20 năm qua đã có nhiều ngôn ngữ khác ra đời