In their study published in ACM Trans. Softw. Eng. Methodol., researchers Han Hu, Yujin Huang, Qiuyuan Chen, Terry Yue zhuo, and Chunyang Chen explore the factors influencing developers' choices of on-device models for iOS and Android apps. They establish a comprehensive pipeline to analyze how developers replace and share on-device models between the two platforms by examining 62 pairs of iOS-Android apps out of a total of 312. Through manual analysis, they identify 226 on-device models with specific functionalities in the selected iOS apps. The study pipeline involves identifying the functionalities and usage scenarios of on-device models in iOS apps and then attempting to locate similar scenarios in Android counterparts using code analysis techniques. Semantic information such as file names, method names, and user interface elements are also analyzed to infer potential usage scenarios when direct code comparison is not feasible. The researchers validate their findings by running the apps to verify if inferred scenarios align with model functionalities. The study reveals three alternatives for on-device models: utilizing other on-device models for the same task, invoking on-cloud models, or implementing custom obfuscation techniques. Developers may choose to use cloud-based services by pre-configuring SDK libraries in Android apps or resorting to customized DL models when no suitable options are available. Overall, this research sheds light on the complexities involved in selecting on-device models for iOS and Android apps and provides insights into developers' decision-making processes when it comes to leveraging deep learning frameworks for mobile applications.
- - Researchers explore factors influencing developers' choices of on-device models for iOS and Android apps
- - Study involves analyzing 62 pairs of iOS-Android apps out of a total of 312
- - Identify 226 on-device models with specific functionalities in selected iOS apps
- - Pipeline includes identifying functionalities and usage scenarios in iOS apps, then locating similar scenarios in Android counterparts using code analysis techniques
- - Semantic information like file names, method names, and user interface elements used to infer potential usage scenarios
- - Findings validated by running apps to verify inferred scenarios align with model functionalities
- - Three alternatives for on-device models: utilizing other on-device models, invoking on-cloud models, or implementing custom obfuscation techniques
- - Developers may use cloud-based services by pre-configuring SDK libraries or resorting to customized DL models when no suitable options are available
SummaryResearchers are studying why developers choose certain models for apps on iPhones and Android phones. They looked at 62 pairs of apps out of a total of 312. They found 226 different models in iPhone apps with specific functions. They compared iPhone and Android apps to see how they are similar using code analysis. Information like file names, method names, and how the app looks can help figure out how the models are used.
Definitions- Researchers: People who study and learn new things.
- Models: Tools or programs that help make apps work better.
- iOS: The operating system used in iPhones.
- Android: The operating system used in many other smartphones.
- Functionalities: Different things a model can do.
- Pipeline: A series of steps taken to complete a task.
- Semantic information: Details about how words or symbols are used to convey meaning.
- Code analysis techniques: Ways to examine and understand computer programming code.
- On-device models: Models that work directly on the phone without needing internet connection.
- Cloud models: Models that need an internet connection to work.
- Obfuscation techniques: Methods used to hide or protect code from being easily understood by others.
- SDK libraries: Collections of tools and resources for developers to use in creating apps.
- DL models: Deep learning models, which are advanced types of models used in artificial intelligence.
Introduction
The use of deep learning models has become increasingly prevalent in mobile app development, with developers leveraging these powerful frameworks to enhance the functionality and performance of their apps. However, when it comes to choosing on-device models for iOS and Android apps, developers face a complex decision-making process due to various factors that influence their choices. In their study published in ACM Trans. Softw. Eng. Methodol., researchers Han Hu, Yujin Huang, Qiuyuan Chen, Terry Yue zhuo, and Chunyang Chen explore these factors and provide insights into the decision-making processes of developers.
Background
In recent years, there has been a significant increase in the use of deep learning models for mobile app development due to their ability to perform complex tasks such as image recognition and natural language processing on-device without requiring an internet connection. This not only improves user experience but also addresses privacy concerns by keeping sensitive data within the device.
However, developing on-device models for both iOS and Android platforms can be challenging due to differences in programming languages and frameworks used. As a result, developers often resort to using pre-trained models or cloud-based services instead of creating custom on-device models.
Methodology
To understand how developers choose on-device models for iOS and Android apps, the researchers conducted a comprehensive analysis pipeline involving 62 pairs of iOS-Android apps out of a total of 312 selected apps from different categories such as social media, e-commerce, education etc.
Firstly, they identified 226 on-device models with specific functionalities in the selected iOS apps through manual analysis. Then they attempted to locate similar scenarios in Android counterparts using code analysis techniques such as file names, method names and user interface elements.
Results
The study revealed three alternatives for on-device model selection: utilizing other on-device models for the same task (reusing), invoking cloud-based services (outsourcing) or implementing custom obfuscation techniques (customizing). The researchers found that developers often choose to reuse on-device models for the same task in both iOS and Android apps, indicating a preference for consistency across platforms.
However, when no suitable options are available, developers may resort to outsourcing by pre-configuring SDK libraries in Android apps or implementing custom obfuscation techniques such as renaming methods and variables to hide the model's functionality. This highlights the importance of compatibility and availability of on-device models for both platforms.
The study also revealed that semantic information such as file names, method names, and user interface elements play a crucial role in inferring potential usage scenarios when direct code comparison is not feasible. This further emphasizes the need for clear documentation and naming conventions in deep learning frameworks to aid developers in their decision-making process.
Validation
To validate their findings, the researchers ran the selected apps and verified if inferred scenarios align with model functionalities. They found a high correlation between inferred scenarios and actual model functionalities, confirming the effectiveness of their analysis pipeline.
Conclusion
In conclusion, this research sheds light on the complexities involved in selecting on-device models for iOS and Android apps. It provides valuable insights into developers' decision-making processes when it comes to leveraging deep learning frameworks for mobile applications. The study also highlights the importance of compatibility, availability, and clear documentation of on-device models for both platforms.
Future Directions
This research opens up avenues for future studies exploring other factors that influence developers' choices of on-device models such as performance metrics (e.g., accuracy), cost considerations (e.g., licensing fees), and platform-specific limitations (e.g., memory constraints). Additionally, investigating how these factors vary across different app categories could provide further insights into developer preferences.
Conclusion
The use of deep learning models has become increasingly prevalent in mobile app development due to their ability to perform complex tasks on-device without requiring an internet connection. However, choosing on-device models can be challenging due to various factors influencing developers' decisions. Through their study, Han Hu and colleagues provide valuable insights into these factors and the decision-making processes of developers when it comes to selecting on-device models for iOS and Android apps. This research not only sheds light on the complexities involved but also highlights the need for compatibility, availability, and clear documentation of on-device models for both platforms.