Analisis berkaitan kejuruteraan (pelbagai fail, akses sumber)


Pengenalan kepada bahagian ini:

Saya bercakap tentang banyak perkara yang nampaknya tiada kaitan dengan pembangunan Android kami, sudah tentu, anda akan melakukannya ketahuinya kemudian apabila anda melihat ke belakang! Nah, dalam bahagian ini kita akan menggunakan projek Hello World yang dibuat sebelum ini sebagai titik masuk untuk memahami struktur projek. Dan dua cara untuk mengakses sumber dalam Android! IDE yang digunakan dalam tutorial seterusnya ialah Android Studio, kerana Google secara rasmi mengumumkan beberapa hari lalu bahawa ia akan menamatkan sokongan untuk persekitaran pembangunan IDE lain sebelum akhir tahun!


1 Analisis struktur projek kejuruteraan:

Sebahagian besar masa pembangunan kami dibelanjakan pada bahagian berikut:

<. 🎜>

Seterusnya kami akan menerangkan bahagian utama:

  • java: Di mana kita menulis kod Java, fungsi perniagaan Semuanya dilaksanakan di sini

  • res: Tempat untuk menyimpan pelbagai fail sumber kami, termasuk gambar, rentetan, animasi, audio, dll., serta pelbagai bentuk fail XML


Pengenalan folder sumber 1.res:

PS: Bercakap tentang ini

direktori res , sebagai tambahan direktori aset disebut Walaupun ia tidak wujud di sini, kami boleh menciptanya sendiri. Perbezaan antara kedua-duanya ialah sama ada semua fail sumber di bawah yang pertama akan menjana id sumber yang sepadan di bawah fail R.java, manakala yang kedua Tidak. ; dalam yang pertama kita boleh mengakses sumber yang sepadan secara langsung melalui id sumber manakala yang kedua kita perlu membacanya dalam bentuk aliran binari melalui AssetManager! By the way, fail R ini boleh difahami sebagai kamus, dan setiap sumber di bawah res akan menjana ID unik di sini!

Kemudian mari kita bincangkan tentang direktori yang berkaitan di bawah direktori sumber semula:

PS:Direktori mipmap berikut tidak wujud dalam Eclipse. Semuanya boleh dilukis dalam Eclipse. Pada mulanya, sebenarnya tidak banyak perbezaan. Hanya menggunakan mipmap akan memberikan pengoptimuman prestasi tertentu semasa penskalaan imej, sistem akan memilih imej yang sepadan di bawah hdpi, mdpi, xmdpi dan xxhdpi mengikut skrin. resolusi, supaya anda boleh menyahmampat apk imej orang lain, anda boleh melihat gambar dengan nama yang sama dalam direktori di atas, yang tersedia dalam empat folder, tetapi saiz dan pikselnya berbeza! Sudah tentu, ini tidak mutlak Sebagai contoh, jika kita membuang semua gambar di bawah drawable-hdpi, walaupun telefon bimbit Sumber imej di bawah folder ldpi harus dimuatkan, tetapi tiada imej di bawah ldpi, jadi imej di bawah hdpi masih akan dimuatkan! Di samping itu, terdapat satu lagi situasi: sebagai contoh, jika ia adalah hdpi, ia berada dalam direktori mdpi, tetapi tidak dalam ldpi, maka sumber dalam mdpi akan dimuatkan! Prinsipnya ialah menggunakan tahap ketumpatan yang paling hampir Di samping itu, jika anda ingin menghalang Android daripada memuatkan sumber dalam folder yang berbeza mengikut kepadatan skrin, cuma tambah medan android:anyDensity="false" pada fail AndroidManifest.xml! 🎜>1. Mari kita bercakap tentang

Gambar

Sumber:

  • boleh dilukis: menyimpan pelbagai fail bitmap, (.png, .jpg, .9png, .gif, dsb.) Selain itu, ia mungkin XML yang lain fail jenis boleh lukis

  • mipmap-hdpi: Resolusi tinggi, biasanya kami membuang gambar di sini

  • mipmap-mdpi: Resolusi sederhana, jarang sekali melainkan telefon yang serasi sudah sangat lama

  • mipmap-xhdpi: Leraian ultra tinggi, Bahan skrin telefon bimbit semakin baik dan lebih baik, dan dianggarkan ia perlahan-lahan akan beralih kepada ini pada masa hadapan

  • mipmap-xxhdpi: Peleraian super tinggi, ini tersedia pada mesin canggih Mencerminkan

2. Mari kita bincangkan tentang susun atur sumber:

  • susun atur. : dalam direktori ini Apa yang disimpan ialah fail susun atur kami Di samping itu, pada beberapa model tertentu, kami melakukan penyesuaian skrin, seperti telefon bimbit 480*320, kami akan membuat satu lagi set susun atur, hanya folder seperti susun atur-480x320!

3 Mari kita bincangkan tentang sumber menu:

  • menu: wujud sebelum The. butang menu fizikal, iaitu, kunci menu biasa digunakan pada telefon bimbit, tetapi ia tidak banyak digunakan sekarang Sumber xml yang berkaitan dengan item menu boleh ditulis di sini menu~

4 Seterusnya, mari kita bincangkan tentang direktori nilai:

  • demens.xml: Tentukan sumber saiz

  • string.xml: Tentukan sumber rentetan

  • styles.xml: Tentukan sumber gaya

  • colors.xml: Tentukan sumber warna

  • arrays.xml: Tentukan sumber tatasusunan

  • attrs.xml: Digunakan lebih banyak semasa menyesuaikan kawalan , menyesuaikan sifat kawalan!

  • Fail tema tema sangat serupa dengan gaya, tetapi ia akan menjejaskan Actvitiy atau Aktiviti tertentu dalam keseluruhan aplikasi, biasanya menukar rupa tetingkap! Ia boleh digunakan melalui setTheme dalam kod Java, atau menambah atribut tema pada <aplikasi...> PS: Anda mungkin pernah melihat direktori nilai tersebut: values-w820dp, values-v11, dsb. Dalam yang pertama, w mewakili peranti tablet, 820dp mewakili lebar skrin dan v11 bermakna ia akan digunakan selepas API (11 ), iaitu, android 3.0 daripada!

5. Digunakan untuk menyimpan pelbagai sumber asli (audio, video, beberapa fail XML, dll.), kita boleh mendapatkan aliran binari sumber melalui openRawResource(int id)! Malah, ia serupa dengan Aset, tetapi sumber di sini akan menjana ID sumber dalam fail R

6. Akhir sekali, terdapat dua jenis animasi: animasi atribut dan animasi tween:

  • animator: Fail XML yang menyimpan animasi atribut

  • anim: Fail XML yang menyimpan animasi tween


2 Cara menggunakan sumber ini

Nah, setelah anda mengetahui sumber yang ada, mari belajar cara menggunakannya: Seperti yang dinyatakan sebelum ini, semua fail sumber kami akan menghasilkan ID sumber di bawah fail R.java Kami boleh menggunakan ID sumber ini untuk melengkapkan akses sumber Terdapat dua situasi penggunaan: digunakan dalam kod Java dan digunakan dalam kod XML.

Digunakan dalam kod Java:

Teks Java:

txtName.setText(getResources().getText(R.string.name ));

Imej:

imgIcon.setBackgroundDrawableResource(R.drawable.icon);

Warna:

txtName.setTextColor(getResouces().getColor(R.color.red));

Layout:

setContentView(R.layout.main) ;

Kawalan:

txtName = (TextView)findViewById(R.id.txt_name);

dalam kod XML Gunakan:

Anda boleh mendapatkannya melalui @xxx, contohnya, dapatkan teks dan gambar di sini:

<TextView android:text="@string/hello_world" android:layout_width ="wrap_content" android:layout_height="wrap_content" android:background = "@drawable/img_back"/>

Ketahui lebih lanjut tentang tiga fail:

Okay, seterusnya kita akan menganalisis tiga fail yang lebih penting dalam projek: MainActivity.java, fail susun atur: activity_main dan fail konfigurasi Android: AndroidManifest.xmlPS: Kandungan gambar mungkin berbeza sedikit, saya tidak mempunyai masa untuk membuat gambar, saya harap anda boleh faham~

MainActivity.java:

Kodnya adalah seperti berikut

pakej jay.com.example.firstapp;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

kelas awam MainActivity memanjangkan AppCompatActivity {
@Override
void dilindungi onCreate(Bundle savedInstance ) {
super.onCreate(savedInstance State);
setContentView(R.layout.activity_main);
}
}

代码分析:

布局文件:activity_main.xml:

代码如下:

<; idlatif:&Latif: //schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height ="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
                               android id      android :text="@string/hello_world" />

</RelativeLayout>

Analisis kod:

Kami mentakrifkan susun atur linear LinearLayout dan mentakrifkan seni bina yang perlu kami gunakan dalam ruang nama xml, yang datang daripada ①

Fail konfigurasi AndroidManifest.xml:

Kodnya adalah seperti berikut:

<?xml version="1.0" encoding="utf-8"?>
< ;manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="jay.com.example.firstapp" >

<aplikasi
android :allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<aktiviti
                                                    android:name=".MainActivity" action android:name="android .intent.<                                          action android                                                                               /aktiviti>
> ;

</manifest>

Analisis kod:

Selain di atas:

① Jika apl mengandungi komponen lain, sintaks spesifikasi jenis mesti digunakan . isytihar dalam fail ini Pelayan: elemen BroadcastReceiver elemen ContentProvider elemen IntentFilter<intent-filter> elemen

②Pernyataan kebenaran: Istiharkan secara eksplisit kebenaran yang diperlukan oleh program dalam fail ini untuk menghalang apl daripada menggunakan perkhidmatan secara salah dan mengakses secara tidak wajar. sumber, akhirnya meningkatkan keteguhan apl android Ayat android.permission.SEND_SMS menunjukkan bahawa apl memerlukan kebenaran untuk menghantar mesej dan pengguna akan digesa semasa pemasangan. Keizinan yang berkaitan boleh didapati dalam manual rujukan sdk!


Ringkasan bahagian ini:

Dalam bahagian ini kami mempunyai pemahaman terperinci tentang projek Hello World kami, apakah direktori yang berkaitan dan fail sumber di bawah res adalah Yang mana, apakah fungsinya, dan cara menggunakan sumber ini! Pada masa yang sama, tiga dokumen terpenting dalam projek dijelaskan secara terperinci melalui lukisan! Pada ketika ini saya percaya anda sudah mempunyai pemahaman umum tentang projek Android! Terima kasih~