ساختار یک پروژه اندروید چیست؟ (قسمت ۲)
April 8, 2024, 10:35 p.m. by mehrshadina
در قسمت دوم برسی ساختار یک پروژه اندروید بیایید نگاهی بیندازیم به فایل AndroidMainfest.xml و کدهای این قسمت را بیشتر برسی کنیم.  فایل AndroidManifest.xml یک فایل XML است که تنظیمات و اطلاعات اصلی برنامهی شما را در اندروید تعریف میکند. این فایل حیاتی برای اجرای صحیح برنامه است و شامل اطلاعاتی مانند نام برنامه، فعالیتها، سرویسها، اجازهها و سایر تنظیمات است. در زیر توضیحی از هر بخش این فایل ارائه شده است: - XML Declaration (تعریف XML): این بخش شامل تعریف XML است که شامل نسخه XML و رمزگذاری (encoding) است. - <manifest> Element (عنصر manifest): عنصر اصلی فایل AndroidManifest.xml است. این عنصر شامل تمام تنظیمات و اطلاعات اصلی برنامه است. در اینجا از ویژگی xmlns:android برای اشاره به فضای نام Android استفاده شده است. - <application> Element (عنصر application): این عنصر شامل تنظیمات کلی برنامه است. در داخل این عنصر، تمام فعالیتها، سرویسها، و سایر مؤلفههای برنامه تعریف میشوند. - Application Attributes (ویژگیهای application): ویژگیهای مربوط به برنامه را تعیین میکنند. این ویژگیها شامل مواردی مانند نام برنامه، آیکون، برچسب، تم، و موارد دیگر هستند. - <activity> Element (عنصر activity): این عنصر برای تعریف فعالیتها در برنامه استفاده میشود. هر فعالیت (Activity) که در برنامه تعریف شده است، در این بخش قرار میگیرد. در اینجا، هر فعالیت شامل تنظیماتی مانند نام، برچسب، تم، و غیره است. همچنین با استفاده از Intent Filter، فعالیت اصلی برنامه (Launcher Activity) را مشخص میکند. این فایل، همانند ساختمان پایگاهی برای برنامهی شما در اندروید عمل میکند و تنظیمات زیادی را به شما ارائه میدهد که برای اجرای و عملکرد صحیح برنامه بسیار حیاتی هستند. پیش از ایجاد تغییرات در فایل های برنامه اندروید من توصیه میکنم برای تجربه و دیدن برنامه در گوشی خود. برنامه اندروید را بر روی گوشی خود نصب کنید. برای تولید فایل APK (Android Package) از پروژهی خود در اندروید استودیو، میتوانید مراحل زیر را دنبال کنید: 1. Build Menu را باز کنید: در بالای پنجره اندروید استودیو، به بخش Build رفته و گزینهی Build Bundle(s) / APK(s) را انتخاب کنید. 2. انتخاب گزینه Build APK: پس از باز شدن منو، گزینه Build APK را انتخاب کنید. این گزینه به شما امکان تولید یک فایل APK مستقل از پروژهی خود را میدهد. 3. انتظار برای پایان فرآیند Build: بعد از انتخاب گزینه Build APK، اندروید استودیو شروع به فرآیند کامپایل و ایجاد فایل APK خواهد کرد. صبر کنید تا این فرآیند به پایان برسد. 4. لوکیشن فایل APK: پس از پایان فرآیند Build، اندروید استودیو شما را به محل ذخیره فایل APK هدایت خواهد کرد. معمولاً فایل APK در پوشهی "app/build/outputs/apk/" قرار میگیرد. 5. انتقال و استفاده از فایل APK: حالا میتوانید فایل APK تولید شده را به دستگاه اندرویدی خود منتقل کرده و آن را نصب کنید. این کار را میتوانید از طریق اتصال دستگاه به کامپیوتر با کابل USB انجام دهید یا فایل APK را از طریق ایمیل یا سایر روشهای انتقال فایل به دستگاه انجام دهید. با انجام این مراحل، شما یک فایل APK از پروژهی خود در اندروید استودیو ایجاد خواهید کرد که میتوانید آن را بر روی دستگاههای اندرویدی نصب کنید و برنامهی خود را تست کنید. #### نویت ادیت فایل mainfest است! همانطور که گفتیم فایل که در وبسایت اندروید developers نوشته شده است ، Every app project must have an AndroidManifest.xml file, with precisely that name, at the root of the project source set. The manifest file describes essential information about your app to the Android build tools, the Android operating system, and Google Play. شامل اطلاعاتی مانند نام برنامه، فعالیتها، سرویسها، اجازهها و سایر تنظیمات است. میخواهم قسمتی از permission های یک برنامه اندرویدی را به شما نمایش دهم: در اندروید، برای دسترسی به منابع و خدمات مختلف دستگاه، شما باید اجازههای مربوطه را به برنامه خود اضافه کنید. در زیر، لیستی از معروفترین اجازهها (Permissions) در اندروید آورده شده است: - android.permission.INTERNET: برای دسترسی به اینترنت و ارسال و دریافت دادهها از شبکه. - android.permission.ACCESS_NETWORK_STATE: برای دسترسی به وضعیت شبکه و اطلاعات مربوط به اتصال اینترنت. - android.permission.ACCESS_WIFI_STATE: برای دسترسی به وضعیت و اطلاعات مربوط به اتصال Wi-Fi. - android.permission.READ_EXTERNAL_STORAGE: برای دسترسی به فایلها و دایرکتوریهای ذخیره شده در حافظه خارجی دستگاه. - android.permission.WRITE_EXTERNAL_STORAGE: برای نوشتن و ذخیرهسازی فایلها در حافظه خارجی دستگاه. - android.permission.CAMERA: برای دسترسی به دوربین و امکان استفاده از آن برای گرفتن عکس یا ضبط ویدئو. - android.permission.READ_CONTACTS: برای دسترسی به دفترچه تلفن و خواندن اطلاعات مخاطبین. - android.permission.WRITE_CONTACTS: برای نوشتن اطلاعات در دفترچه تلفن و اضافه کردن یا ویرایش مخاطبین. - android.permission.ACCESS_FINE_LOCATION: برای دسترسی دقیق به موقعیت مکانی GPS. - android.permission.ACCESS_COARSE_LOCATION: برای دسترسی به موقعیت مکانی تقریبی بر اساس شبکههای موبایل و Wi-Fi. - android.permission.RECORD_AUDIO: برای ضبط صدا و استفاده از میکروفون دستگاه. - android.permission.READ_PHONE_STATE: برای خواندن وضعیت تلفن و اطلاعات دستگاه. - android.permission.CALL_PHONE: برای انجام تماس تلفنی از دستگاه. - android.permission.SEND_SMS: برای ارسال پیامک از دستگاه. - android.permission.RECEIVE_SMS: برای دریافت و پردازش پیامکهای ورودی در برنامه. این فقط یک لیست مختصر از اجازههای معمول است و برنامههای مختلف ممکن است نیاز به اجازههای دیگری نیز داشته باشند، بسته به نیازهای ویژهی هر برنامه. اطمینان حاصل کنید که اجازهها را به تناوب مناسب و بر اساس نیاز واقعی برنامه اضافه کنید تا امنیت و حریم خصوصی کاربران را حفظ کنید. خوب چه میشود اگر همه permission هارا به یک برنامه اضافه کنیم ؟ بهتر است که حریم خصوصی کاربران در برنامه هایی که میسازید حفظ شود و این اشتباه است که به صورت مخفیانه یک گوشی را بتوانید ببینید و کنترل کنید... برای تست و دیدین این دسترسی ها میتوانید انواع مختلف دسترسی هارا به یک برنامه اضافه کنید و هر بار روی گوشی خود تست و برسی کنید. همانطور که گفتم صرفا برای تست. لیست تمام permission های یک برنامه اندروید را میتوانیددر وبسایت اندریود دولوپرز پیدا کنید یا از طریق لینک مقابل ببینید: ــ[لینک](https://developer.android.com/guide/topics/manifest/uses-permission-element)ــ فایل andoirdMainfest خام: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> <application android:allowBackup="true" android:dataExtractionRules="@xml/data_extraction_rules" android:fullBackupContent="@xml/backup_rules" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.MyFileManager" tools:targetApi="31"> <activity android:name=".MainActivity" android:exported="true" android:label="@string/app_name" android:theme="@style/Theme.MyFileManager.NoActionBar"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> برای اضافه کردن permission ها کافیه که هر پرمیشن را به صورت : ```<uses-permission android:name="NAME_OF_PERMISSION" />``` به برنامه اضافه کنیم. محل قرار گیری permission ها در قسمت پایین نمایش داده شده است: