13 puan yazan GN⁺ 2024-09-23 | 1 yorum | WhatsApp'ta paylaş
  • C kodunu Android'de çalıştırmak mı istiyorsunuz?
  • Bu çerçeve yaklaşık 2 saniyede APK oluşturabilir; kurulum ve otomatik çalıştırma yapabilir, APK boyutu ise yaklaşık 25kB'dir.
    • API 30(Android R+) üzerinde ARM64 + ARM32 desteği için 45kB'dir.
  • Bu çerçevenin demoları şunları içerir:
    • OpenGL ES destekli pencere oluşturma
    • İvmeölçer/jiroskop girdisi, çoklu dokunma
    • Metin girişi için Android klavyesi
    • Varlık dosyalarını APK içinde saklama ve AAssetManager ile okuma
    • Ses kullanımı gibi izin desteği
    • USB cihazlarına doğrudan erişim
  • Sorumluluk reddi: Bu kodu kullanmak tamamen kullanıcının sorumluluğundadır. Ticari uygulama geliştirmede sorunlar olabilir.

Neden?

  • Bazen işleri standart yöntemlere uymayan şekillerde yapmak istersiniz
    • İnternetteki tüm tartışmalar standart süreci kullanmaya odaklanır
    • Bu süreçler değişir; belirli işleri yapmak ve güncel kalmak zorlaşır
    • Makefile kullanırsanız hangi komutların çalıştığını tam olarak görebilir, özel kurallar ekleyebilir ve derlemeyi ince ayarlayabilirsiniz
  • C evrensel bir dildir
    • Rawdraw, ESP8266'dan RaspberryPi'ye, Windows, Linux ve hatta Android'e kadar her şeyde çalışır
    • Kodu bir kez yazın, her yerde kullanın
  • Derleme sürecini gereksiz katmanlarla doldurmazsanız sadece önemli kısımlar kalır
    • Bu da geliştirme, dağıtım vb. işleri kolaylaştırır
    • Her şey çok daha az zaman alır
  • Bu, internetteki teknoloji karşıtı tiplere bir cevap verme meselesi de biraz
    • Stack Overflow sorularına "bu imkansız" veya "bunu yanlış yapıyorsun" diye yazan kişiler
    • JNI'den izin istemenin "Java'da yapılması gerektiği" gibi saçmalıklar
    • Neyin mümkün neyin imkansız olduğuna dair fikirlere hiç ilgim yok
    • Bu bilgisayar bilimidir. Sınır yok. İstediğinizi yapabilirsiniz. Hepsi sadece bitten ibaret. Beni sahiplenemezsiniz

1 yorum

 
GN⁺ 2024-09-23
Hacker News yorumları
  • "İstediğim her şeyi yapabilirim. Sonuçta hepsi bitten ibaret. Bana sahip değilsin." Buna katılıyorum

  • Android geliştirmede Java ve Kotlin ekosistemi rahatsız edici. Java kullanması zor bir dil, Kotlin daha az kötü ama build araçları, paket yönetimi ve IDE kullanımı zahmetli. Yazara teşekkürler

  • Android Studio kurulumunun gerekli olduğu anlaşılıyor. Sadece Android SDK'yı indirmenin bir yolu olup olmadığını merak ediyorum

    • Makefile'a kısaca baktığımda Gradle'dan kaçınılmış gibi görünüyor, ama Java ile yazılmış başka araçlar çağrılıyor
    • Gradle olmadan Flutter uygulaması build etmenin bir yolunu görmek isterim
  • C++/OpenGL ES motorunu çapraz platform olarak geliştirdiğim günleri memnuniyetle hatırladım

  • Bu yöntem, arayüzü OpenGL üzerinden sunan ve Android sistemiyle çok fazla etkileşime girmeyen uygulamalar için kullanışlı

    • NDK, geleneksel Java Android uygulamalarında performansı artırmak için küçük C kodları yazmakta kullanılır
    • Bu hack, tam ekran çalışan OpenGL uygulamalarını saf C ile yazmayı mümkün kılıyor
    • Klavye, ADC girişi, USB gibi şeylere sınırlı erişim sağlıyor
    • Android framework'ünü C ile yeniden uygulamıyor; NDK, NDK kodunun framework ile etkileşime girebilmesi için sınırlı erişim sunuyor
    • Başlıca kullanım senaryosu, chroma extraction tabanlı gerçek zamanlı ses tepkili görselleştirmeyi destekleyen bir program
  • XCode ya da Android Studio kullandığım her seferde, web geliştiricilerinin Vite sayesinde ne kadar şanslı olduğunu hatırlıyorum

    • Her şey düzgün çalışıyor. Basit bir eklenti sistemiyle her şeyi entegre edebiliyorsun
    • İhtiyaç duyulan eklenti olmadığında, kolayca özel bir eklenti yazabilmiştim
    • Vite bozulursa tamamen mahvoluyorsun. Ya başka bir yol bulman ya da bir yama çıkmasını beklemen gerekiyor. Vite'ın içini kendi başına düzeltmek neredeyse imkansız
  • Elon gibi bol parası olan birinin Linux'u mobilde çalışır hale getirmesi lazım. Bunun için süren çabalar var ama ilerleme yavaş. Bu ikili tekelin kırılması ve bu tür işlerin çok daha kolay hale gelmesi gerekir

  • Bu sisteme Lua gömülüp yüksek seviyeli mantık onunla yazılırsa, erişilebilirlik desteğine çok ihtiyaç duymayan oyunlar ya da medya oynatıcılar gibi şeyler için faydalı olabilir

    • Performansın önemli olduğu kısımlarda C kütüphanelerini kolayca bağlayabilir ya da doğrudan C kodu yazabilirsin
    • (Sonra da çekirdeği kademeli olarak Zig ile yeniden yazarsın)
  • Java/Kotlin araçları mobil geliştirme için berbat. Başka pek çok harika dil ve araç varken bunun neden hâlâ sürdürüldüğünü anlamıyorum. Google'ın Android geliştirme için Go'yu yerel bir alternatif olarak neden sunmadığını anlayamıyorum

  • Hâlâ Make kullanan insanlara şaşırıyorum. Sanki son 20 yılda başka dillerin geliştirildiğinden haberleri yok gibi