Android geliştirmeyle ilgili bazı optimizasyon önerileri

İşte Android programlamaya başlamanın iyi bir yolu:

1. Geliştirmek istediğiniz işleve benzer bir kod bulun;

2. Ayarlayın ve istediğinizi yapmaya çalışın;

3. Geliştirme sırasında karşılaşılan sorunları gözden geçirin

4. Karşılaşılan sorunları çözmek için StackOverflow'u kullanın

Elde etmek istediğiniz her şey için yukarıdaki işlemi tekrarlayın. Bu yöntemi benimsemek sizi motive edebilir çünkü sürekli yineliyorsunuz ve güncelliyorsunuz ve bu süreçte çok şey öğreneceksiniz. Elbette, uygulamayı yayınladığınızda daha derinlemesine şeyler yapmanız gerekir.

Normal olarak derlenebilen bazı kodlardan uygulama haline gelmeye kadar, bu niteliksel bir adımdır. İOS ile karşılaştırıldığında, Android daha barizdir. İOS uygulaması çıktığında aslında sadece bir cihaz arasında atlama oluyor.Bir çok iOS modeline benziyor.Ekran aynı boyutta ve iyi bir donanım desteğine sahip.Modellerin% 95'i aynı sürümü çalıştırıyor. IOS işletim sistemi. Ancak Android uygulamalarında durum böyle değil.

Programımız her şeyi ele alabilmelidir: farklı ekranlar, işlemciler, özel işletim sistemleri, API'ler ve Android işletim sistemli diğer cihazlar dahil.

İşte Android için daha iyi olduğunu düşündüğüm bazı öneriler.

Hedef ekran boyutu ve çözüm

Android'in büyük dünyasında 100'den fazla farklı ekran boyutu var.Ekran uyarlamasını çözmenin elbette birçok yolu var. Android ekranını uyarlamak için aşağıdaki iki şeyi belirlemeniz gerekir:

1. Farklı ekran çözünürlükleri ve boyutlarına uyum sağlamak için iyi bir düzen ve yapıya sahip olun

2. UI görüntüleri, farklı çözünürlükteki cep telefonlarına uyarlanabilir

Bunların hepsi bağımsız görevler, belki süper bir tablet düzeniniz var, ancak düzendeki resimler kötü görünüyor. Sırayla onları tartışacağım.

Farklı ekran boyutları için tasarım düzenleri

1. Kolayca elde etmek için genellikle ScrollView + ListView kullanın

Farklı ekran boyutlarına sahip bir dizi cep telefonumuz olduğunda aralarındaki en büyük fark ekran yüksekliğidir. Bu nedenle, ScrollView ve ListView genellikle iyi görüntülenir, ancak bazen tüm ekranı tamamen kaplamazlar. OpenSignal'da Gösterge Tablosu sekmesi altında her şeyi görebiliriz.Onların kaydırılmasına gerek yoktur.Ancak birçok gelişmiş kontrol için kayan ekran kötü bir şey değildir. Uygulamanızı farklı boyutlardaki cep telefonlarına uyarlayabilirseniz mükemmeldir, aksi takdirde bu iki kontrol, uygulamanızın en farklı ekran boyutlarına uyum sağlamasını sağlamak için en düşük maliyeti kullanmanıza izin verir.

Gösterge tablosu stili kaydırmayı gerektirmez

2. Klasör yapısını kullanın

Android'in res klasör yapısı çok güçlüdür. Geliştiricilerin resimler, metin, düzen dosyaları, boyut özellikleri ve renkler gibi kaynakları değiştirmesine olanak tanır. Aşağıdaki örnek, res klasörünün kullanışlılığını gösterir:

Değerler küçük klasöründe aşağıdaki kod satırlarına sahip bir bools.xml dosyası vardır:

< kaynaklar > < bool adı = "small_screen" > doğru < / bool > < / kaynaklar >

Kodda çağrılabilir:

eğer (getResources (). getBoolean (R.bool.small_screen)) { getSupportActionBar (). hide (); }

Küçük ekranlı cihazlarda boole değerini true olarak ayarlayın ve yerden tasarruf etmek için ActionBar'ı gizleyin. Bu kod, harika ActionBarSherlock uzantı kitaplığının bir parçasıdır ve bunun hakkında daha sonra konuşacağım. Values-sw360dp klasöründe, 360dp ekran genişliğine sahip bir res dosyası saklanır. İlgili kod aşağıdaki gibidir:

< kaynaklar > < bool adı = "small_screen" > yanlış < / bool > < / kaynaklar >

ActionBar, büyük ekranlı cihazlarda görünecek şekilde ayarlanmıştır.

Bools.xml dosyasını değerler-sw400dp klasörüne koymamız gerekmez, çünkü Android işletim sistemi otomatik olarak karşılık gelen yola göre arama yapacaktır. Örneğin, genişliği 600 dp (600/160 = 3,75 inç) olan bir cihaz ve işletim sistemi-sw600dp değerlerinde olacaktır. Bools.xml dosyasını ilgili klasöründe arayın, bulunamazsa, values-sw400dp klasörünü arayın, bulunamazsa, values-sw360dp klasörünü vb. Arayın.

3. 160dp = 1 inç. 320 dp = 2 inç. dp = daldırma.

4. Tüm kaynak türleriyle başa çıkmak için bu dizin yapısı tekniklerini kullanabilirsiniz.

Örneğin, xml düzeni belirli bir boyutla çözülür.Örneğin, layout-sw360dp dizini hedef genişliği 360dp olan modellere uyarlanabilir. Yatay ve dikey ekranları da desteklemeniz gerekiyorsa, aşağıdaki dizinleri kullanabilirsiniz:

layout-sw360dp-land layout-sw360dp-port

Kullanıcılarınızın yarısı Arapça ise bekleyin, ardından düzen dosyasını şu şekilde değiştirin:

layout-sw360dp-land layout-sw360dp-port layout-sw360dp-land-ar layout-sw360dp-port-ar

İlk iki klasörün düzeni tüm dillere uygulanabilir ve son iki -ar, Arapça anlamına gelir.

5. Res kaynak adlandırma kuralları:

XXX // Son ek yok, Nexus One, Droid 2, S2 XXX-sw360dp için varsayılan // Daha büyük telefonlar - Galaxy Nexus, S3, S4 XXX-sw600dp // 7 "tablet XXX-sw720dp // 10" tablet

Kindle cihazları aşağıdaki gibi biraz farklıdır:

XXX-büyük-mdpi // kindle fire 7 "XXX-large-hdpi // kindle fire 7" HD

6. Bu düzeni istemiyorsanız, dimens.xml dosyasını kullanabilirsiniz.

Dikkatlice okursanız, şu anda değerler dizinimde çok sayıda dimens.xml olduğunu göreceksiniz çünkü layout dosyasında değerleri ayarlamayı tercih ediyorum.Her xml layout dosyasında genellikle şunu yapmaktan hoşlanırım:

< Resim görünümü android: layout_centerHorizontal = "true" android: layout_marginTop = "@ dimen / small_margin" android: layout_width = "@ dimen / dashBoardWidth" android: layout_height = "@ dimen / dashBoardHeight" android: id = "@ + id / dashboard" / >

Small_margin değeri dimen.xml dosyasında tanımlanır:

< kaynaklar > < dimen adı = "small_margin" > 4 dp < / dimen > < / kaynaklar >

Bu 4dp değişkeni tüm dimen dosyalarına yazılır. Oluşturulan tüm farklı boyutların tanımlarını içeren bir Excel dosyam var. Bir sorunuz olabilir: Neden Android işletim sisteminin bu ekran uyarlama sorunlarını çözmesine izin vermiyorsunuz? Neden tüm sabit kodlanmış değerleri değiştirmek için bir değerler dizini ve bir düzen dizini kullanmıyorsunuz? Tabii ki mümkün, doğru ayarlarsanız, tüm boyutları elde edersiniz, ancak bazı elemanlar için boyutu elde etmek o kadar kolay değildir.

7. Boş boyutu görüntü boyutundan daha büyük yapın ve görüntü boyutunu düğme boyutundan daha büyük yapın.

Düğmeleri, onay kutularını yakınlaştırırsanız ve kontrolleri değiştirirseniz çirkin olur. 100dip (0.63 ") boyutundaki bir düğme, tablette orijinal genişliğin iki katı 200dip (1.25") olarak görüntülenmesini istemiyor. Bunun nedeni, ekranın daha büyük olması, ancak bu tabletin devler için olduğu anlamına gelmiyor. Bunu, düğme ve resim uzantısı konumuna beyaz boşluk ekleyerek yapabiliriz.

8. Hızlı bir şekilde önizleme yapmak için GraphicalLayout aracını kullanın.

GraphicalLayout, bir WYSIWG XML editörüdür. Ancak, kontrolü sürükleyip bırakmak ve programlamayı atmak yerine doğrudan kod yazmayı seviyorum, ancak bazı öğeleri ekledikten sonra, test etmek için GraphicalLayout'un açılır seçim menüsünde farklı ekran boyutları seçebilirsiniz.

9. Tüm resimleri yakınlaştırmayın.

Mizanpaj dosyalarını farklı ekran boyutlarına uyum sağlamak için kullanma yöntemi savaşın sadece yarısıdır .. Düzendeki kontroller (resimler gibi) da yüksek çözünürlüklü ekranlarda iyi görüntülenmelidir. Daha basit yol, çeşitli çekilebilir kataloglarla eşleştirmek için eksiksiz bir resim katalog seti oluşturmaktır.

çekilebilir-sw600dp-ldpi

çekilebilir sw600dp-mdpi

çekilebilir-sw600dp-hdpi

çekilebilir-sw600dp-xhdpi

çekilebilir-sw600dp-xxhdpi vb ...

Ancak bunu yapmak gerekli değildir, genel olarak, drawble-ldpi, drawable-hdpi ve diğer dizinlere sahip olmak yeterlidir ve hepsini eklemek gerekli değildir.

10. Bit eşlemler (jpg, png) kullanmaktan kaçının.

Bazı simgeler için bitmapler, kullanımı basit oldukları için iyi bir seçimdir. Ancak bitmap'leri kullanmaktan kaçınabilirseniz, çok fazla alan kazanabilir ve iyi sonuçlar elde etmek için farklı yöntemler kullanabilirsiniz.

11. Çizim için XML kullanın.

Bitmapler XML çizimi ile değiştirilebilir. XML çizimi her şeye kadir olmasa da, rahatlığı beni hala şok ediyor. Android geliştirme belgelerinde ayrıntılı bir giriş var. İşte basit bir örnek:

< şekil xmlns: android = " android: şekil = "dikdörtgen" > < köşeler android: bottomRightRadius = "14dp" android: bottomLeftRadius = "14dp" android: topLeftRadius = "14dp" android: topRightRadius = "14dp" / > < gradyan android: startColor = "@ color / off_white" android: endColor = "@ color / pale_yellow" android: angle = "270" android: type = "doğrusal" / > < inme android: width = "4dp" android: color = "@ color / osm_darkerblue" / > < / şekil >

Yukarıdaki kod, yuvarlatılmış köşeleri olan bir dikdörtgeni ve degradeli bir kenarı (koyu mavi) tanımlar. Düzen dosyasında ona alıntı yapabilirsiniz ve herhangi bir ekrana uyum sağlar. İdeal bir düğme arka planı yapmak için kullanın.

12. Daha fazla XML çizimi kullanın.

İşte sizi daha heyecanlı kılmak için XML çizimi kullanmanın başka bir örneği: Aşağıdaki radar efekti daha karmaşık görünüyor mu:

Bitmap'lerin kullanılmaması kullanıcı arayüzüne zarar vermez (simge simgeleri hariç).

Babası TVB'nin kurucusudur ve annesi Li Ka-shing'in bir hissedarıdır ve yıllık geliri 40 milyarın üzerindedir.
önceki
Sichuan likör açısından zengindir: Bir zamanlar Moutai ile kıyaslanabilirdi, ama şimdi eskisi kadar iyi değil. Nedeni nedir?
Sonraki
Özel video | Çin'in en yüksek binası olan Şanghay Kulesi'nin 118. katından Şanghay'a bakıyor!
Mütevazı erkek kardeş, BMW 335i modifikasyon örneği seyircinin odak noktası olabilir
BMW 1 Serisi Sedan M Sport Edition resmi haritası açıklandı! Guangzhou Otomobil Fuarı'nda resmi olarak piyasaya sürülecek!
Qichen'in bağımsızlığı yakın, "Büyük Dongfeng Özerkliği" ni yeniden canlandıran bir yayın balığı olabilir mi?
Hong Kong'daki bir başka görünmez zengin adam: Li Ka-shing, bir milyar dolarlık bir malikanede yaşayan ve milyon dolarlık bir spor araba kullanan amcasıdır.
Fransız baba arabası, yeni nesil Berlingo'yu gösteriyor
Yeni Mitsubishi L200 kamyonetinin resmi görüntüsü yayınlandı! Otoriter!
Mercedes-Benz 2016 küresel lüks otomobil şampiyonasında kilitlendi, Çin pazarı ve SUV artmaya karar verdi
Bir yıldan kısa bir süre içinde yüz milyarlarca dolar kaybetti, ancak yıldızları doğum günü partilerini düzenlemeye davet etmek on milyonlara mal oldu.
Liseye gitmeden doğrudan üniversiteye gidebilir miyim? Bu yıl Şangay'da bir okul daha
Koşuşturmadan sonra, Camry'nin "marifet" kalitesinden bahsedelim
Dökümhaneden cep telefonu yapımına, nihayet sanal gerçekliğe dönüştürüldü, eskiden akıllı telefonların lideriydi.
To Top