Cross-Platform vs Native: Accessing Hardware Layers in Mobile Apps