دستگاههای ChromeOS، مانند Chromebook، از فروشگاه Google Play و برنامههای Android پشتیبانی میکنند. این مقاله فرض میکند که یک برنامه Android موجود برای گوشیها یا تبلتها طراحی شده است که میخواهید آن را برای Chromebook بهینه کنید. برای یادگیری اصول اولیه ساخت برنامههای Android، به ساخت اولین برنامه Android خود مراجعه کنید.
فایل مانیفست برنامه خود را به روز کنید
برای شروع، فایل مانیفست خود را بهروزرسانی کنید تا برخی از تفاوتهای کلیدی سختافزاری و نرمافزاری بین دستگاههای Chromebook و سایر دستگاههای دارای Android را در نظر بگیرد.
از ChromeOS نسخه M53، همه برنامههای Android که به صراحت به ویژگی android.hardware.touchscreen
نیاز ندارند، در دستگاههای ChromeOS که از ویژگی android.hardware.faketouch
پشتیبانی میکنند نیز کار میکنند. با این حال، برای اطمینان از اینکه برنامه شما روی همه Chromebook کار می کند، فایل مانیفست خود را به روز کنید تا ویژگی android.hardware.touchscreen
مورد نیاز نباشد، همانطور که در مثال زیر نشان داده شده است.
<manifest xmlns:android="http://schemas.android.com/apk/res/android" ... > <!-- Some Chromebooks don't support touch. Although not essential, it's a good idea to explicitly include this declaration. --> <uses-feature android:name="android.hardware.touchscreen" android:required="false" /> </manifest>
دستگاههای سختافزاری مختلف به مجموعههای متفاوتی از حسگرها مجهز میشوند و Chromebookها ممکن است همه حسگرهای موجود در دستگاههای اندرویدی دستی مانند GPS و شتابسنجها را نداشته باشند. با این حال، در برخی موارد عملکرد یک سنسور به روش دیگری ارائه می شود. برای مثال، Chromebookها ممکن است سنسور GPS نداشته باشند، اما دادههای مکان را بر اساس اتصالات Wi-Fi ارائه میکنند. برای کسب اطلاعات بیشتر در مورد سنسورهایی که پلتفرم اندروید پشتیبانی می کند، نمای کلی سنسورها را ببینید.
اگر میخواهید برنامه شما بدون توجه به در دسترس بودن حسگر، روی Chromebook اجرا شود، فایل مانیفست خود را بهروزرسانی کنید تا نیازی به حسگر نباشد.
برخی از ویژگیهای نرمافزاری در Chromebook پشتیبانی نمیشوند. برای مثال، برنامههایی که IMEهای سفارشی، ویجتهای برنامه، تصاویر پسزمینه زنده و راهانداز برنامهها را ارائه میکنند پشتیبانی نمیشوند و نمیتوانند در Chromebook نصب شوند. برای فهرست کاملی از ویژگیهای نرمافزاری که در دستگاههای Chromebook پشتیبانی نمیشوند، به ویژگیهای نرمافزار ناسازگار مراجعه کنید.
SDK هدف خود را به روز کنید
ویژگی targetSdkVersion
برنامه خود را به آخرین سطح API موجود بهروزرسانی کنید تا از تمام پیشرفتهای پلتفرم Android استفاده کنید. بهبودهای پلتفرم اندروید را در نسخه های مختلف مرور کنید.
الزامات شبکه را بررسی کنید
کرومبوکها کل سیستمعامل Android را در یک ظرف، مشابه Docker یا LXC اجرا میکنند. این بدان معناست که اندروید به رابط LAN سیستم دسترسی مستقیم ندارد. در عوض، ترافیک IPv4 از یک لایه داخلی ترجمه آدرس شبکه (NAT) عبور می کند و ترافیک تک پخشی IPv6 از طریق یک پرش اضافی هدایت می شود.
اتصالات unicast خروجی از یک برنامه Android به اینترنت عمدتاً همانطور که هست کار می کنند. به طور کلی، اتصالات ورودی مسدود هستند. بستههای چندپخشی یا پخش از Android از طریق فایروال به شبکه محلی ارسال نمیشوند.
بهعنوان استثنایی از محدودیت چندپخشی، ChromeOS سرویسی را اجرا میکند که ترافیک mDNS را بین Android و رابط LAN هدایت میکند، بنابراین APIهای اکتشاف سرویس شبکه استاندارد روش توصیهشده برای کشف سایر دستگاهها در بخش LAN هستند. پس از یافتن یک دستگاه در شبکه LAN، یک برنامه اندروید می تواند از سوکت های استاندارد TCP یا UDP unicast برای برقراری ارتباط با آن استفاده کند.
اتصالات IPv4 از Android از آدرس IPv4 میزبان ChromeOS استفاده می کند. در داخل، برنامه اندروید یک آدرس IPv4 خصوصی را می بیند که به رابط شبکه اختصاص داده شده است. اتصالات IPv6 از Android از آدرسی متفاوت از میزبان ChromeOS استفاده می کنند، زیرا کانتینر Android دارای یک آدرس IPv6 عمومی اختصاصی است.
از فضای ذخیره سازی ابری و محلی به طور موثر استفاده کنید
کرومبوکها به کاربران اجازه میدهند به راحتی از یک دستگاه به دستگاه دیگر مهاجرت کنند. اگر کاربر استفاده از یک Chromebook را متوقف کند و شروع به استفاده از دیگری کند، فقط باید وارد سیستم شود و همه برنامههای او ظاهر میشوند.
به دلیل این ویژگی، از داده های برنامه خود در فضای ابری نسخه پشتیبان تهیه کنید تا همگام سازی بین دستگاه ها فعال شود. با این حال، برای عملکرد عادی برنامه خود به اتصال اینترنت وابسته نباشید. در عوض، زمانی که دستگاه آفلاین است، کار کاربر را به صورت محلی ذخیره کنید و پس از اینکه دستگاه دوباره آنلاین شد، با ابر همگامسازی کنید.
کرومبوکها را میتوان بین تعداد زیادی از افراد، مانند مدارس، به اشتراک گذاشت. از آنجایی که فضای ذخیرهسازی محلی بینهایت نیست، کل حسابها - همراه با فضای ذخیرهسازی آنها - میتوانند در هر نقطه از دستگاه حذف شوند. برای محیط های آموزشی، ایده خوبی است که این سناریو را در نظر داشته باشید.
کتابخانه های NDK را به روز کنید
اگر برنامه شما از کتابخانههای Android NDK استفاده میکند و نسخه SDK هدف آن 23 یا بالاتر است، مطمئن شوید که جابجاییهای متن از هر دو نسخه ARM و x86 کتابخانههای NDK شما حذف شدهاند، زیرا با Android 6.0 (سطح API 23) سازگار نیستند. و بالاتر. با گذاشتن جابهجایی متن در کتابخانههای NDK خود، ممکن است باعث ایجاد خطاهای سازگاری با Chromebookها نیز شوید، بهویژه هنگامی که در دستگاهی اجرا میشود که از معماری x86 استفاده میکند.
موارد آزمایشی جدید را برای برنامه خود توسعه دهید
برای توسعه موارد آزمایشی برای برنامه خود، ابتدا مطمئن شوید که پرچم های مانیفست مناسب را مشخص کرده اید. به ویژه، تنظیم screenOrientation
را روی unspecified
در نظر بگیرید. اگر میخواهید جهت افقی را مشخص کنید، از sensorLandscape
استفاده کنید تا مطمئن شوید که تجربه در تبلت بهینه است.
اگر برای محیط های دسکتاپ نیاز به اندازه یا جهت گیری خاصی دارید، اضافه کردن متا تگ ها را به عنوان نکات اندازه یا جهت در نظر بگیرید. برای گنجاندن اندازه و جهت در تلفنها، به جای آن ویژگیهای طرحبندی defaultHeight
، defaultWidth
یا minHeight
را مشخص کنید.
اگر به مدیریت دستگاه ورودی خاص برای دستههای دستگاه خاص علاقه دارید، android.hardware.type.pc
را برای غیرفعال کردن حالت سازگاری ورودی مشخص کنید.
اگر از هر نوع شبکه ای استفاده می کنید، مطمئن شوید که پس از رفع مشکل اتصال یا بیدار شدن دستگاه از حالت خواب، برنامه می تواند دوباره به شبکه متصل شود.
توصیه میکنیم فهرست موارد آزمایشی برنامههای Android را در سیستمعامل Chrome بررسی کنید، که میتوانید از آنها در طرح آزمایشی خود استفاده کنید. موارد آزمایش سناریوهای رایجی را پوشش میدهند که برنامههای Android در صورتی که انتظار میرود در دستگاههای ChromeOS اجرا شوند باید برای آنها آماده باشند.
چند پنجره و جهت تغییر می کند
محیط چند پنجرهای ChromeOS میتواند تداوم وضعیت و مشکلات را آشکارتر کند. از ViewModel
برای ذخیره و بازیابی وضعیت خود در صورت لزوم استفاده کنید.
برای آزمایش ماندگاری حالت، برنامه خود را برای مدتی به حداقل برسانید، یک فرآیند فشرده منابع دیگر را شروع کنید و برنامه خود را بازیابی کنید تا تأیید کنید که به حالتی که آن را رها کرده اید برمی گردد.
با فشار دادن کلید تمام صفحه (F4)، حداکثر کردن و بازیابی اندازه پنجره را آزمایش کنید. برای آزمایش تغییر اندازه رایگان، ابتدا آن را در گزینه های توسعه دهنده فعال کنید، و سپس بررسی کنید که اندازه برنامه شما به آرامی و بدون خرابی تغییر اندازه می دهد.
اگر دستگاه ChromeOS شما از آن پشتیبانی میکند، از حالت لپتاپ به حالت تبلت تغییر دهید تا بررسی کنید که آیا همه چیز مطابق انتظار کار میکند یا خیر. دستگاه را یک بار در حالت تبلت بچرخانید تا تغییرات جهت را آزمایش کنید، سپس به حالت لپ تاپ برگردید. این مرحله را چند بار تکرار کنید.
با جابجایی عناصر رابط کاربری یا ورودی لمسی مبتنی بر مکان، مطمئن شوید که نوار بالایی برنامه شما را خراب نمی کند. برای دستگاههای ChromeOS، مطمئن شوید که برنامه شما اطلاعات مهمی را در ناحیه نوار وضعیت قرار نمیدهد.
اگر از دوربین یا یکی دیگر از ویژگیهای سختافزاری مانند قلم استفاده میکنید، مطمئن شوید که هنگام انجام تغییرات پنجره و دستگاه که قبلاً توضیح داده شد، به درستی رفتار میکند.