Is it possible to use the same app APK file for both Android and chrome or should have separate APK files?
Yes, it is possible to use same apk
for Android
and ChromeOS
if you don't have any special feature which is not available on ChromeOS
. No need to create separate APK.
Device Support:
You can use the Google Play Store to install Android apps on several
Google Chromebooks. This document describes the Chromebooks,
Chromeboxes, and Chromebases that can install Android apps, both
currently and in upcoming releases of Chrome OS.
If your app will have any feature which is not available on ChromeOS
then that app will not be available on PlayStore for ChromeOS
i.e. from ChromeOS
you will not be able to see that app on PlayStore.
App manifest compatibility for Chromebooks:
As you prepare your Android app to run on Chromebooks, you should
consider the device features that your app uses. Chromebooks don't
support all of the hardware and software features that are available
on other devices running Android. If your app requires specific
features that aren't supported on Chromebooks, it won't be available
for installation on Chromebooks.
Is it possible to differentiate the environment (Android or ChromeOS) programmatically within the app?
Yes it is possible to check if app is running on ChromeOS using below code:
context.getPackageManager().hasSystemFeature("org.chromium.arc.device_management");