Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0...
Transcript of Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0...
![Page 1: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/1.jpg)
Taming Android Fragmentation: Characterizing and Detecting Compatibility
Issues for Android Apps
Lili Wei Yepang Liu S.C. Cheung
The Hong Kong University of Science and Technology
05 September 2016
![Page 2: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/2.jpg)
Android: Popular and Fast-Evolving System
• Fast-evolving: multiple releases every year
2
![Page 3: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/3.jpg)
Android: Popular and Fast-Evolving System
• Fast-evolving: multiple releases every year
• Many different system versions in use:
2
KitKat
Lollipop
Jelly Bean
Ice Cream Sandwich
Gingerbread
Froyo
Marshmallow
https://developer.android.com/about/dashboards/index.html
![Page 4: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/4.jpg)
3
![Page 5: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/5.jpg)
Huge Number of Device Models
Over 24,000 distinct device models
(Aug. 2014 – Aug.2015)
http://opensignal.com/reports/2015/08/android-fragmentation/ 4
![Page 6: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/6.jpg)
Fragmented Android Ecosystem
5
![Page 7: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/7.jpg)
Fragmented Android Ecosystem
5
![Page 8: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/8.jpg)
Fragmented Android Ecosystem
5
![Page 9: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/9.jpg)
Ensuring App Compatibility Is Difficult
• App developers haveto optimize UI of theirapps to fit diversifiedscreen sizes
6
![Page 10: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/10.jpg)
Ensuring App Compatibility is Difficult
• App developers haveto optimize UI of theirapps to fit diversifiedscreen sizes
• An app behavesdifferently acrossdevices
6http://gameovenstudios.com/bounden-on-android-delayed/
![Page 11: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/11.jpg)
Ensuring App Compatibility is Difficult
• App developers haveto optimize UI of theirapps to fit diversifiedscreen sizes
• An app behavesdifferently acrossdevices
6
Fragmentation-induced compatibility issues
http://gameovenstudios.com/bounden-on-android-delayed/
![Page 12: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/12.jpg)
Testing Compatibility Issues
• To fully test compatibility issues is difficult withhuge search space• Combination of three dimensions
7
Device Model
![Page 13: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/13.jpg)
Testing Compatibility Issues
• To fully test compatibility issues is difficult withhuge search space• Combination of three dimensions
7
AP
IL
eve
l
Device Model
![Page 14: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/14.jpg)
Testing Compatibility Issues
• To fully test compatibility issues is difficult withhuge search space• Combination of three dimensions
7
AP
IL
eve
l
Device Model
![Page 15: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/15.jpg)
AP
IL
eve
l
Device Model
Testing Compatibility Issues
• To fully test compatibility issues is difficult withhuge search space• Combination of three dimensions
7
![Page 16: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/16.jpg)
Existing Work
• Understanding Android fragmentation• D. Han et al. [WCRE’ 2012]
• T. McDonnell et al. [ICSM’ 2013]
• Prioritize devices to test on:• H. Khalid et al. [FSE’ 2014]
• X. Lu et al. [ICSE’ 2016]
8
![Page 17: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/17.jpg)
Existing Work
8
None of the existing studies dug into the code level:
• To understand compatibility issues
• To detect compatibility issues
• Understanding Android fragmentation• D. Han et al. [WCRE’ 2012]
• T. McDonnell et al. [ICSM’ 2013]
• Prioritize devices to test on:• H. Khalid et al. [FSE’ 2014]
• X. Lu et al. [ICSE’ 2016]
![Page 18: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/18.jpg)
Our Goal
Understand compatibility
issues at code level
9
![Page 19: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/19.jpg)
Our Goal
Understand compatibility
issues at code levelDetect compatibility
issues
9
![Page 20: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/20.jpg)
Research Questions
• RQ1: Issue type and root cause• What are the common types of compatibility issues
in Android apps? What are their root causes?
9
![Page 21: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/21.jpg)
Research Questions
• RQ1: Issue type and root cause• What are the common types of compatibility issues
in Android apps? What are their root causes?
• RQ2: Issue fixing• How do Android developers fix compatibility issues
in practice? Are there any common patterns?
9
![Page 22: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/22.jpg)
Dataset Collection
27 popular, large-scale, well-maintained candidate
apps, which have public issue tracking systems
10
![Page 23: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/23.jpg)
Dataset Collection
27 popular, large-scale, well-maintained candidate
apps, which have public issue tracking systems
10
Apps satisfying these criterion are:
• More likely to be affected by different kinds of
compatibility issues
• With traceable issue fix and discussions to study
![Page 24: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/24.jpg)
Keyword Search
device compatible compatibility samsung
lge sony moto lenovo
asus zte google htc
huawei xiaomi android.os.build
11
![Page 25: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/25.jpg)
VLC r-8e31d57:
Blind fix for mountpoint issues with some Samsung devices
if(line.contains("vfat") || line.contains("exfat") ||
- line.contains("/mnt") || line.contains("/Removable")) {
+ line.contains("sdcardfs") || line.contains("/mnt") ||
+ line.contains("/Removable")) {
Keyword Search
device compatible compatibility samsung
lge sony moto lenovo
asus zte google htc
huawei xiaomi android.os.build
11
![Page 26: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/26.jpg)
VLC r-8e31d57:
Blind fix for mountpoint issues with some Samsung devices
if(line.contains("vfat") || line.contains("exfat") ||
- line.contains("/mnt") || line.contains("/Removable")) {
+ line.contains("sdcardfs") || line.contains("/mnt") ||
+ line.contains("/Removable")) {
Keyword Search
device compatible compatibility samsung
lge sony moto lenovo
asus zte google htc
huawei xiaomi android.os.build
11
CSipSimple r-af0ceea:
Fixes issue 498.
+ //HTC evo 4G
+ if(android.os.Build.PRODUCT.equalsIgnoreCase("htc_supersonic"))
+ return true;
![Page 27: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/27.jpg)
Dataset Collection
12
27 popular, large-scale, well-maintained candidate
apps, which have public issue tracking systems
All 27 apps contain potential revisions related to
compatibility issues
![Page 28: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/28.jpg)
Dataset Collection
Five apps with top number of potential issue-related code
revisions
12
27 popular, large-scale, well-maintained candidate
apps, which have public issue tracking systems
![Page 29: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/29.jpg)
Dataset Collection
Five apps with top number of potential issue-related code
revisions
12
Over 1800 code revisions found in the five apps need to
be manually inspected
27 popular, large-scale, well-maintained candidate
apps, which have public issue tracking systems
![Page 30: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/30.jpg)
Dataset Collection
191 compatibility issues
Five apps with top number of potential issue-related code
revisions (>1800 revisions)
12
27 popular, large-scale, well-maintained candidate
apps, which have public issue tracking systems
![Page 31: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/31.jpg)
Selected Apps
App Name Category Rating Downloads KLOC #Revisions
CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778
AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282
K-9 Mail Communication 4.3/5.0 5M - 10M 86.7 6,116
VLC Media & Video 4.3/5.0 10M - 50M 28.3 6,868
AnySoftKeyboard Tools 4.3/5.0 1M - 5M 70.7 2,788
13
![Page 32: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/32.jpg)
Data Analysis
API
Identified the
issue-inducing
APIs
14
![Page 33: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/33.jpg)
Data Analysis
API
Identified the
issue-inducing
APIs
Recovered links
between revisions
and reports
14
![Page 34: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/34.jpg)
Data Analysis
API
Identified the
issue-inducing
APIs
Recovered links
between revisions
and reports
Collected related
discussions from
online forums
14
![Page 35: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/35.jpg)
RQ1: Issue Type and Root Cause
15
![Page 36: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/36.jpg)
RQ1: Issue Type and Root Cause
• Device-specific issues• Compatibility issues can only be triggered on
certain device models
• Non-device-specific issue• Compatibility issues can be triggered under certain
API level independent from device model
15
![Page 37: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/37.jpg)
RQ1: Issue Type and Root Cause
15
59%41%
Device-specific issues
Can only be triggered on
certain device models
Non-device-specific issues
Can be triggered under
certain API level
![Page 38: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/38.jpg)
Device-Specific Issue
16
Device-specific Issue59%
Driver
Implementation
29%
OS Customization
19%
Hardware Composition
11%
![Page 39: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/39.jpg)
Device-Specific Issues
• Problematic driver implementation• Different driver implementation can cause
inconsistent app behavior across devices.
17
![Page 40: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/40.jpg)
Device-Specific Issues
• Problematic driver implementation• Different driver implementation can cause
inconsistent app behavior across devices.
• OS customization• Manufacturer-customized systems may not fully
comply with the official specifications and thuscause compatibility issues
17
![Page 41: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/41.jpg)
Device-Specific Issues
• Problematic driver implementation• Different driver implementation can cause
inconsistent app behavior across devices.
• OS customization• Manufacturer-customized systems may not fully
comply with the official specifications and thuscause compatibility issues
• Hardware composition• Diversified hardware composition of different device
models can cause compatibility issues
17
![Page 42: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/42.jpg)
Device-Specific Issues
• Problematic driver implementation• Different driver implementation can cause
inconsistent app behavior across devices.
Proximity sensor: Report the distance
between device and its surrounding object
18
![Page 43: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/43.jpg)
Device-Specific Issues
19
CSipSimple:
An Android client app for internet calls
Proximity sensor in CSipSimple:
Used to detect the distance between user’s face and the
device.
![Page 44: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/44.jpg)
Device-Specific Issues
19
Near
CSipSimple:
An Android client app for internet calls
Proximity sensor in CSipSimple:
Used to detect the distance between user’s face and the
device.
![Page 45: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/45.jpg)
Device-Specific Issues
CSipSimple issue 353:Samsung SPH-M900’s proximity sensor API reports a value
inversely proportional to the real distance
19
CSipSimple:
An Android client app for internet calls
Proximity sensor in CSipSimple:
Used to detect the distance between user’s face and the
device.
![Page 46: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/46.jpg)
Device-Specific Issues
CSipSimple issue 353:Samsung SPH-M900’s proximity sensor API reports a value
inversely proportional to the real distance
19
CSipSimple:
An Android client app for internet calls
Proximity sensor in CSipSimple:
Used to detect the distance between user’s face and the
device.
![Page 47: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/47.jpg)
Device-Specific Issues
CSipSimple issue 353:Samsung SPH-M900’s proximity sensor API reports a value
inversely proportional to the real distance
19
CSipSimple:
An Android client app for internet calls
Proximity sensor in CSipSimple:
Used to detect the distance between user’s face and the
device.
![Page 48: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/48.jpg)
Device-Specific Issues
CSipSimple issue 353:Samsung SPH-M900’s proximity sensor API reports a value
inversely proportional to the real distance
19
CSipSimple:
An Android client app for internet calls
Proximity sensor in CSipSimple:
Used to detect the distance between user’s face and the
device.
![Page 49: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/49.jpg)
Device-Specific Issues
• Peculiar hardware composition
SD card variations
20
![Page 50: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/50.jpg)
Device-Specific Issues
• Peculiar hardware composition
SD card variations
20
![Page 51: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/51.jpg)
Device-Specific Issues
• Peculiar hardware composition
SD card variations
20
![Page 52: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/52.jpg)
Device-Specific Issues
• Peculiar hardware composition
SD card variations
20
![Page 53: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/53.jpg)
Device-Specific Issues
• Peculiar hardware composition
SD card variations
Mount points vary across devices20
![Page 54: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/54.jpg)
Device-Specific Issues
VLC:
A popular Android video player
21
SD card in VLC:
VLC can play videos stored in the SD card
![Page 55: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/55.jpg)
Device-Specific Issues
VLC:
A popular Android video player
21
SD card in VLC:
VLC can play videos stored in the SD card
VLC specifically handle the SD card variations to
ensure support of different device models
![Page 56: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/56.jpg)
Non-Device-Specific Issue
22
Non-Device-Specific
Issue41%
API Evolution
35%
Original
System Bug
6%
![Page 57: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/57.jpg)
Non-Device-Specific Issues
• Android platform API evolution• Evolving Android system with API introduction,
deprecation and behavior modification causescompatibility issues
23
![Page 58: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/58.jpg)
Non-Device-Specific Issues
• Android platform API evolution• Evolving Android system with API introduction,
deprecation and behavior modification causescompatibility issues
• Original Android system bugs• Bugs in the system got fixed in newer version while
still existing in older versions can causecompatibility issues.
23
![Page 59: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/59.jpg)
Non-Device-Specific Issues
AnkiDroid pull request 130
24
API (Added in API Level 16):SQLiteDatabase.disableWriteAheadLogging()
![Page 60: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/60.jpg)
Non-Device-Specific Issues
AnkiDroid pull request 130
24
API (Added in API Level 16):SQLiteDatabase.disableWriteAheadLogging()
API Level
< 16
![Page 61: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/61.jpg)
Non-Device-Specific Issues
AnkiDroid pull request 130
24
API (Added in API Level 16):SQLiteDatabase.disableWriteAheadLogging()
API Level
< 16
![Page 62: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/62.jpg)
RQ2: Issue Fixing
• Patch Complexity
• Common Patching Patterns
25
![Page 63: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/63.jpg)
RQ2: Issue Fixing
• Patch Complexity• Simple
• Small
26
if (android.os.Build.VERSION.SDK_INT >= 16) {
sqLiteDatabase.disableWriteAheadLogging();
}
1. +
2.
3. +
![Page 64: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/64.jpg)
RQ2: Issue Fixing
• Patch Complexity• To debug and find a valid fix is not easy
CSipSimple issue 2436:
“HTC has closed source this contact/call log app
which makes things almost impossible to debug for
me."
27
![Page 65: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/65.jpg)
RQ2: Issue Fixing
• Common patching patterns• Check device information (71.7%)
28
![Page 66: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/66.jpg)
RQ2: Issue Fixing
• Common patching patterns• Check device information (71.7%)
• Check availability of software and hardwarecomponents (7.3%)
28
![Page 67: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/67.jpg)
RQ2: Issue Fixing
• Common patching patterns• Check device information (71.7%)
• Check availability of software and hardwarecomponents (7.3%)
• App-specific workarounds
28
![Page 68: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/68.jpg)
RQ2: Issue Fixing
• Common patching patterns• Check device information (71.7%)
• Check availability of software and hardwarecomponents (7.3%)
• App-specific workarounds
Locating the root cause of compatibility issues is
difficult. Whereas, issue fixes are usually simple
and demonstrate common patterns.
28
![Page 69: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/69.jpg)
Applications of the Empirical Findings
• Prioritize testing efforts
AP
IL
eve
l
Device Model
29
![Page 70: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/70.jpg)
AP
IL
eve
l
Device Model
Applications of the Empirical Findings
• Prioritize testing efforts
Driv
er-re
late
dA
PI
29
![Page 71: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/71.jpg)
AP
IL
eve
l
Device Model
Applications of the Empirical Findings
• Prioritize testing efforts
Driv
er-re
late
dA
PI
29
![Page 72: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/72.jpg)
AP
IL
eve
l
Device Model
Applications of the Empirical Findings
• Detect compatibility issues
30
![Page 73: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/73.jpg)
API-Context Pair Model
• Common compatibility issue pattern
31
Compatibility issues are triggered by the improper
use of an Android API (issue-inducing API) in a
problematic software or hardware environment
(issue-triggering context)
![Page 74: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/74.jpg)
API-Context Pair Model
• Common compatibility issue pattern
32
API-Context Pair Model:
Each pattern of compatibility issue is modeled as a pair
of issue-inducing API and issue-triggering context
![Page 75: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/75.jpg)
API-Context Pair Model
• Common compatibility issue pattern
32
Context: conjunction of device model, device brand or
API level, etc.
API-Context Pair Model:
Each pattern of compatibility issue is modeled as a pair
of issue-inducing API and issue-triggering context
![Page 76: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/76.jpg)
API-Context Pair Model
• Common compatibility issue pattern
API-Context Pair Model:
Each pattern of compatibility issue is modeled as a pair
of issue-inducing API and issue-triggering context
32
API: SQLiteDatabase.disableWriteAheadLogging()
Context: API_level < 16 ∧ Dev_model != "Nook HD"
![Page 77: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/77.jpg)
FicFinder: Detecting Compatibility Issues
33
FicFinder:
Fragmentation-Induced Compatibility Issue Finder
![Page 78: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/78.jpg)
FicFinder: Detecting Compatibility Issues
Android app
(.apk
or .class)
List of
API-context pairs
33
Analysis
Report
![Page 79: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/79.jpg)
FicFinder: Detecting Compatibility Issues
Android app
(.apk or .class)
List of
API-context pairs
Backward slicing analysis
Implemented on top of Soot
25 selected API-context pairs33
Analysis
Report
![Page 80: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/80.jpg)
Example
34
void disableWAL() {
SQLiteDatabase db = getDatabase();
if (db.inTransaction()) {
db.endTransaction();
}
db.disableWriteAheadLogging();
}
API: SQLiteDatabase.disableWriteAheadLogging()
Context: API_level < 16 ∧ Dev_model != "Nook HD"
![Page 81: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/81.jpg)
Example
void disableWAL() {
SQLiteDatabase db = getDatabase();
if (db.inTransaction()) {
db.endTransaction();
}
db.disableWriteAheadLogging();
}
API: SQLiteDatabase.disableWriteAheadLogging()
Context: API_level < 16 ∧ Dev_model != "Nook HD"34
![Page 82: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/82.jpg)
Example
void disableWAL() {
SQLiteDatabase db = getDatabase();
if (db.inTransaction()) {
db.endTransaction();
}
db.disableWriteAheadLogging();
}
AndroidManifest.xml<uses-sdk
android:minSdkVersion="15"
/>
API: SQLiteDatabase.disableWriteAheadLogging()
Context: API_level < 16 ∧ Dev_model != "Nook HD"34
![Page 83: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/83.jpg)
Example
void disableWAL() {
SQLiteDatabase db = getDatabase();
if (db.inTransaction()) {
db.endTransaction();
}
db.disableWriteAheadLogging();
}
AndroidManifest.xml<uses-sdk
android:minSdkVersion="15"
/>
API: SQLiteDatabase.disableWriteAheadLogging()
Context: API_level < 16 ∧ Dev_model != "Nook HD"
Slice:
db.disableWriteAheadLogging()
34
![Page 84: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/84.jpg)
Example
void disableWAL() {
SQLiteDatabase db = getDatabase();
if (db.inTransaction()) {
db.endTransaction();
}
db.disableWriteAheadLogging();
}
AndroidManifest.xml<uses-sdk
android:minSdkVersion="15"
/>
API: SQLiteDatabase.disableWriteAheadLogging()
Context: API_level < 16 ∧ Dev_model != "Nook HD"
Slice:
db.disableWriteAheadLogging()
34
![Page 85: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/85.jpg)
Example
void disableWAL() {
SQLiteDatabase db = getDatabase();
if (db.inTransaction()) {
db.endTransaction();
}
db.disableWriteAheadLogging();
}
AndroidManifest.xml<uses-sdk
android:minSdkVersion="15"
/>
API: SQLiteDatabase.disableWriteAheadLogging()
Context: API_level < 16 ∧ Dev_model != "Nook HD"
Slice:
db.disableWriteAheadLogging()
34
![Page 86: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/86.jpg)
Example
void disableWAL() {
SQLiteDatabase db = getDatabase();
if (db.inTransaction()) {
db.endTransaction();
}
db.disableWriteAheadLogging();
}
AndroidManifest.xml<uses-sdk
android:minSdkVersion="15"
/>
API: SQLiteDatabase.disableWriteAheadLogging()
Context: API_level < 16 ∧ Dev_model != "Nook HD"
Slice:
db.disableWriteAheadLogging()
34
![Page 87: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/87.jpg)
Example
void disableWAL() {
SQLiteDatabase db = getDatabase();
if (db.inTransaction()) {
db.endTransaction();
}
db.disableWriteAheadLogging();
}
AndroidManifest.xml<uses-sdk
android:minSdkVersion="15"
/>
API: SQLiteDatabase.disableWriteAheadLogging()
Context: API_level < 16 ∧ Dev_model != "Nook HD"
Slice:
db.disableWriteAheadLogging()
SQLiteDatabase db = getDatabase()
34
![Page 88: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/88.jpg)
Example
void disableWAL() {
SQLiteDatabase db = getDatabase();
if (db.inTransaction()) {
db.endTransaction();
}
db.disableWriteAheadLogging();
}
AndroidManifest.xml<uses-sdk
android:minSdkVersion="15"
/>
API: SQLiteDatabase.disableWriteAheadLogging()
Context: API_level < 16 ∧ Dev_model != "Nook HD"
Slice:
db.disableWriteAheadLogging()
SQLiteDatabase db = getDatabase()
34
![Page 89: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/89.jpg)
Example
void disableWAL() {
SQLiteDatabase db = getDatabase();
if (db.inTransaction()) {
db.endTransaction();
}
if (isJellyBeanOrLater() || isNookHD) {
db.disableWriteAheadLogging();
}
}
AndroidManifest.xml<uses-sdk
android:minSdkVersion="15"
/>
boolean isJellyBeanOrLater() {
return android.os.Build.SDK_VERSION >= 16;
}
boolean isNookHD {
return android.os.Build.BRAND.equals("NOOK")
&& android.os.Build.PRODUCT.equals("HDplus")
&& android.os.Build.DEVICE.equals("ovation");
}
API: SQLiteDatabase.disableWriteAheadLogging()
Context: API_level < 16 ∧ Dev_model != "Nook HD"
Slice:
db.disableWriteAheadLogging()
SQLiteDatabase db = getDatabase()
34
![Page 90: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/90.jpg)
void disableWAL() {
SQLiteDatabase db = getDatabase();
if (db.inTransaction()) {
db.endTransaction();
}
if (isJellyBeanOrLater() || isNookHD) {db.disableWriteAheadLogging();
}
}
Example
AndroidManifest.xml<uses-sdk
android:minSdkVersion="15"
/>
boolean isJellyBeanOrLater() {
return android.os.Build.SDK_VERSION >= 16;
}
boolean isNookHD {
return android.os.Build.BRAND.equals("NOOK")
&& android.os.Build.PRODUCT.equals("HDplus")
&& android.os.Build.DEVICE.equals("ovation");
}
API: SQLiteDatabase.disableWriteAheadLogging()
Context: API_level < 16 ∧ Dev_model != "Nook HD"
Slice:
db.disableWriteAheadLogging()
SQLiteDatabase db = getDatabase()
if(isJellyBeanOrLater()||isNookHD)
34
![Page 91: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/91.jpg)
void disableWAL() {
SQLiteDatabase db = getDatabase();
if (db.inTransaction()) {
db.endTransaction();
}
if (isJellyBeanOrLater() || isNookHD) {db.disableWriteAheadLogging();
}
}
Example
API: SQLiteDatabase.disableWriteAheadLogging()
Context: API_level < 16 ∧ Dev_model != "Nook HD"
AndroidManifest.xml<uses-sdk
android:minSdkVersion="15"
/>
Slice:
db.disableWriteAheadLogging()
SQLiteDatabase db = getDatabase()
if(isJellyBeanOrLater()||isNookHD)
return android.os.Build.SDK_VERSION >=
16
return
android.os.Build.BRAND.equals("NOOK")&&
android.os.Build.PRODUCT.equals("HDplus")
&&android.os.Build.DEVICE.equals("ovation")
boolean isJellyBeanOrLater() {
return android.os.Build.SDK_VERSION >= 16;
}
boolean isNookHD {
return android.os.Build.BRAND.equals("NOOK")
&& android.os.Build.PRODUCT.equals("HDplus")
&& android.os.Build.DEVICE.equals("ovation");
}
34
![Page 92: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/92.jpg)
void disableWAL() {
SQLiteDatabase db = getDatabase();
if (db.inTransaction()) {
db.endTransaction();
}
if (isJellyBeanOrLater() || isNookHD) {db.disableWriteAheadLogging();
}
}
Example
API: SQLiteDatabase.disableWriteAheadLogging()
Context: API_level < 16 ∧ Dev_model != "Nook HD"
AndroidManifest.xml<uses-sdk
android:minSdkVersion="15"
/>
Slice:
db.disableWriteAheadLogging()
SQLiteDatabase db = getDatabase()
if(isJellyBeanOrLater()||isNookHD)
return android.os.Build.SDK_VERSION >=
16
return
android.os.Build.BRAND.equals("NOOK")
&&android.os.Build.PRODUCT.equals("HD
plus")&&android.os.Build.DEVICE.equals(
"ovation")
boolean isJellyBeanOrLater() {
return android.os.Build.SDK_VERSION >= 16;
}
boolean isNookHD {
return android.os.Build.BRAND.equals("NOOK")
&& android.os.Build.PRODUCT.equals("HDplus")
&& android.os.Build.DEVICE.equals("ovation");
}
34
![Page 93: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/93.jpg)
void disableWAL() {
SQLiteDatabase db = getDatabase();
if (db.inTransaction()) {
db.endTransaction();
}
if (isJellyBeanOrLater() || isNookHD) {db.disableWriteAheadLogging();
}
}
Example
API: SQLiteDatabase.disableWriteAheadLogging()
Context: API_level < 16 ∧ Dev_model != "Nook HD"
AndroidManifest.xml<uses-sdk
android:minSdkVersion="15"
/>
Slice:
db.disableWriteAheadLogging()
SQLiteDatabase db = getDatabase()
if(isJellyBeanOrLater()||isNookHD)
return android.os.Build.SDK_VERSION >=
16
return
android.os.Build.BRAND.equals("NOOK")
&&android.os.Build.PRODUCT.equals("HD
plus")&&android.os.Build.DEVICE.equals(
"ovation")
boolean isJellyBeanOrLater() {
return android.os.Build.SDK_VERSION >= 16;
}
boolean isNookHD {
return android.os.Build.BRAND.equals("NOOK")
&& android.os.Build.PRODUCT.equals("HDplus")
&& android.os.Build.DEVICE.equals("ovation");
}
34
![Page 94: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/94.jpg)
Evaluation
• Subject apps: latest version of 27 popular,actively-maintained Android apps• Covering 10 different categories
• At least 5K downloads
App name Category KLOC Rating Downloads
ConnectBot Communication 23.0 4.6 1M – 5M
AntennaPod Media & Video 65.0 4.5 100K – 500K
c:geo Entertainment 78.8 4.4 1M – 5M
AnySoftKeyboard Tools 70.7 4.4 1M – 5M
… … … … …
35
![Page 95: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/95.jpg)
Effectiveness of FicFinder
• Configure FicFinder to report both warningsand good practices
36
![Page 96: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/96.jpg)
Effectiveness of FicFinder
• Configure FicFinder to report both warningsand good practices
• FicFinder reported 51 warnings and 79 goodpractices
36
![Page 97: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/97.jpg)
Effectiveness of FicFinder
• Configure FicFinder to report both warningsand good practices
• FicFinder reported 51 warnings and 79 goodpractices
46 of the 51 warnings are true positives
(Precision: 90.2%)
36
![Page 98: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/98.jpg)
Effectiveness of FicFinder
• Submitted 14 bug reports• Bug reports included issue-related discussions,
API guides and possible fixes in the bug reports to help developers diagnose the issues
37
![Page 99: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/99.jpg)
Effectiveness of FicFinder
• Submitted 14 bug reports• Bug reports included issue-related discussions,
API guides and possible fixes in the bug reports to help developers diagnose the issues
8 of the 14 bug reports were
acknowledged by app developers.
5 issues were quickly fixed.
37
![Page 100: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/100.jpg)
Usefulness of FicFinder
• Knowledge of API-context pairs extracted fromour empirical study can be transferred acrossdifferent apps
38
AnySoftKeyboard Issue 639:
Rule originally extracted from K9 Mail
K9 Mail Issue 1237:
Rule originally extracted from CSipSimple
![Page 101: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/101.jpg)
Usefulness of FicFinder
• 4 of the 5 fixed issues were fixed by adoptingour suggested fixes.
Thanks, we will do it as you proposed in out next
release. :)
Please let us know if you found more of these issues.
iSsO (1Sheeld developer)
39
![Page 102: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/102.jpg)
Usefulness of FicFinder
• 4 of the 5 fixed issues were fixed by adoptingour suggested fixes.
• The other issue was fixed with an alternative patch, which was semantically equivalent to our suggested one.
Thanks, we will do it as you proposed in out next
release. :)
Please let us know if you found more of these issues.
iSsO (1Sheeld developer)
39
![Page 103: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/103.jpg)
Conclusion
• First large-scale empirical study of Androidcompatibility issues at code level
• API-context pair to model compatibility issues
• A static analysis tool, FicFinder, to detectfragmentation-induced compatibility issues
40
![Page 104: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/104.jpg)
Future Work
• Automate API-context pair extraction
• Continue to improve the effectiveness ofFicFinder
41
![Page 105: Taming Android Fragmentation: Characterizing and Detecting ... · CSipSimple Communication 4.3/5.0 1M - 5M 59.2 1,778 AnkiDroid Education 4.5/5.0 1M - 5M 58.1 8,282 K-9 Mail Communication](https://reader034.fdocuments.us/reader034/viewer/2022051807/600601d5e87d30056609a6ff/html5/thumbnails/105.jpg)
Thank you!More information can be found in our paper
Or visit FicFinder’s homepage:
http://sccpu2.cse.ust.hk/ficfinder/
41