Amarula Solutions development team has been living in Android world for many years knowing its details and history, providing solutions within both Android systems and Android applications.
One of Android’s success factor is its openness. The majority of the Android software is licensed with Apache 2.0. Android has taken Linux as its kernel because of Linux’s well known models in security, process and memory management, drivers and protocol stacks. Between the kernel and the application layer, Android designed a complete mobile software stack taking advantages from well known projects out of the open source ecosystem. This approach enabled a fast growth of Android covering the whole set of functionalities exposed by a modern mobile device.
Our portfolio of successful customizations project of the Android platform enables us to adopt the better strategy tailored on your specific needs, lowering development costs and offering you robust and effective solutions.
In short, we are able to guide you both in hardware and/or software designing to guarantee that the final target can take complete advantage of this powerful OS.
Examples of possibilities
- Developing of customer specific functionalities of applications
- Developing of native libraries due to Android framework lacks
- Guidance in hardware development to ensure hardware (components) will work with Android
- Android bring up on a newly designed target
- Migration from an unwanted OS to Android
- Optimization of Android subsystems
Components integration within Android
We can provide full stack from low level parts in native C/C++, mapping via JNI up to java interfaces ready to be used by external Android applications. We can wrap any custom HW component protocol into android way of communication.
We choose from multiple ways of android inter-process communication in order to fulfill all important requirements on efficiency, maintenance and usage.
Integration can be done either by providing completely new interface or in specific cases can be wrapped into already existing android API. We have experience in fitting very specific NFC HW product into standard Android NFC stack along with NXP and NCI implementation packages.
We follow android compatibility definition whenever possible to retain the system compatible and maintainable. Custom API is provided via additional shared libraries to clearly separate from AOSP API. Compatibility test suite (CTS) has been in the scope of our QA team for many years.
Developers’ code is going hand in hand with unit tests and integration tests using Android test frameworks. All changes in OS can be tested quickly by writing tests of particular code which helps to develop very efficiently.
We are producing android apps on daily basis from most simple test applications for customers’ specific device features to complex applications which we maintain in long term and continuously extend its functionalities. We have years of experience in using many of standard Android features as well as specific ones related only to specific HW:
- Barcode scanning
- Testing integrity of specific Android device
- Providing diagnostic features
- Integration of robotic arm in several Android applications for automated testing of Albert payment terminal
- Detailed NFC testing focused on particular Mifare NFC technologies
- Reading SD cards
- Testing specific modem features
- Testing video and playback features
We have participated on applications published on Google Play:
Android in depth
We are team of developers having insight in Android application as well as in Android operating system. That gives us magnificent advantage in solving particular tasks to fulfill the requirements.
We are experts in Android but we already have experience with cross platform applications thanks to react native framework which is widely used by companies like Facebook to easily support both Android and IPhone devices.
Our development process includes variety of tools integrated together in order to make the final product high quality:
Every code change needs to be approved by the experienced developers. We use powerful Gerrit tool which makes the review process very efficient. Proposed changes are immediately visible to our experts from several countries.
Every code change has to be confirmed by Jenkins server first. We do not risk any compile errors after merging new code. Our scripts are adopted to manage verification of small applications as well as huge multi-projects like Android OS.
Releasing new builds is done via Jenkins build server. We are experienced in making release process straightforward and easy to perform. Our build scripts are adopted to make releases with few clicks in web interface.
We are extending our knowledge base day by day via Confluence tool. All our specific experience is easily accessible in one central place by all developers. It is well organized to find the relevant information quickly.
All our work is tracked in Jira tool which together with our Bitbucket repository provides very efficient way of tasks organization. It can be accessed by our customers to easily track the progress on particular projects. Large projects are managed in smaller sprints. Sprint backlog for each sprint is defined always during a sprint planning session.
Communication between the team members is done via public and private channel in Mattermost tool which provides efficient real-time way to share temporary information.