راهنمای توسعه دهنده

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

  • سازگاری با نمایه کاری — برنامه Android خود را تغییر دهید تا در دستگاه مدیریت شده بهترین عملکرد را داشته باشد.
  • پیکربندی های مدیریت شده — برنامه خود را تغییر دهید تا مدیران فناوری اطلاعات گزینه ای را برای تعیین تنظیمات سفارشی برای برنامه های شما انتخاب کنند.
  • دستگاه های اختصاصی — برنامه خود را بهینه کنید تا بتوان آن را به عنوان کیوسک در دستگاه اندرویدی مستقر کرد.
  • Single Sign-On (SSO) - فرآیند ورود به سیستم را برای کاربرانی که در دستگاه Android مدیریت شده خود به برنامه های مختلف وارد می شوند، ساده کنید.

پیش نیازها

  1. شما یک برنامه اندروید ایجاد کرده اید.
  2. شما آماده هستید برنامه خود را طوری تغییر دهید که برای سازمان ها بهترین عملکرد را داشته باشد.
  3. حداقل نسخه: Android 5.0 Lollipop نسخه پیشنهادی: Android 6.0 Marshmallow و جدیدتر.

توجه: ویژگی‌های سازمانی اندروید در اکثر دستگاه‌های Android 5.0 تعبیه شده است. با این حال، آندروید 6.0 و جدیدتر ویژگی های اضافی، به خصوص در مورد دستگاه های اختصاصی ارائه می دهد.

پروفایل های کاری

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

ویژگی های کلیدی پروفایل کاری

  • نمایه مجزا و ایمن
  • Google Play را برای توزیع برنامه مدیریت کرد
  • برنامه های کاری دارای نشان جداگانه
  • قابلیت‌های مدیریت فقط نمایه که توسط یک سرپرست کنترل می‌شود

مزایای نمایه کاری در Android نسخه 5.0 و بالاتر

  • رمزگذاری کامل دستگاه
  • یک بسته برنامه Android (APK) برای هر دو نمایه وقتی یک نمایه شخصی و یک نمایه کاری در دستگاه وجود دارد
  • کنترل‌کننده خط‌مشی دستگاه (DPC) به نمایه کاری محدود می‌شود
  • مدیریت دستگاه از طریق کلاس DevicePolicyManager

ملاحظاتی برای پروفایل های کاری

جلوگیری از شکست اهداف بین پروفایل ها

دشوار است که بدانید کدام هدف ها می توانند بین نمایه ها عبور کنند و کدام یک مسدود شده اند. تنها راه مطمئن شدن از طریق آزمایش است. قبل از اینکه برنامه شما فعالیتی را شروع کند، باید با فراخوانی Intent.resolveActivity() بررسی کنید که درخواست حل شده است.

  • اگر null برگرداند، درخواست حل نمی شود.
  • اگر چیزی را برگرداند، نشان می‌دهد که هدف حل می‌شود، و ارسال آن بی‌خطر است.

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

به اشتراک گذاری فایل ها در پروفایل ها

برخی از توسعه دهندگان از URI برای علامت گذاری مسیرهای فایل در اندروید استفاده می کنند. با این حال، از آنجایی که هنگام وجود یک نمایه کاری، سیستم های فایل جداگانه وجود دارد، توصیه می کنیم:

استفاده کنید:
URI های محتوا
  • URI های محتوا حاوی مرجع، مسیر و شناسه برای یک فایل خاص هستند. شما می توانید این را با استفاده از زیر کلاس FileProvider ایجاد کنید. بیشتر بدانید
  • به اشتراک گذاری و اجازه دسترسی به URI محتوا با استفاده از Intent. مجوزها را فقط می توان با استفاده از Intent از مرز نمایه عبور داد. اگر با استفاده از Context.grantUriPermission() به برنامه دیگری حقوق دسترسی به فایل خود اعطا کنید، فقط برای آن برنامه در همان نمایه اعطا می شود.
استفاده نکنید:
URI فایل
  • شامل مسیر مطلق فایل در حافظه دستگاه است.
  • یک URI مسیر فایل که در یک نمایه معتبر است، در نمایه دیگر معتبر نیست.
  • اگر یک URI فایل را به یک intent پیوست کنید، یک کنترل کننده قادر به دسترسی به فایل در نمایه دیگر نیست.

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

پیاده سازی تنظیمات مدیریت شده

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

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

  • پیکربندی کنید آیا برنامه می‌تواند داده‌ها را از طریق تلفن همراه/3G یا فقط Wi-Fi همگام‌سازی کند
  • URL ها را در مرورگر وب مجاز یا مسدود کنید
  • تنظیمات ایمیل یک برنامه را پیکربندی کنید
  • فعال یا غیرفعال کردن چاپ
  • مدیریت بوک مارک ها

بهترین روش ها برای پیاده سازی تنظیمات مدیریت شده

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

هنگام اولین بار راه اندازی برنامه

به محض راه‌اندازی یک برنامه، می‌توانید ببینید که آیا تنظیمات مدیریت شده از قبل برای این برنامه در onStart() یا onResume() تنظیم شده است. علاوه بر این، می توانید متوجه شوید که آیا برنامه شما مدیریت شده یا مدیریت نشده است. به عنوان مثال، اگر getApplicationRestrictions() برگرداند:

  • مجموعه ای از محدودیت های خاص برنامه — می توانید پیکربندی های مدیریت شده را به صورت بی صدا پیکربندی کنید (بدون نیاز به ورودی کاربر).
  • یک بسته خالی — برنامه شما مانند مدیریت نشده عمل می کند (مثلاً نحوه عملکرد برنامه در نمایه شخصی).
  • یک بسته با یک جفت مقدار کلید تکی با KEY_RESTRICTIONS_PENDING که روی درست تنظیم شده است — برنامه شما مدیریت می شود، اما DPC به درستی پیکربندی نشده است. باید این کاربر را از برنامه خود مسدود کنید و او را به سرپرست فناوری اطلاعات خود هدایت کنید.

به تغییرات پیکربندی های مدیریت شده گوش دهید

مدیران فناوری اطلاعات می‌توانند پیکربندی‌های مدیریت‌شده و سیاست‌هایی را که می‌خواهند بر روی کاربران خود در هر زمانی اعمال کنند، تغییر دهند. به همین دلیل، توصیه می کنیم مطمئن شوید که برنامه شما می تواند محدودیت های جدیدی را برای پیکربندی مدیریت شده شما به شرح زیر بپذیرد:

  • محدودیت‌ها را در راه‌اندازی واکشی کنید — برنامه شما باید getApplicationRestrictions() را در onStart() و onResume() فراخوانی کند و با محدودیت‌های قدیمی مقایسه کند تا ببیند آیا تغییرات لازم است یا خیر.
  • در حین اجرا گوش دهید — پس از بررسی محدودیت های جدید، ACTION_APPLICATION_RESTRICTIONS_CHANGED را به صورت پویا در فعالیت ها یا خدمات در حال اجرا خود ثبت کنید. این هدف فقط برای شنوندگانی که به صورت پویا ثبت شده اند ارسال می شود و نه برای شنوندگان اعلام شده در مانیفست برنامه.
  • لغو ثبت در حالی که در حال اجرا نیست — در onPause() ، باید برای پخش ACTION_APPLICATION_RESTRICTIONS_CHANGED ثبت نام را لغو کنید.

دستگاه های اختصاصی

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

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

برای دستورالعمل‌ها، Dedicated-Device را ببینید.

راه‌اندازی یک ورود به سیستم با برگه‌های سفارشی Chrome

کاربران سازمانی اغلب چندین برنامه در دستگاه خود دارند و ترجیح می دهند برای دسترسی به همه برنامه های کاری خود یک بار وارد سیستم شوند. به طور معمول، کاربران از طریق WebView وارد سیستم می شوند. با این حال، چند دلیل وجود دارد که چرا این ایده آل نیست:

  1. کاربران اغلب باید چندین بار با همان اعتبارنامه وارد سیستم شوند. راه حل WebView اغلب یک تجربه ثبت نام واحد (SSO) واقعی نیست.
  2. ممکن است خطرات امنیتی وجود داشته باشد، از جمله برنامه های مخرب که کوکی ها را بازرسی می کنند یا جاوا اسکریپت® را برای دسترسی به اعتبار کاربر تزریق می کنند. حتی توسعه‌دهندگان مورد اعتماد نیز در صورت تکیه بر SDK‌های بالقوه مخرب شخص ثالث در معرض خطر هستند.

راه حل هر دو مشکل، احراز هویت کاربران با استفاده از تب های سفارشی مرورگر، به جای WebView است. این تضمین می کند که احراز هویت:

  • در یک زمینه امن (مرورگر سیستم) رخ می دهد که در آن برنامه میزبان نمی تواند محتویات را بررسی کند.
  • دارای یک حالت کوکی مشترک است که تضمین می کند کاربر فقط یک بار باید وارد سیستم شود.

الزامات

برگه های سفارشی به سطح API 15 (اندروید 4.0.3) پشتیبانی می شوند. برای استفاده از برگه‌های سفارشی به یک مرورگر پشتیبانی شده مانند Chrome نیاز دارید. Chrome 45 و نسخه‌های بعدی این ویژگی را به‌عنوان برگه‌های سفارشی Chrome پیاده‌سازی می‌کند.

چگونه SSO را با تب های سفارشی پیاده سازی کنم؟

Google یک کتابخانه سرویس گیرنده OAuth را منبع باز کرده است که از برگه های سفارشی استفاده می کند و آن را به گروه کاری OpenID Connect بنیاد OpenID کمک می کند. برای راه‌اندازی برگه‌های سفارشی برای SSO با کتابخانه AppAuth، به مستندات و کد نمونه در GitHub مراجعه کنید.

اپلیکیشن خود را تست کنید

بعد از اینکه برنامه خود را توسعه دادید، می‌خواهید آن را هم در نمایه کاری و هم در یک دستگاه کاملاً مدیریت شده آزمایش کنید. دستورالعمل های زیر را ببینید.

از Test DPC برای آزمایش برنامه اندروید خود استفاده کنید

ما برنامه Test DPC را برای کمک به توسعه دهندگان Android ارائه می دهیم تا برنامه های خود را در یک محیط سازمانی آزمایش کنند. با استفاده از تست DPC، می‌توانید خط‌مشی‌های EMM یا مقادیر پیکربندی مدیریت‌شده را روی یک دستگاه تنظیم کنید - مثل اینکه سازمانی دستگاه را با استفاده از EMM مدیریت می‌کند. برای نصب Test DPC بر روی دستگاه، یکی از روش های زیر را انتخاب کنید:

  • Test DPC را از GooglePlay نصب کنید.
  • از منبع در GitHub بسازید.

برای اطلاعات بیشتر در مورد نحوه پیکربندی Test DPC، دستورالعمل‌های زیر و راهنمای کاربر تست DPC را ببینید.

ارائه مشخصات کاری

برای آزمایش برنامه خود در نمایه کاری، ابتدا باید یک نمایه کاری در دستگاه با استفاده از برنامه Test DPC به شرح زیر ارائه دهید:

  1. تست DPC را روی دستگاه نصب کنید.
  2. در راه‌انداز اندروید، روی نماد برنامه تست DPC ضربه بزنید.
  3. دستورالعمل های روی صفحه را دنبال کنید.
  4. برنامه خود را روی دستگاه نصب کنید و آزمایش کنید تا ببینید چگونه در نمایه کاری اجرا می شود.

Android یک نمایه کاری ایجاد می کند و یک کپی از Test DPC را در نمایه کاری نصب می کند. شما از این نمونه نشان کاری تست DPC برای تنظیم خط‌مشی‌ها و پیکربندی‌های مدیریت‌شده در نمایه کاری استفاده می‌کنید. برای کسب اطلاعات بیشتر درباره تنظیم نمایه کاری برای توسعه، راهنمای برنامه‌نویس نمایه‌های کاری را بخوانید.

ارائه یک دستگاه کاملاً مدیریت شده

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

  1. تست DPC را روی دستگاه نصب کنید.
  2. تأیید کنید که هیچ کاربر یا نمایه کاری دیگری در دستگاه وجود ندارد.
  3. تأیید کنید که هیچ حسابی در دستگاه وجود ندارد.
  4. دستور Android Debug Bridge (adb) زیر را در ترمینال خود اجرا کنید:
    adb shell dpm set-device-owner com.afwsamples.testdpc/.DeviceAdminReceiver
  5. پس از تکمیل تهیه مالک دستگاه، می توانید برنامه خود را در آن دستگاه آزمایش کنید. شما باید به طور خاص نحوه عملکرد تنظیمات و اهداف مدیریت شده در آن دستگاه را آزمایش کنید.

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

تست انتها به انتها

پس از اینکه آزمایش برنامه خود را در محیط های بالا به پایان رساندید، احتمالاً می خواهید برنامه خود را در یک محیط تولید سرتاسر آزمایش کنید. این فرآیند شامل مراحلی است که یک مشتری باید برای استقرار برنامه شما در سازمان خود انجام دهد، از جمله:

  • توزیع برنامه از طریق Play
  • پیکربندی مدیریت شده در سمت سرور
  • کنترل خط مشی نمایه سمت سرور

برای تکمیل آزمایش انتها به انتها باید به یک کنسول EMM دسترسی داشته باشید. ساده ترین راه برای دریافت این است که یک کنسول آزمایشی از EMM خود درخواست کنید. پس از دسترسی، این وظایف را کامل کنید:

  1. یک نسخه آزمایشی از برنامه خود با یک ApplicationId جدید ایجاد کنید.
  2. یک دامنه Google مدیریت شده را ادعا کنید و آن را به EMM خود متصل کنید. اگر در حال حاضر یک دامنه آزمایشی دارید که به یک EMM متصل است، ممکن است لازم باشد برای آزمایش آن با EMM ترجیحی خود، آن را جدا کنید. لطفاً برای مراحل خاص عدم الزام آور با EMM خود مشورت کنید.
  3. درخواست خود را در کانال خصوصی دامنه Google مدیریت شده آنها منتشر کنید .
  4. از کنسول EMM و برنامه EMM برای موارد زیر استفاده کنید:
    1. دستگاه های کاری را راه اندازی کنید.
    2. درخواست خود را توزیع کنید
    3. تنظیم پیکربندی مدیریت شده
    4. سیاست های دستگاه را تنظیم کنید.

این فرآیند بر اساس EMM شما متفاوت خواهد بود. لطفاً برای جزئیات بیشتر به اسناد EMM خود مراجعه کنید. تبریک میگم شما این مراحل را انجام داده اید و تأیید کرده اید که برنامه شما برای کاربران سازمانی به خوبی کار می کند.