android industrial mobility - droidcon italy - turin 9-10 april 2015
TRANSCRIPT
@PFMAGGIExtrovert coder with 15 years of experience (“pain”) from 8-bit MCU to HTML5 web apps. I spent too much time architecting solutions for Enterprise Mobility before it was trendy.
ranting at http://pietromaggi.com
Stop me... if you can!
Once upon a time
DOS based character devices
Symbol PDT3100:
8MHz 80c80 type (NEC V25)
Applications:
In store (Inventory, Re-Order, etc), In warehouse (Picking, Order preparation) outside the 4 wall (route accounting).
Consumer OS
PalmOS v3.5(33MHz Motorola DragonBall/VZ)
PocketPC 2000, 20002, Windows Mobile 2003, 2005, 6.0, 6.1 (206MHz Intel StrongArm)
Plus custom drivers and libraries (WiFi, Barcodes, deployment, etc)
So Many Choices•Windows CE is still an option (supported till 2020)
•iOS for Industrial Mobility?
•WE8.1H by Microsoft is now available
•Windows 10?
•Android?
Why Android Now?
•more than 80% of WW consumer market share(source: Gartner)
•Java most popular programming language(source: Tiobe)
•ISV’s gravitate to develop for largest installed base(source: VisionMobile)
•OSS Leveraging(e.g. AoSP now used as base for “other OSes”, e.g. Amazon, Xiaomi in their platforms)
Easy Deployment•User is not in charge!
•Devices are tools for a job, needs to be ready out of the box
•Think about deploying thousand of devices, already setup, depending on which shop they show up.
•If you can use it, an MDM can save the day!
More Power to the Devs!•Configure the device
•Reboot the device
•Time sync
•Device lockdown
•DataCapture
•Battery Management
Battery•Same API provides more info on industrial devices
public class BatteryInfo extends Activity { private TextView contentTxt; private BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver(){ @Override public void onReceive(Context arg0, Intent intent) { int level = intent.getIntExtra("level", 0); String Extras = intent.getExtras().toString(); contentTxt.setText(Extras); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_battery_info); contentTxt = (TextView) this.findViewById(R.id.BatteryInfo); this.registerReceiver(this.mBatInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); }}
• Application Mgr Profile – Silent APK install, Enable / Disable Apps, listing, and Settings info via Profile Manager
• App White listing Profile – Defined list of allowed applications via Profile Manager • Barcode Profile – Set / modify barcode symbologies / options and get barcode data via Profile
Manager• Certificate Management Profile - Install and management of certificates via Profile Manager• Clock Profile - Setting the Date, Time and Time Zone via Profile Manager• GPRS Profile - Configuring GPRS APN settings via Profile Manager• Persist Manager Profile – Ability to persist settings within a XML profile via Profile Mgr• Power Manager Profile – Power management operations: reboot, sleep, reboot for OS update via
Profile Mgr• Touch Mgr Profile – Ability to set the display’s touch panel sensitivity via Profile Manager• UI Mgr Profile - Enable / Disable Enterprise Reset and Clipboard via Profile Manager• USB Mgr Profile – Enable / Disable USB module, ADB, and device storage via Profile Manager• Wi-Fi Profile - Band and Channel selection, 802.11d / country configuration, and Disable / Enable• Wireless Profile – Ability to Enable / Disable Bluetooth module via Profile Manager
Profile APIs
RxLogger•Diagnostic tool for Android
•High level CSV log format with additional “drill down” logs
•Pluggable interface
•Allows for 3rd party development and seamless add-ons
•Flexible configuration
•Configurable through user interface or config xml file for ease of use in single or mass deployments
•Remote log retrieval
•Capability to push logs to a remote FTP server
CROSSPLATFORM?
Based around web technologies- RhoMobile (full web app, JavaScript & Ruby)- PhoneGap (frontend only, JavaScript)
Bringing a different dev.environment to the table:- Xamarin (C#)- Titanium (JavaScript)
Mapping is a comodity Routing is not!
•Robust, reliable, ‘free-to-use’ GPS routing – effective in all mapped locations including those with little or no mobile coverageFast, multi-stop routing optimisation, utilising Motorola Solutions processor capabilities Through SDK customisation, the mobile internet becomes a method of enabling business compliance – For example, monioring Current Location, ETAs and facilitating Job DispatchValidated and compliant with a Motorola Solutions mobile computers running Android/Windows Embedded Handheld OS
Example: CoPilot Professional and Sygic Fleet Navigation
GMS and Google ID
Not always the right solution in an Enterprise:
- Devices could be shared between employee- Need to work in an intranet environment