Facebook JavaScript Motoru (Hermes) Android'de React Native'i Artırıyor

Yayınlanan: 2019-11-18
Facebook, Android gadget'larında React Native uygulamalarının çalışmasını geliştirmek için Hermes adlı harika bir JavaScript motoru yarattı. Android cihazlar için Facebook motoru, hızlı başlatma için iyidir, yakından paketlenmiş bytecode'dan yararlanır ve vaktinden önce optimize eder.

Android cihazlar için yeni JavaScript Facebook aracının tanıtılması, başlatma süresini artırabilir, RAM kullanımını azaltabilir ve daha küçük uygulama boyutuna yol açabilir. Şu anda araç, React Native'de isteğe bağlı bir özelliktir. Facebook tepki Native Android son sürüm ürünlerinin çoğu bu JavaScript aracını kullanmaya başladı.

İçindekiler tablosu gösterisi
  • Android cihazlar için Facebook JavaScript motoru hakkında daha fazla bilgi
  • Yeni Android JavaScript motorunun özellikleri
  • Hermes nasıl alınır
    • Tepki
  • Android cihazlar için Facebook JavaScript motorunun ana mimari kararı
    • 1. Bayt kodu ön derlemesi
    • 2. JIT yok
    • 3. Atık toplama tekniği
  • Çözüm

Android cihazlar için Facebook JavaScript motoru hakkında daha fazla bilgi

AI-yapay-zeka-kodu-komut dosyası-tasarım-geliştirme

Android cihazlar için JavaScript Facebook aracı, büyük Android uygulamalarının işleyişini geliştirmek için oluşturuldu. Telefon uygulamalarının boyutu artmaya devam ediyor ve bu da, Facebook uygulamasını yeterli alana veya mükemmel işleme kapasitesine sahip olmayan araçlara indirdiğinizde olduğu gibi, sorunlara yol açabiliyor. Facebook ve diğer şirketlerin uygulamaları için “hafif” Android sürümleri geliştirmelerinin de ana nedeni budur.

Artık Android uygulama yaratıcılarının JavaScript aracının yardımıyla herhangi bir uygulamanın işleyişini geliştirmesi mümkün. Bu araç, indirme boyutunu küçültür ve başlatma işlevini geliştirir. Facebook güncellemesinin, Android cihazlar için JavaScript Facebook motorunu kullanan uygulamaları için yapmayı amaçladığı şey budur.

Facebook ekibi performans bilgilerini analiz etti ve Android cihazlar için JavaScript Facebook aracının indirmelerin boyutu ve genel başlatma işlevi açısından çok önemli olduğunu öğrendi. Bunu bildiklerinden, JavaScript'in yüksek düzeyde baskı altındaki taşınabilir aygıt ortamlarında normalde nasıl performans gösterdiğini optimize etmeleri gerektiğini hissettiler. Öte yandan, masaüstü ortamı gayet iyi ve android için Facebook masaüstü sürümü mükemmel çalışıyor.

Android cihazlar için JavaScript Facebook aracı, 3 ana özelliğin geliştirilmesine yardımcı olur. Bunlar:

  1. TTI (etkileşim süresi): Bu, uygulamaların tamamen yüklendikleri ana kadar başlatılması için geçen süredir.
  2. İndirmelerin boyutu.
  3. Hafızanın kullanımı.
 Sizin için önerilir: React Native vs Flutter vs PWA: Trend Olan Mobil Uygulama Çerçeveleri Savaşı.

Yeni Android JavaScript motorunun özellikleri

mobil-uygulama-uygulama-pazarlama-geliştirme

  • Bir kişi beklerken JavaScript'i gadget'ta ayrıştırıp bir araya getirmek yerine, çalışma derleme zamanında gerçekleştirilecektir.
  • Önceden zamanında derleme, daha gelişmiş optimizasyonlara izin verir. Benzer etkinlikler bir programda görülebilir ve kopyaları kaldırılabilir. JavaScript kod dizeleri, çalışma zamanı yükü olmadan iyi bir şekilde saklanacak şekilde bir araya getirilecektir.
  • Daha az belleğe sahip cihazlara bir Facebook uygulaması veya başka herhangi bir uygulama yüklemeyi mümkün kılan küçük bir Android APK boyutu.
  • Bayt kodu, bellek tarafından eşlenebilir ve gerektiğinde flash bellekten giderek daha fazla yüklenebilir.
  • Sanal adres alanı, gerektiğinde parçalar halinde atanır. Bu, yığının boyutunu belirleme ihtiyacını ortadan kaldırır ve aynı zamanda ek yükü de en aza indirir.
  • ES6 olarak da adlandırılan ECMAScript2015'i hedefleyen Hermes kullanılarak JavaScript standartlarının uygulanması. React Native uygulamalarında sıklıkla uygulanmayan JavaScript özellikleri kaldırıldı.
Bunun yanı sıra, Samsung cihazları için Facebook uygulaması ayrıca Hermes'in React Native ile entegrasyonu için kaynaklar açar. Bu, Android geliştiricilerinin anında Hermes'i kullanabilecekleri anlamına gelir.

Hermes nasıl alınır

Sonuçları değerlendirmek için kendinize üç soru sorun

Android cihazlar için JavaScript Facebook motoru indirilebilir. Facebook'tan indiremezsiniz, şimdilik GitHub'da mevcut. Nasıl kullanılacağına ilişkin yönergeler React Native sitesinde mevcuttur.

Tepki

React-JavaScript-Library Android cihazlar için JavaScript Facebook motorlarının yalnızca React Native (Facebook tarafından oluşturulan bir uygulama yapısı) ile tasarlanmış Android uygulamalarıyla çalıştığını unutmamak önemlidir. Bu yapının ana satış noktası, kodların çoğu platformda yerel bir şekilde çalışmasıdır.

Ancak React Native'in birkaç dezavantajı vardır, bu yüzden çoğu insan bundan hoşlanmaz. Örneğin: Çevrimiçi oyun uygulamaları ve diğer Android uygulamaları işlevleri, kamera ile sensör arasındaki entegrasyonu yedeklemeleri gerektiğinde olduğu gibi yerel koda ihtiyaç duyar. Ayrıca, Android geliştiricilerinin yapı ile yerel kod arasındaki boşlukları doldurmak için her zaman köprüler tasarlaması gerekir. Airbnb'nin ayrılma kararı almasının nedeni de buydu.

Ancak Android cihazlar için JavaScript Facebook motoru, Facebook'un React Native'e daha fazla hayat vermesi ve daha fazla insanı onu kabul etmeye ikna etmesi için bir araç olabilir.

Android cihazlar için JavaScript Facebook motorunun yalnızca uygulamalara odaklandığını göz önünde bulunduran Facebook, onu sunuculara veya arama motorlarına entegre etmeyi planlamadıklarını açıkladı.

Android cihazlar için JavaScript Facebook motoru, Facebook'tan gelen en yeni açık kaynaklı projedir. Daha güncel Android projeleri şunları içerir:

  • Pythia: Derin öğrenme için bir çerçeve.
  • DLRM: Derin öğrenme için bir model.
  • Spektrum: Resim yükleme işlemini verimli bir şekilde gerçekleştirmeyi amaçlayan bir proje.
 İlginizi çekebilir: Programlamaya Giriş: Düğüm JS, Laravel, React, Ruby, Vue ve Python Hakkında Kısa Bilgi.

Android cihazlar için Facebook JavaScript motorunun ana mimari kararı

Android

Yavaş flaş ve küçük RAM miktarı gibi mobil cihazların sınırlamaları, Facebook'un bazı mimari kararlar almasına neden oldu. Uyguladıkları şeyler aşağıdadır:

1. Bayt kodu ön derlemesi

Facebook JavaScript Motoru Android'de React Native'i Artırıyor - 1. Nokta Android cihazlar için JavaScript Facebook motoru, yüklendikten sonra JavaScript kaynağını otomatik olarak ayrıştırır. Bu bir bayt kodu oluşturacaktır. Bu etkinlik, JavaScript yürütmesinin başlamasını geciktirecek

Bundan kaçınmak için, Facebook uygulaması android cihazlarının JavaScript motoru, uygulama oluşturma sürecinde çalışan önceden derleyiciyi kullandı. Bu, bayt kodu optimizasyonunda daha fazla zaman harcanmasına neden olur. Bu, bayt kodunun küçük ve daha kullanışlı olduğu anlamına gelir.

Tüm programın optimize edilmesi gerçekleşebilir. Bu, işlemin tekilleştirilmesini ve dize tablosunun paketlenmesini içerir.

Bayt kodu, çalışma zamanı sırasında bellekte eşlenecek ve tüm dosyanın üzerinden geçilmesine gerek kalmadan yorumlanacak şekilde oluşturulmuştur. Flash bellek, çoğu orta ve düşük kaliteli mobil aygıtta gecikmeyi artırır. Böylece bu, gerektiğinde flaştan bayt kodu yükler ve bayt kodunun boyut için optimizasyonu, harika TTI geliştirmeleri sağlar.

Ek olarak, bellek yalnızca okunarak eşlendiğinden ve bir dosya tarafından desteklendiğinden, değiş tokuş yapmayan işletim sistemi, bellek baskısı altındaki bu sayfaları yine de kaldırabilir. Bu, daha az belleğe sahip araçlarda yetersiz bellek işlemi ölümlerini en aza indirecektir.

Sıkıştırılmış bir bayt kodu, yine sıkıştırılmış bir JavaScript kodundan biraz daha büyüktür. Bunun nedeni, Android cihazlar için JavaScript Facebook motor kodunun küçük boyutlu olmasıdır. Android cihazlar için JavaScript Facebook motoru, Android uygulamalarının boyutunu düşürür.

2. JIT yok

Facebook JavaScript Motoru Android'de React Native'i Artırıyor - 2. Nokta Yürütmeyi daha hızlı hale getirmek için yaygın olarak kullanılan birçok JavaScript motoru, JIT (tam zamanında) aracını kullanarak yorumlanmış kodları makine kodlarına yetersiz bir şekilde derleyebilir.

Android cihazlar için Facebook uygulaması JavaScript motorunda JIT aracı yoktur, bu da çoğunlukla CPU'ya dayanan kıyaslamalarda iyi performans göstermediğini gösterir. Bu karar küreseldi. Genel olarak kıyaslamalar, uygulamaların iş yükünü temsil etmez.

Facebook, JIT'lerle çeşitli testler bile yaptı ve ana metriklerini kötüleştirmeden yüksek hıza ulaşmanın asla kolay olmayacağına inanıyorlar. JTI'lar, TTI'yi geliştirmeyi zorlaştıran bir uygulama başlatıldığında önce hazırlanmak zorundadır, hatta TTI'ye zarar verebilir. Bunun yanı sıra JIT, yerel kodun boyutuna ve bellek tüketimine katkıda bulunur. Bu, Facebook'un ana ölçümlerini mahveder. Bu nedenle, Facebook Android bunu görmezden gelmeye karar verdi ve bunun yerine Android cihazlar için JavaScript Facebook motoru için en iyi takas olarak yorumlayıcının performansına dikkat etti.

3. Atık toplama tekniği

Facebook JavaScript Motoru Android'de React Native'i Artırıyor - 3. Nokta Android mobil cihazlarda iyi bellek kullanımı çok önemlidir. Düşük kaliteli aygıtların belleği daha azdır, işletim sistemlerinin değiştirilmesi mümkün değildir ve işletim sistemi çok fazla bellek alanı kullanan uygulamaları öldürür. Uygulamaları sonlandırdıktan sonra, yavaş yeniden başlatma gerekir ve arka planın çalışması etkilenir.

İlk Facebook Android testleri sırasında, sanal adres alanının 32 bit gadget'lardaki büyük uygulamalarda sınırlı olabileceği öğrenildi.

Motor tarafından kullanılan belleği ve sanal adres alanını azaltmak için Facebook, aşağıdaki özelliklere sahip bir atık toplayıcı tasarladı.

  • İsteğe bağlı tahsis: Gerektiğinde sanal adres alanı yığınlar halinde atanır.
  • Bitişik olmayan: Kaynak sınırlarını ortadan kaldırmak için sanal adres alanı bir bellek aralığında olmalıdır.
  • Taşıma: Nesneleri taşıma, gereksiz yığınlar bir işletim sistemine geri alınırken belleğin parçalanabileceği anlamına gelir.
 Şunları da beğenebilirsiniz: Angular vs React: 2019'da Hangi Çerçeveyi Seçmeli?

Çözüm

Facebook JavaScript Motoru Android'de React Native'i Artırıyor - sonuç

Android cihazlar için JavaScript Facebook projesi, Facebook ekibinin üzerinde çalıştığı birçok proje arasında yer alıyor. Ekip aynı zamanda bellek ve zaman analiz yöntemleri oluşturmayı dört gözle bekliyor. Bu, Android uzmanlarının uygulamalarını geliştirmelerini kolaylaştıracaktır. Android cihaz motorları için JavaScript Facebook'u test edin ve işlevlerini görün. Deneyimlerinizi bizimle paylaşın ve varsa sorularınızı da bize sorabilirsiniz.

 Bu makale Thomas Miller tarafından yazılmıştır. İnsanları en son teknolojiler hakkında bilgilendirmeyi seven bir Android teknoloji uzmanıdır. Thomas ayrıca Android cihazlar için JavaScript Facebook motoru fikrini seviyor ve onu kullandı ve çalışma şeklini beğendi. Ayrıca autoexpertguides.com'da otomotiv sektörü için en iyi uzman incelemelerini derliyor.