O’ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI SAMARQAND FILIALI “Telekommunikatsiya texnologiyalari va kasb ta‘limi” fakulteti “Raqamli va ta’lim texnologiyalari” kafedrasi “MOBIL ILOVALARINI ISHLAB CHIQISH” fanidan Mavzu: Android uchun Java dasturlash tilida ilovalar yaratish. Bajardi: Abdurayimov Shahzod KIS20-04-guruh talabasi Qabul qildi: Jiyanov O.P. SAMARQAND–2024 Mavzu: Android uchun Java dasturlash tilida ilovalar yaratish. REJA: 1. Java dasturlash tili haqida umumiy tushunchalar 2. Android uchun Java dasturlash tilida ilovalar yaratish Kalit so’zlar: Java, OOP,JVM, Java SE (Java Standart Edition), (Multithread WORA — Write Once, Run Anywhere, AVD Manager. Java dasturlash tili haqida umumiy tushunchalar Java dasturlash tili yuqori darajali, zamonaviy va kuchli dasturlash tillaridan biridir. Java dasturlash tili 1990-yili dezaynlashtirilgan va u payti Sun Microsystems kompaniyasiga tegishli bo’lgan. Xozir esa Oracle kompaniyasiga tegishli. 1995-yili James Gosling tomonidan Sun Microsystems kompaniyasining kompanenti bo’lib realizatsiya bo’lib ishlab chiqilgan (Java 1.0 [J2SE]). Sun Microsystems Java dasturlash tilining keying versiyasini boshqacha nomladi, Java 2.0 versiyasi Java SE, Java EE va Java ME nomlari berildi. Bu narsalar unga quyidagi eng zo’r imkoniyatlardan birini berdi : WORA – Write Once, Run Anywhere. Ya’ni bir marta yoziladi, xohlagan joyda ishga tushiriladi. Java quyidagi imkoniyatlari bilan boshqa tillardan ajralib turadi : Obyektga yo’naltirilganligi, Java dasturlash tilida hamma narsa obyekt Platformaliligi – Java dasturlash tili C va C++ dasturlash tillariga ko’p jihatdan o’xshash, lekin Java C va C++ ning xatoliklari va hokazolardan xoli qilingan. Java dasturlash tilida dasturni boshda bayt kodga o’giriladi (byte code), keyin qaysi platformada, ya’ni qaysi operatsion sistemaga qarab shu platforma uchun mashina kodiga o’giriladi va ishga tushiriladi. Bayt kod JVM ya’ni Java Virtual Mashinasi orqali ishga tushiriladi. Bu JVM dasturi xozirda hamma kompyuterlarda o’rnatilgan bo’ladi. Oddiyligi: Java dasturlash tili o’rganish uchun va ishlash uchun juda soda qilingan. Shuning uchun boshlovchi dasturchilarga aynan shu til taklif qilinadi. Agar siz OOP haqida bilimlarga egamisiz, demak siz tez kunda Java dasturlash tili bo’yicha master bo’laolasiz. Chunki OOP [ (object oriented programming) {obyektga yo’naltirilgan dasturlash tili} ] Java dasturlash tilining ildizi desak ham bo’ladi. Kuchli himoyaga ega ekanligi: Java kodlarini ishga tushiruvchi dasturlar kodlarni xavfsiz qilib keyin bizga ishlatish uchun xizmat qiladi. Dinamikligi: Java dasturlash tili o’zi C va C++ lardan kuchlidir. To’g’ri har bir dasturlash tilining o’z yo’nalishi bor. Shunday bo’lsada xozirda Java dasturlash tili birinchilikni qo’lda saqlab kelyabti. Buning yana bitta sababi til dinamikligi. Bu degani Java dasturlash tilining o’zi hisob kitob jarayonida xotirani tejab beradi. Eng kamida kompyuter tezkor xotirasi : 128Mb yoki undan baland; Eng kamida : 200 Megagers (MHZ) bo’lishi kerak (Pentium); Quyidagi operatsion sistemalardan biri : Linux 7.1 yoki Windows 95/98/2000/XP va undan yangilari; Java JDK 5 – Oracle.com saytidan yuklash mumkin (Tekin); Oddiy bir matn protsessori, misol uchun Notepad/Akelpad; Java obyektga yoʻnaltirilgan dasturlash (OOP — Object Oriented Programming) tili va u C++ ga ancha oʻxshash. Eng koʻp yoʻl qoʻyildigan xatolarga sabab boʻluvchi qismalari olib tashlanib, Java dasturlash tili ancha soddalashtirildi. Java kod yozilgan fayllar (*.java bilan nihoyalanuvchi) kompilatsiyadan keyin bayt kod (bytecode) ga oʻtadi va bu bayt kod Java Virtual Mashinasi JVM tomonidan oʻqib yurgizdiriladi. Java afzalliklari: WORA — Write Once, Run Anywhere (portable). Platforma tanlamaydi; havfsizlik (ishonch yoʻq kodni havfsiz ishga tushirish); hotirani havfsiz boshqarish (avtomat ravishda musorlarni yigʻadi); tarmoq uchun dasturlar yozish ; koʻp oqimli (Multi-thread) dasturlash; dinamik & kengaytirish; Class lar alohida fayllarda saqlanadi. Kerak boʻlsa ishlatiladi. Dinamik ravishda imkoniyatini oshirish xam mumkin kerak boʻlsa. Java texnologiyalari Java SE (Java Standart Edition) — serverda, shaxsiy kompyuterda desktoplarda ishlovchi dasturlar, appletlar yaratish uchun ishlatiladi. Bu texnologiya yordamida yaratilgan dasturlar deyarli barcha operatsion tizimlarda ishlay oladi(Windows NT, Macintosh,Linux va Solaris). Shu bilan birga JavaSE boshqa Java turlarining asosi hisoblanadi Android tizimida foydalanuvchi interfeysini yaratish Kerakli dasturlar va yordam dasturlarini o'rnatish JDK - Java ishlab chiqish to'plami; Android SDK va AVD Manager - ishlab chiqish + emulyatori uchun yordamchi dasturlar to'plami; Android ishlab chiqarishni qo'llab-quvvatlovchi IDE: Eclipse + ADT plaginlari; IntelliJ IDEA Community Edition; Netbeans + nbandroid plaginlari; Kompyuterga dasturlar yuqorida ko'rsatilgan tartibda o'rnatiladi. Ro'yxatdagi barcha IDE-larni o'rnatish shart emas. Faqat bittasini o’rnatish kifoya, bunda o’rnatilgan dastur to’g’ri ishlasa bo’lgani. Hozirgacha Java uchun eng zamonaviy IDE-lardan biri bo'lgan IntelliJ IDEA Community Edition-dan foydalanmoqdaman. Virtual qurilmani ishga tushirish AVD Manager-ni ishga tushirgandan va qo'shimcha paketlarni (turli xil versiyalardagi SDK) o'rnatgandan so'ng, kerakli parametrlarga ega virtual qurilmani yaratishni boshlash mumkin. Interfeysni tushunish qiyin bo'lmasligi kerak. 3.1-rasm. Qurilmalar ro'yxati 3.2-rasm.Loyihani yaratish IDEda loyihani yaratishni o'z ichiga olgan tayyorgarlik tadbirlarini minimallashtirib, ishga kirishish lozim ayniqsa loyiha ta'limga tegishli bo'lsa va ishlab chiqarish uchun qo'llanilmasa. File->New Project: 3.3-rasm. Yangi hujjat yaratish jarayoni. 3.4-rasm. Loyiha tuzilishini F6 tugmachasini bosish orqali loyiha yig'iladi, kompilyatsiya qilinadi va virtual qurilmada ishga tushiriladi. Loyiha tarkibi Quyida loyiha tarkibiga kiruvchi kataloglar keltirilgan ular quyidagilar: • gen • res • src. Gen papkasida loyiha qurilganda avtomatik ravishda hosil bo'ladigan fayllar mavjud. Ularni qo'lda o'zgartirish mumkin emas. Res papkasi rasmlar, matnlar (shu jumladan tarjimalar), standart qiymatlar, maketlar kabi resurslarni saqlash uchun mo'ljallangan. src - bu ishning asosiy qismi bo'lib o'tadigan papka, chunki dasturimizning manba kodi bo'lgan fayllar shu erda saqlanadi. Android tizimida foydalanuvchi interfeysini yaratish MainActivity.java package package nomi kiritilsin (com.example.gallery) import android.app.Activity; import android.os.Bundle; import android.content.Context; import android.content.res.TypedArray; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.BaseAdapter; import android.widget.Gallery; import android.widget.ImageView; import android.widget.Toast; public class MainActivity extends Activity { //---the images to display--Integer[] imageIDs = { R.drawable.pic1, R.drawable.pic2, R.drawable.pic3, R.drawable.pic4, R.drawable.pic5, R.drawable.pic6, R.drawable.pic7 }; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Gallery gallery = (Gallery) findViewById(R.id.gallery1); gallery.setAdapter(new ImageAdapter(this)); gallery.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView parent, View v, int position, long id) { Toast.makeText(getBaseContext(), "pic" + (position + 1) + " selected", Toast.LENGTH_SHORT).show(); //---display the images selected--ImageView imageView = (ImageView) findViewById(R.id.image1); imageView.setImageResource(imageIDs[position]); } }); } public class ImageAdapter extends BaseAdapter { private Context context; private int itemBackground; public ImageAdapter(Context c) context = c; //---setting the style--TypedArray a = obtainStyledAttributes(R.styleable.Gallery1); itemBackground = a.getResourceId( R.styleable.Gallery1_android_galleryItemBackground, 0); a.recycle(); } //---returns the number of images--public int getCount() { return imageIDs.length; } //---returns the ID of an item--public Object getItem(int position) { return position; } //---returns the ID of an item--public long getItemId(int position) { return position; } //---returns an ImageView view--public View getView(int position, View convertView, ViewGroup parent) { ImageView imageView = new ImageView(context); imageView.setImageResource(imageIDs[position]); imageView.setScaleType(ImageView.ScaleType.FIT_XY); imageView.setLayoutParams(new Gallery.LayoutParams(150, 120)); imageView.setBackgroundResource(itemBackground); return imageView; } } } main.xml android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Images of San Francisco" /> android:id="@+id/gallery1" android:layout_width="fill_parent" android:layout_height="wrap_content" /> android:id="@+id/image1" android:layout_width="320px" android:layout_height="250px" android:scaleType="fitXY" /> attrs.xml Ushbu darsda Android Studio Layout Editor-dan layout yaratish uchun qanday foydalanishni o'rganamiz. Android ilovasi uchun foydalanuvchi interfeysi (UI) layouts va widgets ierarxiyasi sifatida qurilgan. Layoutlar - bu ViewGroup obyektlari, ularning bola(child) views-i ekranda qanday joylashishini boshqaruvchi konteynerlar. Vidjetlar(Widgets) - bu View ob'ektlari, tugma va matn kabi foydalanuvchi interfeysi komponentlari. LinearLayout-View elementlarini bitta satr (Agar u Horizontal bo'lsa) yoki bitta ustun (Agar u vertikal bo'lsa) sifatida namoyish etadi. TableLayout-elementlarni jadval shaklida, qatorlar va ustunlar bo'yicha ko'rsatadi. RelativeLayout - har bir element uchun uning pozitsiyasi boshqa elementlarga nisbatan o'rnatiladi. FrameLayout-har bir element uchun tortishish kuchini ko'rsatish kerak. Android ViewGroup va View sinflari uchun XML - ni taqdim etadi, shuning uchun sizning interfeysingizning ko'p qismi XML fayllarida aniqlanadi. Ammo, sizga XML yozishni o'rgatish o'rniga, ushbu va keyingi darslarda sizga Android Studio-ning Layout Editor-dan foydalanib maket(layout) yaratishni ko'rsataman. O'zingizning maket(layout)ingizni yaratish uchun ko'rinishlarni sudrab tashlaganingizda Layout Editor tahrirlovchisi sizga XML kodini o'zi o'zgartiradi. Layout Editor-ni ochish. Quyidagilarni ketma-ket bajaring: 1) Project oynasida app > res > layout > activity_main.xml - ni oching. 2) Layout Editor-ga joy ajratish uchun Project oynasini yashiring. Buning uchun View > Tool Windows > Project -ni tanlang yoki shunchaki Android Studio ekranining chap qismidagi Project tugmasini bosing. Project-ni bosing 3) Design yorlig'ini bosing. 4) Select Design Surface - ni bosing va Blueprint - ni tanlang. Select Design Surface - ni bosing va Blueprint - ni tanlang. 5) Layout Editor-ning asboblar panelidagi Show - ni bosing va Show All Constraints belgilanganligiga ishonch hosil qiling. 6) Autoconnect o'chirilganligiga ishonch hosil qiling. Autoconnect o'chirilgan bo'lsa, quyidagicha bo'ladi: Autoconnect o'chirilgan. Uni yoqib qo'ymang 7) Asboblar panelidagi Default Margins tugmachasini bosing va 16-ni tanlang. Agar kerak bo'lsa, keyinchalik har bir ko'rinish uchun chegaralarni sozlashingiz mumkin. 16-ni yozib Enter-ni bosing 8) Asboblar panelidagi Device for Preview - ni bosing va 5.5, 1440 × 2560, 560 dpi (Pixel XL) - ni tanlang. Agar xohlasangiz boshqa qurilmani tanlang Sizning Layout Editor-ingiz endi quyidagidek ko'rinadi: Pastki chap tomondagi Component Tree paneli ko'rinishlarning ierarxiyasini ko'rsatadi. Bizni holatda, ildiz ko'rinishi ConstraintLayout bo'lib, u faqat bitta TextView ob'ektini o'z ichiga oladi. Component Tree-ni bosing XULOSA Android ilovalarini Java dasturlash tilida yaratishda asosiy jarayonlarni ta'minlaydi. Bu qadam-qadam ko'rsatmalar orqali siz Android ilovalarini Java tilida osonlik bilan yaratish mumkin. Mavzudan olingan xulosalarni aytadigan bo’lsak Java dasturlash tili muhitini hamda mobil ilovani Java orqali qanday taribda ishga tushirish kerakligi tushunib oldim . Mobil ilovalarga ma’lumotlar bazasini yaratish davomida bir qancha dasturiy taminotlarsan foydalanib ushbu dasturlarni ha, o’rganib oldim. Bu usullar, mobil ilovalarda ma'lumotlar bazasi bilan ishlash va bulut xizmatlarini qo'llashning eng mashhur yollari hisoblanadi. Har birining o'zining afzalliklari va qulayliklari mavjud, Foydalanilgan adabiyotlar ro’yxati. 1. Doshanova M.YU. «Programmnыe sredstva dlya mobilnыx ustroystv». Uchebnoe posobie. – TUIT «Aloqachi». 2016. 2. Wei-Meng Lee, Android Application development cookbook – John Wiley and Sons – 2013- 410p. 3. Gloshapov A.L. Goole Android: programmirovanie dlya mobilnыx ustroystv. – SPb. BXV-Peterburg, 2011- 448 c. 4. Anthony Gray, Swift pocket reference, Programming for IOS and OSX, Shroff Publishers and Distr, 2016 Qo‘shimcha adabiyotlar: 5. “Introduction to Android Application Development Fourth edition” Developer’s library by Joseph Annuzzi, Jr. Lauren Darcey Shane Conder, November 2013. 6. “Android Wireless Application Development Volume I: Android Essentials, 3rd Edition”, Published Feb 23, 2012 by Addison-Wesley Professional. 7. “Professional Android Sensor Programming”, Greg Milette, Adam Stroud 2012. Axborot manbalari 8. http://www.fayllar.org/ 9. https://www.bing.com/chat 10. www.tuit.uz 11. https://chatgpt.com/ 12. www.edu.uz 13. http://dl/e-book-free.com http://moodle.tuit.uz/my/