API های اندروید 3.2

سطح API: 13

Android 3.2 ( HONEYCOMB_MR2 ) یک نسخه پلتفرم افزایشی است که قابلیت های جدیدی را برای کاربران و توسعه دهندگان اضافه می کند. بخش های زیر نمای کلی از ویژگی های جدید و API های توسعه دهنده را ارائه می دهد.

برای توسعه دهندگان، پلتفرم Android 3.2 به عنوان یک جزء قابل دانلود برای Android SDK در دسترس است. پلتفرم قابل دانلود شامل کتابخانه اندروید و تصویر سیستم، و همچنین مجموعه ای از پوسته های شبیه ساز و موارد دیگر است. برای شروع توسعه یا آزمایش با Android 3.2، از Android SDK Manager برای دانلود پلتفرم در SDK خود استفاده کنید.

نکات برجسته پلتفرم

ویژگی های کاربر جدید

  • بهینه سازی برای طیف وسیع تری از تبلت ها

    Android 3.2 شامل انواع بهینه‌سازی‌ها در سراسر سیستم است تا از تجربه کاربری عالی در طیف وسیع‌تری از دستگاه‌های تبلت اطمینان حاصل کند.

  • بزرگنمایی سازگاری برای برنامه های با اندازه ثابت

    اندروید 3.2 حالت زوم سازگاری جدیدی را معرفی می‌کند که به کاربران روش جدیدی برای مشاهده برنامه‌های با اندازه ثابت در دستگاه‌های بزرگتر می‌دهد. حالت جدید جایگزینی در مقیاس پیکسلی برای گسترش رابط کاربری استاندارد برای برنامه‌هایی که برای اجرا در اندازه‌های بزرگتر مانند تبلت‌ها طراحی نشده‌اند، ارائه می‌کند. حالت جدید از طریق نماد منو در نوار سیستم برای برنامه‌هایی که به پشتیبانی سازگاری نیاز دارند، در دسترس کاربران است.

  • همگام سازی رسانه از کارت SD

    در دستگاه هایی که از کارت SD پشتیبانی می کنند، کاربران اکنون می توانند فایل های رسانه ای را مستقیماً از کارت SD در برنامه هایی که از آنها استفاده می کنند بارگیری کنند. یک تسهیلات سیستمی، فایل‌ها را در دسترس برنامه‌ها از فروشگاه رسانه سیستم قرار می‌دهد.

ویژگی های جدید توسعه دهنده

  • API توسعه یافته برای مدیریت پشتیبانی از صفحه نمایش

    Android 3.2 افزونه‌هایی را برای API پشتیبانی صفحه پلتفرم معرفی می‌کند تا به توسعه‌دهندگان راه‌های بیشتری برای مدیریت رابط کاربری برنامه در طیف وسیعی از دستگاه‌های مجهز به Android ارائه دهد. API شامل واجد شرایط منابع جدید و ویژگی‌های مانیفست جدید است که به شما کنترل دقیق‌تری بر نحوه نمایش برنامه‌هایتان در اندازه‌های مختلف می‌دهد، نه اینکه بر دسته‌های اندازه کلی تکیه کنید.

    برای اطمینان از بهترین نمایش ممکن برای برنامه‌ها و برنامه‌های با اندازه ثابت با پشتیبانی محدود از اندازه‌های مختلف صفحه نمایش، این پلتفرم حالت سازگاری زوم جدیدی را نیز ارائه می‌کند که رابط کاربری را در یک صفحه نمایش کوچک‌تر نمایش می‌دهد، سپس آن را بزرگ می‌کند تا فضای موجود را پر کند. نمایشگر برای اطلاعات بیشتر درباره API پشتیبانی از صفحه و کنترل‌هایی که ارائه می‌کند، به بخش‌های زیر مراجعه کنید.

نمای کلی API

صفحه نمایش از API ها پشتیبانی می کند

Android 3.2 صفحه‌نمایش‌های جدیدی را معرفی می‌کند که از API پشتیبانی می‌کنند که به شما کنترل بیشتری بر نحوه نمایش برنامه‌هایشان در اندازه‌های مختلف صفحه نمایش می‌دهد. API مبتنی بر API پشتیبانی از صفحه‌نمایش موجود، از جمله مدل تراکم صفحه نمایش تعمیم‌یافته پلتفرم است، اما آن را با توانایی هدف‌یابی دقیق محدوده‌های صفحه‌نمایش بر اساس ابعادشان، اندازه‌گیری شده در واحدهای پیکسلی مستقل از چگالی (مانند 600dp یا عرض 720dp) گسترش می‌دهد. ، به جای اندازه صفحه نمایش تعمیم یافته آنها (مانند بزرگ یا xlarge)

هنگام طراحی UI یک برنامه، همچنان می توانید برای ارائه انتزاع تراکم به پلتفرم تکیه کنید، به این معنی که برنامه ها نیازی به جبران تفاوت در تراکم پیکسلی واقعی بین دستگاه ها ندارند. می توانید رابط کاربری اپلیکیشن را با توجه به میزان فضای افقی یا عمودی موجود طراحی کنید. این پلت فرم میزان فضای موجود را با استفاده از سه ویژگی جدید بیان می کند: کوچکترین عرض ، عرض و ارتفاع .

  • کوچکترین پهنای یک صفحه نمایش حداقل اندازه اصلی آن است که در واحدهای پیکسل مستقل از چگالی ("dp") اندازه گیری می شود. از ارتفاع یا عرض صفحه نمایش، از این دو کوتاه تر است. برای یک صفحه در جهت عمودی، کوچکترین Width معمولاً بر اساس عرض آن است، در حالی که در جهت افقی بر اساس ارتفاع آن است. در همه موارد، کوچکترین Width از یک مشخصه ثابت صفحه گرفته می شود و مقدار آن بدون توجه به جهت، تغییر نمی کند. کوچکترین عرض برای برنامه‌ها مهم است، زیرا نشان‌دهنده کوتاه‌ترین عرض ممکن است که در آن رابط کاربری برنامه باید ترسیم شود، بدون احتساب نواحی صفحه که توسط سیستم رزرو شده است.
  • در مقابل، عرض و ارتفاع یک صفحه نمایش فضای فعلی افقی یا عمودی موجود برای طرح‌بندی برنامه را نشان می‌دهد که بر حسب واحدهای «dp» اندازه‌گیری می‌شود، بدون احتساب مناطق صفحه‌نمایش رزرو شده توسط سیستم. هنگامی که کاربر جهت خود را بین افقی و عمودی تغییر می دهد، عرض و ارتفاع صفحه تغییر می کند.

صفحه‌نمایش جدید از API پشتیبانی می‌کند تا به شما امکان می‌دهد رابط کاربری برنامه را مطابق با کوچک‌ترین عرض صفحه فعلی مدیریت کنید. همچنین می‌توانید UI را بر اساس عرض یا ارتفاع فعلی مدیریت کنید. برای این اهداف، API این ابزارها را فراهم می کند:

  • واجد شرایط منابع جدید برای هدف قرار دادن چیدمان ها و سایر منابع به حداقل کمترین عرض، عرض یا ارتفاع، و
  • ویژگی‌های مانیفست جدید، برای تعیین حداکثر محدوده سازگاری با صفحه برنامه

علاوه بر این، برنامه‌ها همچنان می‌توانند مانند نسخه‌های قبلی پلتفرم، سیستم را پرس و جو کنند و بارگذاری UI و منابع را در زمان اجرا مدیریت کنند.

از آنجایی که API جدید به شما امکان می‌دهد صفحه‌ها را مستقیماً از طریق کوچک‌ترین عرض، عرض و ارتفاع هدف‌گیری کنید، درک ویژگی‌های معمول انواع مختلف صفحه‌نمایش مفید است. جدول زیر نمونه هایی را ارائه می دهد که در واحدهای "dp" اندازه گیری شده اند.

جدول 1. دستگاه های معمولی، با چگالی و اندازه در dp.

تایپ کنید تراکم (تعمیم) ابعاد (dp) کوچکترین عرض (dp)
تلفن پایه mdpi 320x480 320
تبلت کوچک/گوشی بزرگ mdpi 480x800 480
تبلت 7 اینچی mdpi 600x1024 600
تبلت 10 اینچی mdpi 800x1280 800

بخش‌های زیر اطلاعات بیشتری درباره واجد شرایط صفحه جدید و ویژگی‌های مانیفست ارائه می‌دهند. برای اطلاعات کامل در مورد نحوه استفاده از API پشتیبانی صفحه، به پشتیبانی از چند صفحه مراجعه کنید.

واجد شرایط منابع جدید برای پشتیبانی از صفحه نمایش

واجد شرایط منابع جدید در Android 3.2 به شما امکان می‌دهد طرح‌بندی‌های خود را برای طیف وسیعی از اندازه‌های صفحه هدف قرار دهید. با استفاده از واجد شرایط، می‌توانید پیکربندی‌های منبعی را ایجاد کنید که برای حداقل کوچک‌ترین پهنا، عرض جریان یا ارتفاع فعلی، اندازه‌گیری شده در پیکسل‌های مستقل از چگالی طراحی شده‌اند.

مسابقات مقدماتی جدید عبارتند از:

  • swNNNdp - حداقل کوچکترین عرضی را که منبع باید در آن استفاده شود را مشخص می کند که در واحدهای "dp" اندازه گیری می شود. همانطور که در بالا ذکر شد، کوچکترین عرض صفحه بدون توجه به جهت، ثابت است. مثال‌ها: sw320dp ، sw720dp ، sw720dp .
  • wNNNdp و hNNNdp - حداقل عرض یا ارتفاعی را که منبع باید در آن استفاده شود را مشخص می کند که در واحدهای "dp" اندازه گیری می شود. همانطور که در بالا ذکر شد، عرض و ارتفاع صفحه نمایش نسبت به جهت صفحه است و هر زمان که جهت آن تغییر کند تغییر می کند. مثال‌ها: w320dp ، w720dp ، h1024dp .

همچنین می‌توانید در صورت نیاز، چندین پیکربندی منابع همپوشانی ایجاد کنید. برای مثال، می‌توانید برخی از منابع را برای استفاده در هر صفحه‌ای با عریض‌تر از 480 dp، برخی دیگر را برای عریض‌تر از 600 dp و برخی دیگر را برای استفاده بیشتر از 720 dp برچسب بزنید. هنگامی که چندین پیکربندی منبع برای یک صفحه مشخص واجد شرایط هستند، سیستم پیکربندی را انتخاب می‌کند که نزدیک‌ترین تطابق را داشته باشد. برای کنترل دقیق منابعی که در یک صفحه مشخص بارگذاری می شوند، می توانید منابع را با یک واجد شرایط برچسب گذاری کنید یا چندین واجد شرایط جدید یا موجود را ترکیب کنید.

بر اساس ابعاد معمولی که قبلا ذکر شد، در اینجا چند نمونه از نحوه استفاده از واجد شرایط جدید آورده شده است:

res/layout/main_activity.xml   # For phones
res/layout-sw600dp/main_activity.xml   # For 7” tablets
res/layout-sw720dp/main_activity.xml   # For 10” tablets
res/layout-w600dp/main_activity.xml   # Multi-pane when enough width
res/layout-sw600dp-w720dp/main_activity.xml   # For large width

نسخه‌های قدیمی‌تر این پلتفرم، واجد شرایط جدید را نادیده می‌گیرند، بنابراین می‌توانید آن‌ها را در صورت نیاز ترکیب کنید تا مطمئن شوید که برنامه شما در هر دستگاهی عالی به نظر می‌رسد. در اینجا چند نمونه آورده شده است:

res/layout/main_activity.xml   # For phones
res/layout-xlarge/main_activity.xml   # For pre-3.2 tablets
res/layout-sw600dp/main_activity.xml   # For 3.2 and up tablets

برای اطلاعات کامل در مورد نحوه استفاده از واجد شرایط جدید، به استفاده از واجد شرایط اندازه جدید مراجعه کنید.

ویژگی های مانیفست جدید برای سازگاری با اندازه صفحه نمایش

این چارچوب مجموعه جدیدی از ویژگی های مانیفست <supports-screens> را ارائه می دهد که به شما امکان می دهد پشتیبانی برنامه خود را برای اندازه های مختلف صفحه مدیریت کنید. به طور خاص، می‌توانید بزرگ‌ترین و کوچک‌ترین صفحه‌هایی را که برنامه‌تان برای اجرا در آن طراحی شده است، و همچنین بزرگ‌ترین صفحه‌ای که روی آن طراحی شده است، بدون نیاز به حالت سازگاری صفحه نمایش جدید سیستم اجرا شود. مانند واجد شرایط منبع که در بالا توضیح داده شد، ویژگی‌های مانیفست جدید محدوده صفحه‌هایی را که برنامه پشتیبانی می‌کند، مشخص می‌کند، همانطور که با کمترین عرض مشخص شده است.

ویژگی های جدید مانیفست برای پشتیبانی از صفحه نمایش عبارتند از:

  • android:compatibleWidthLimitDp=" numDp" - این ویژگی به شما امکان می دهد حداکثر کوچکترین عرضی را که برنامه در آن می تواند بدون نیاز به حالت سازگاری اجرا شود را مشخص کنید. اگر صفحه فعلی بزرگتر از مقدار مشخص شده باشد، سیستم برنامه را در حالت عادی نمایش می دهد اما به کاربر اجازه می دهد تا به صورت اختیاری از طریق تنظیمی در نوار سیستم به حالت سازگاری تغییر وضعیت دهد.
  • android:largestWidthLimitDp=" numDp " — این ویژگی به شما امکان می دهد حداکثر کوچکترین عرضی را که برنامه برای اجرا در آن طراحی شده است را مشخص کنید. اگر صفحه نمایش فعلی بزرگتر از مقدار مشخص شده باشد، سیستم برنامه را به حالت سازگاری با صفحه مجبور می کند تا از بهترین نمایش در صفحه فعلی اطمینان حاصل شود.
  • android:requiresSmallestWidthDp=" numDp" — این ویژگی به شما امکان می دهد حداقل کوچکترین عرضی را که برنامه می تواند روی آن اجرا شود را مشخص کنید. اگر صفحه فعلی کوچکتر از مقدار مشخص شده باشد، سیستم برنامه را با دستگاه ناسازگار می داند، اما از نصب و اجرای آن جلوگیری نمی کند.

توجه: Google Play در حال حاضر برنامه ها را بر اساس هیچ یک از ویژگی های بالا فیلتر نمی کند. پشتیبانی از فیلترینگ در نسخه بعدی پلتفرم اضافه خواهد شد. برنامه هایی که بر اساس اندازه صفحه نیاز به فیلتر دارند می توانند از ویژگی های موجود <supports-screens> استفاده کنند.

برای اطلاعات کامل در مورد نحوه استفاده از ویژگی های جدید، به اعلام پشتیبانی از اندازه صفحه مراجعه کنید.

حالت سازگاری با صفحه نمایش

Android 3.2 حالت سازگاری صفحه نمایش جدیدی را برای برنامه‌ها ارائه می‌کند که به صراحت اعلام می‌کند که از صفحه‌نمایش‌هایی به بزرگی صفحه‌ای که روی آن اجرا می‌شوند پشتیبانی نمی‌کنند. این حالت جدید "زوم" به صورت پیکسلی است - برنامه را در یک صفحه نمایش کوچکتر نمایش می دهد و سپس پیکسل ها را برای پر کردن صفحه فعلی تغییر می دهد.

به طور پیش فرض، سیستم حالت سازگاری صفحه نمایش را به عنوان یک گزینه کاربر برای برنامه هایی که به آن نیاز دارند ارائه می دهد. کاربران می توانند با استفاده از کنترل موجود در نوار سیستم، حالت بزرگنمایی را روشن و خاموش کنند.

از آنجایی که حالت جدید سازگاری صفحه ممکن است برای همه برنامه‌ها مناسب نباشد، پلتفرم به برنامه اجازه می‌دهد آن را با استفاده از ویژگی‌های مانیفست غیرفعال کند. هنگامی که برنامه غیرفعال می شود، سیستم حالت سازگاری "zoom" را به عنوان گزینه ای برای کاربران در هنگام اجرای برنامه ارائه نمی دهد.

توجه: برای اطلاعات مهم در مورد نحوه کنترل حالت سازگاری در برنامه‌های خود، لطفاً مقاله حالت جدید برای برنامه‌ها در صفحه‌های بزرگ را در وبلاگ برنامه‌نویسان Android مرور کنید.

تراکم صفحه نمایش جدید برای تلویزیون های 720p و دستگاه های مشابه

برای پاسخگویی به نیازهای برنامه‌هایی که روی تلویزیون‌های 720p یا مشابه با صفحه‌نمایش‌های با چگالی متوسط ​​اجرا می‌شوند، Android 3.2 یک چگالی تعمیم‌یافته جدید، tvdpi ، با dpi تقریبی tvdpi معرفی می‌کند densityDpi برای برچسب زدن منابع تلویزیون و دستگاه های مشابه. به عنوان مثال:

res/drawable-tvdpi/my_icon.png   # Bitmap for tv density

به طور کلی، برنامه ها نباید با این تراکم کار کنند. برای موقعیت هایی که خروجی برای صفحه نمایش 720p مورد نیاز است، عناصر رابط کاربری می توانند به طور خودکار توسط پلت فرم مقیاس شوند.

چارچوب UI

  • قطعات
    • کلاس New Fragment.SavedState اطلاعات وضعیت بازیابی شده از یک نمونه قطعه را از طریق saveFragmentInstanceState() نگه می دارد.
    • متد جدید saveFragmentInstanceState() وضعیت نمونه فعلی Fragment داده شده را ذخیره می کند. حالت را می توان بعداً هنگام ایجاد یک نمونه جدید از Fragment که با وضعیت فعلی مطابقت دارد استفاده کرد.
    • متد جدید setInitialSavedState() حالت ذخیره اولیه را برای یک Fragment در اولین ساخته شدن تنظیم می کند.
    • متد جدید callback onViewCreated() به Fragment اطلاع می دهد که onCreateView() بازگردانده است، اما قبل از اینکه هر حالت ذخیره شده در View بازیابی شود.
    • متد isDetached() تعیین می کند که آیا Fragment به صراحت از UI جدا شده است یا خیر.
    • متدهای جدید attach() و detach() به برنامه اجازه می‌دهند تا قطعات را مجدداً در UI متصل یا جدا کند.
    • یک روش اضافه بار جدید setCustomAnimations() به شما امکان می دهد منابع انیمیشن خاصی را برای اجرای عملیات ورود/خروج و به طور خاص هنگام باز کردن پشته پشتی تنظیم کنید. پیاده‌سازی موجود، رفتار متفاوت قطعات را هنگام باز کردن پشته پشتی در نظر نمی‌گیرد.
  • اطلاعات اندازه صفحه در ActivityInfo و ApplicationInfo
  • راهنما برای دریافت اندازه صفحه نمایش از WindowManager
    • متدهای جدید getSize() و getRectSize() به برنامه ها اجازه می دهند اندازه خام نمایشگر را دریافت کنند.
  • سبک های جدید "هولوگرافیک" عمومی
    • این پلتفرم اکنون انواع سبک‌های "هولوگرافیک" عمومی را برای متن، ویجت‌ها و تب‌ها نوار اکشن و موارد دیگر در معرض نمایش می‌گذارد. برای لیست کامل به R.style مراجعه کنید.
  • LocalActivityManager ، ActivityGroup و LocalActivityManager اکنون منسوخ شده اند
    • برنامه های جدید باید به جای این کلاس ها از Fragments استفاده کنند. برای ادامه اجرا در نسخه‌های قدیمی‌تر پلتفرم، می‌توانید از کتابخانه پشتیبانی v4 (کتابخانه سازگاری) که در Android SDK موجود است استفاده کنید. کتابخانه پشتیبانی v4 نسخه‌ای از Fragment API را ارائه می‌کند که با Android 1.6 (سطح API 4) سازگار است.
    • برای برنامه‌هایی که علیه Android 3.0 (سطح API 11) یا بالاتر توسعه می‌یابند، برگه‌ها معمولاً در رابط کاربری با استفاده از ActionBar.newTab() جدید و APIهای مربوطه برای قرار دادن برگه‌ها در ناحیه نوار عمل خود ارائه می‌شوند.

چارچوب رسانه ای

  • برنامه‌هایی که از ارائه‌دهنده رسانه پلتفرم ( MediaStore ) استفاده می‌کنند، اکنون می‌توانند داده‌های رسانه را مستقیماً از کارت SD قابل جابجایی، جایی که توسط دستگاه پشتیبانی می‌شود، بخوانند. برنامه ها همچنین می توانند با استفاده از MTP API مستقیماً با فایل های کارت SD تعامل داشته باشند.

گرافیک

چارچوب IME

  • متد جدید getModifiers() برای بازیابی وضعیت فعلی کلیدهای اصلاح کننده.

چارچوب USB

  • روش جدید getRawDescriptors() برای بازیابی توصیفگرهای خام USB برای دستگاه. می توانید از این روش برای دسترسی به توصیفگرهایی استفاده کنید که مستقیماً از طریق APIهای سطح بالاتر پشتیبانی نمی شوند.

شبکه

تلفن

ابزارهای اصلی

  • آب و برق قابل بسته بندی
  • بایندر و آی بایندر
    • روش جدید dumpAsync() در Binder و IBinder به برنامه‌ها اجازه می‌دهد تا به یک فایل مشخص تخلیه شوند و اطمینان حاصل شود که هدف به صورت ناهمزمان اجرا می‌شود.
    • کد تراکنش پروتکل جدید IBinder TWEET_TRANSACTION به برنامه‌ها اجازه می‌دهد یک توییت به شی مورد نظر ارسال کنند.

ثابت های ویژگی جدید

این پلتفرم ثابت‌های ویژگی‌های سخت‌افزاری جدیدی را اضافه می‌کند که می‌توانید در مانیفست‌های کاربردی آن‌ها اعلام کنید تا نهادهای خارجی مانند Google Play را از قابلیت‌های سخت‌افزار و نرم‌افزار مورد نیاز مطلع کند. شما این و سایر ثابت های ویژگی را در عناصر مانیفست <uses-feature> اعلام می کنید.

Google Play برنامه‌ها را بر اساس ویژگی‌های <uses-feature> آنها فیلتر می‌کند تا اطمینان حاصل کند که آنها فقط برای دستگاه‌هایی در دسترس هستند که نیازهای آنها برآورده شده است.

  • ویژگی های ثابت برای الزامات منظره یا عمودی

    Android 3.2 ثابت‌های ویژگی جدیدی را معرفی می‌کند که به برنامه‌ها اجازه می‌دهد مشخص کنند که آیا به نمایش در جهت افقی، جهت عمودی یا هر دو نیاز دارند. اعلام این ثابت ها نشان می دهد که برنامه نباید روی دستگاهی نصب شود که جهت مرتبط را ارائه نمی دهد. برعکس، اگر یک یا هر دو ثابت اعلان نشده باشد، نشان می‌دهد که برنامه اولویتی برای جهت‌های اعلام‌نشده ندارد و ممکن است روی دستگاهی نصب شود که آن‌ها را ارائه نمی‌دهد.

    یک برنامه معمولی که در هر دو جهت افقی و عمودی به درستی عمل می کند، معمولاً نیازی به اعلام نیاز جهت گیری ندارد. در عوض، برنامه‌ای که عمدتاً برای یک جهت طراحی شده است، مانند برنامه‌ای که برای تلویزیون طراحی شده است، می‌تواند یکی از ثابت‌ها را اعلام کند تا اطمینان حاصل شود که برای دستگاه‌هایی که آن جهت را ارائه نمی‌دهند، در دسترس نیست.

    اگر هر یک از فعالیت‌های اعلام شده در مانیفست درخواست کند که در جهت خاصی اجرا شوند، با استفاده از ویژگی android:screenOrientation ، آنگاه این نیز اعلام می‌کند که برنامه به آن جهت نیاز دارد.

  • سایر ثابت های ویژگی

گزارش تفاوت های API

برای مشاهده جزئیات همه تغییرات API در Android 3.2 (سطح API 13)، به گزارش تفاوت های API مراجعه کنید.

سطح API

پلتفرم Android 3.2 نسخه به روز شده ای از چارچوب API را ارائه می دهد. API Android 3.2 به یک شناسه عدد صحیح - 13 - اختصاص داده شده است که در خود سیستم ذخیره می شود. این شناسه که "سطح API" نامیده می شود، به سیستم اجازه می دهد تا قبل از نصب برنامه به درستی تعیین کند که آیا یک برنامه با سیستم سازگار است یا خیر.

برای استفاده از API های معرفی شده در Android 3.2 در برنامه خود، باید برنامه را در برابر کتابخانه اندرویدی که در پلتفرم Android 3.2 SDK ارائه شده است، کامپایل کنید. بسته به نیازتان، ممکن است لازم باشد یک ویژگی android:minSdkVersion="13" نیز به عنصر <uses-sdk> در مانیفست برنامه اضافه کنید.

برای اطلاعات بیشتر، سطح API چیست؟