Migliori pratiche per il targeting di una vasta gamma di dispositivi e size dello schermo

Come sapete Android oggi è molte versioni molti costruttori, molte size dello schermo, …

è molto difficile per gli sviluppatori oggi scrivere programmi che mirano ad una gran parte dei dispositivi.

  • Android aggiunge l'elemento al menu contestuale globale
  • Tocca a Beam, l'unico modo per submit NFC (ICS)?
  • Ionic 2: come gestire il button di backup hardware che controlla la conferma di Exit in app
  • Come posso visualizzare una window di dialogo in android senza un context Attività?
  • Mostra la window di dialogo sopra la visualizzazione di pager che ha frammenti nidificati
  • Immagine di upload di Android twitter4j
  • Quali sarebbero gli sviluppatori devono conoscere pratiche per questo?

    • consigli per layout fluidi.
    • "standard" per lo sviluppo su qualsiasi versione di Android.

    Qualche altra idea?

  • L'app pubblicata sul Play Store non può comunicare con API di Google Maps e API di Facebook
  • DialogFragment scompare sulla rotazione nonostante setRetainInstance (true)
  • Valori che scompaiono da ListView in Scroll - Android
  • Nel metodo android app Toolbar.setTitle non ha alcun effetto - il nome dell'applicazione viene mostrato come titolo
  • Macchina fotografica Android AutoFocus on Demand
  • Come creare un Dialogo / Popup completamente personalizzato in Android (cambiare il colore di sovrapposizione e la window di dialogo)
  • 4 Solutions collect form web for “Migliori pratiche per il targeting di una vasta gamma di dispositivi e size dello schermo”

    Per i layout

    In primo luogo, si dovrebbe iniziare leggendo le pratiche ufficiali di supporto di più schermate . Ci sono molti ottimi suggerimenti, oltre a un'idea generale di ciò che è necessario cercare in termini di compatibilità.

    Una cosa che ho trovato molto utile, che sembra abbastanza ovvio, è verificare effettivamente il tuo layout in emulatori di varie size. Come si esegue il layout quando si esegue l'estensione a 1024×768 (anche se nessun dispositivo avrà tale res)? Come su quando è super piccolo e quadrato? Vedendo come il vostro layout si estende / contratti vi aiuterà a modificarlo per adattarsi meglio a tutte le schermate.

    layout_weight

    Nei layout, android:layout_weight è un android:layout_weight potente, ma non documentato. Usandolo, è ansible creare layout in cui i componenti sono dimensionati in percentuali l'uno all'altro.

    Per esempio:

     <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent"> <EditText android:layout_weight="80" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <Button android:layout_weight="20" android:text="Button" android:layout_width="wrap_content" android:layout_height="wrap_content /> </LinearLayout> 

    In questo layout, <EditText/> avrà l'80% della width disponibile, mentre il <Button/> richiederà il 20% della width disponibile. Ovviamente, questo dovrebbe essere utilizzato con caucanvas affinché tutti gli oggetti possano essere ancora utilizzabili anche se sono piccoli.

    <include />

    Un'altra pratica utile di layout è quella di raggruppare i bit comuni del tuo layout in file separati e includerli usando <include layout="@layout/smaller_section" /> . In questo modo, è ansible scorporare altre parti del layout (ad esempio, per il paesaggio), senza wherer mantenere intere versioni parallele del layout.

    Le uniche cose che ho trovato finora:

    1. Sviluppa la versione SDK più bassa ansible. Io target 2.2, ma uso solo API da 1.6 e finora (touch legno) che è stato elaborato bene. Puoi ancora sostenere cose come il backup e spostare l'applicazione sulla scheda SD grazie a queste guidate dal Manifest.
    2. Per le schermate veramente piccole avnetworking probabilmente bisogno di un layout separato. Utilizzando l'emulatore ho scoperto che riducendo semplicemente la dimensione della grafica non rende disponibile il layout: è necessario riorganizzare e rimuovere alcuni elementi.
    3. A volte è necessario disporre di un layout separato per il ritratto rispetto alla modalità orizzontale – ma spesso il ritratto funziona bene nel paesaggio.

    Sarà interessante vedere quali altri hanno da dire – in particolare circa la fornitura di più risorse disegnabili per diverse densità. Non sono stato in grado di isolare il motivo per cui a volte è necessario utilizzare -hdpi e talvolta non get buoni risultati su uno schermo HDCP.

    Tendo a utilizzare un foglio di stile per cellulari che viene incluso solo quando l'applicazione è accessibile da un dispositivo mobile. Questo foglio di stile generalmente applica una min-width (a seconda dei requisiti dell'utente e dispositivo) e riempie il contenuto fino al 100% della width dello schermo.

    Altri suggerimenti:

    • pagina di destinazione specifica per cellulari, occupata interamente da un menu e da una casella di ricerca
    • valutare quale contenuto sia effettivamente importnte per un utente mobile e concentrarsi su questo
    • Nessun termine morto – anche se una ricerca restituisce risultati zero, rendono facile continuare (nuove ricerche, suggerimenti sulle pagine)
    • geolocazione se applicabile (es. a
      mappa google che mostra le posizioni dei negozi
      nelle vicinanze)
    • testare su una varietà di dispositivi se ansible (cioè il browser nativo di blackberry tende
      avere difficoltà con jquery)

    Sono d'accordo con Johnny, uso di un foglio di stile per cellulari. Per esempio:

     <link rel="stylesheet" href="screen.css" media="screen"/> <link rel="stylesheet" href="handheld.css" media="handheld"/> 

    Tuttavia qualunque cosa fai in fondo alla pagina, l'utente può scambiarsi tra i due. Ad esempio molti siti "mobili" includono un collegamento in basso per visualizzare il sito "completo". In questo modo l'utente fa la decisione conscia sulle capacità del proprio dispositivo.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.