The slides are used in ASE 2016 for presentation of paper Taming Android Fragmentation: Characterizing and Detecting Compatibility Issues for Android Apps
Pervaporación, es un proceso de separación con membranas aplicado a mezclas líquidas de compuestos miscibles, en el que a partir de una corriente de alimentación se obtienen dos corrientes líquidas, cada una de ellas más concentrada en sus componentes que la alimentación inicial. Las membranas utilizadas son no porosas. La separación se consigue mediante la aplicación de vacío en el lado de la membrana donde se recoge el permeado en forma de vapor, mientras por el otro lado circula el líquido de alimentación cuya separación se busca. Posteriormente se procede a condensar este vapor, generando como producto un líquido permeado. La pervaporación es una técnica de separación con membranas que consiste en el transporte de manera selectiva a través de una membrana polimérica no porosa desde una fase líquida a una fase gaseosa. El vapor permeado se recolecta como líquido, previa condensación. La pervaporación implica un cambio de fase líquido-vapor que conlleva la necesidad de un aporte de energía suficiente para la vaporización de los compuestos que permean. Este aporte de energía es siempre menor al que habría que aplicar en una operación de destilación, lo que hace que la pervaporación sea ventajosa a la hora de separar disoluciones o mezclas líquidas en las que algunos de los componentes se encuentren en pequeñas proporciones.
En el proyecto se evaluaron distintos materiales poliméricos y se determinaron las condiciones óptimas de operación para obtener la mayor transferencia de materia con la máxima selectividad posible de los compuestos orgánicos volátiles. Para ello se utilizaron sustancias modelo como tolueno, tricloroetileno y limoneno.
Datos de registro de los Jóvenes Investigadores que participaron el Primer Encuentro Internacional de Jóvenes Investigadores de la Comunicación en el Marco del IX Encuentro Latinoamericano de ALAIC
Evaluación de herramientas web 2.0:Estilos de aprendizaje y su aplicación en ...Roger Iván Viera Challe
La presente investigación se centra en la utilización de la tecnología Web 2.0 aplicada a la educación. Para llevarlo a cabo, se realizó un análisis de las herramientas Web 2.0, luego se procedió a diseñar y aplicar, por un lado un instrumento de medición de uso de dichas herramientas, y por otro la aplicación de
un instrumento para el diagnóstico de los estilos de aprendizaje. Luego del análisis estadístico se determinaron las preferencias de uso de estas herramientas en función de cada estilo de aprendizaje. Los resultados obtenidos demuestran la
importancia que dan los usuarios a determinadas herramientas así como la relación con los estilos de aprendizaje, facilitando de esta forma la integración de las
herramientas Web 2.0 en el proceso educativo.
AÑO 2010
Capacitacion Completa Producto y Red, Socios de Amarillas InternetJosé Rodriguez
Un resumen del negocio de Amarillas Internet, lo que se puede ganar tanto por la venta como por la red de mercadeo, si desean saber mas pueden agregarme al skype con la cuenta "NetRevolutions" (Perú), deseas afiliarte gratis: http://marketing.amarillasinternet.com/joserodriguez
OpenMobile ACL bringing Android apps to TIZENRyo Jin
Enable your Android apps on the Tizen platform with OpenMobile Application Compatibility Layer™ (ACL™). With our ACL technology, your Android apps can run seamlessly alongside native Tizen and web apps on any Tizen platform. Getting started is easy, as ACL allows unmodified Android apps to execute on the millions of Tizen devices expected to ship in 2014.
Pervaporación, es un proceso de separación con membranas aplicado a mezclas líquidas de compuestos miscibles, en el que a partir de una corriente de alimentación se obtienen dos corrientes líquidas, cada una de ellas más concentrada en sus componentes que la alimentación inicial. Las membranas utilizadas son no porosas. La separación se consigue mediante la aplicación de vacío en el lado de la membrana donde se recoge el permeado en forma de vapor, mientras por el otro lado circula el líquido de alimentación cuya separación se busca. Posteriormente se procede a condensar este vapor, generando como producto un líquido permeado. La pervaporación es una técnica de separación con membranas que consiste en el transporte de manera selectiva a través de una membrana polimérica no porosa desde una fase líquida a una fase gaseosa. El vapor permeado se recolecta como líquido, previa condensación. La pervaporación implica un cambio de fase líquido-vapor que conlleva la necesidad de un aporte de energía suficiente para la vaporización de los compuestos que permean. Este aporte de energía es siempre menor al que habría que aplicar en una operación de destilación, lo que hace que la pervaporación sea ventajosa a la hora de separar disoluciones o mezclas líquidas en las que algunos de los componentes se encuentren en pequeñas proporciones.
En el proyecto se evaluaron distintos materiales poliméricos y se determinaron las condiciones óptimas de operación para obtener la mayor transferencia de materia con la máxima selectividad posible de los compuestos orgánicos volátiles. Para ello se utilizaron sustancias modelo como tolueno, tricloroetileno y limoneno.
Datos de registro de los Jóvenes Investigadores que participaron el Primer Encuentro Internacional de Jóvenes Investigadores de la Comunicación en el Marco del IX Encuentro Latinoamericano de ALAIC
Evaluación de herramientas web 2.0:Estilos de aprendizaje y su aplicación en ...Roger Iván Viera Challe
La presente investigación se centra en la utilización de la tecnología Web 2.0 aplicada a la educación. Para llevarlo a cabo, se realizó un análisis de las herramientas Web 2.0, luego se procedió a diseñar y aplicar, por un lado un instrumento de medición de uso de dichas herramientas, y por otro la aplicación de
un instrumento para el diagnóstico de los estilos de aprendizaje. Luego del análisis estadístico se determinaron las preferencias de uso de estas herramientas en función de cada estilo de aprendizaje. Los resultados obtenidos demuestran la
importancia que dan los usuarios a determinadas herramientas así como la relación con los estilos de aprendizaje, facilitando de esta forma la integración de las
herramientas Web 2.0 en el proceso educativo.
AÑO 2010
Capacitacion Completa Producto y Red, Socios de Amarillas InternetJosé Rodriguez
Un resumen del negocio de Amarillas Internet, lo que se puede ganar tanto por la venta como por la red de mercadeo, si desean saber mas pueden agregarme al skype con la cuenta "NetRevolutions" (Perú), deseas afiliarte gratis: http://marketing.amarillasinternet.com/joserodriguez
OpenMobile ACL bringing Android apps to TIZENRyo Jin
Enable your Android apps on the Tizen platform with OpenMobile Application Compatibility Layer™ (ACL™). With our ACL technology, your Android apps can run seamlessly alongside native Tizen and web apps on any Tizen platform. Getting started is easy, as ACL allows unmodified Android apps to execute on the millions of Tizen devices expected to ship in 2014.
Learn Android app development in easy stepsMobile Pundits
Mobile Pundits is a leading provider of Outsource Mobile Development & Mobile Testing services. If you are looking for to develop any android application to grow your business fast, kindly visit our official website wwwdotmobilepunditsdotcom
This Edureka Android Interview Questions and Answers tutorial will help you to prepare yourself for Android Interviews. Learn about the most important android interview questions and answers and know what will set you apart in the interview process.
This is the slides for the talk of ICSE 2019 paper "PIVOT: Learning API-Device Correlations to Facilitate Android Compatibility Issue Detection". A link to the paper is available at: http://sccpu2.cse.ust.hk/liliwei/ICSE-main-350-CR.pdf
apidays LIVE Paris - Growing an API Culture by Saul Caganoff & Liz Douglassapidays
apidays LIVE Paris - Responding to the New Normal with APIs for Business, People and Society
December 8, 9 & 10, 2020
Growing an API Culture
Saul Caganoff, Principal at Deloitte Platform Engineering
Liz Douglass, Partner at Deloitte
apidays LIVE Australia 2020 - Growing an API Culture by Liz Douglass & Saul C...apidays
apidays LIVE Australia 2020 - Building Business Ecosystems
Growing Domain APIs - "T'aint what you do..."
Liz Douglass, Partner at Deloitte & Saul Caganoff, Principal at Deloitte
The state-of-the-art in Mobile apps (2013) including platform research, client architectures, decision for mobile strategy, design patterns and case studies.
Growing an API Culture - APIdays LIVE AU 2020Saul Caganoff
Liz Douglass & Saul Caganoff share their experience with problems and anti-patterns in enterprise integration and APIs. They propose a model to overcome these issues through product orientation.
Top 12 Reasons You Should Invest in Android App Development.pptxBytes Technolab Inc.
Android is the world’s most popular mobile operating system, with over 2.5 billion active devices in use worldwide. This makes it an attractive platform for app developers looking to reach a large audience. Millions of business owners have opted for Android app development services or they simply hire Android app developers to build their next app
Similar to ASE 2016 Taming Android Fragmentation: Characterizing and Detecting Compatibility Issues for Android Apps (20)
Top 12 Reasons You Should Invest in Android App Development.pptx
ASE 2016 Taming Android Fragmentation: Characterizing and Detecting Compatibility Issues for Android Apps
1. Taming Android Fragmentation:
Characterizing and Detecting Compatibility
Issues for Android Apps
Lili Wei Yepang Liu
This
image
canno
t
curre
S.C. Cheung
The Hong Kong University of Science and Technology
05 September 2016
2. Android: Popular and Fast-Evolving System
• Fast-evolving: multiple releases every year
2
3. 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
9. Ensuring App Compatibility Is Difficult
• App developers have
to optimize UI of their
apps to fit diversified
screen sizes
6
10. Ensuring App Compatibility is Difficult
• App developers have
to optimize UI of their
apps to fit diversified
screen sizes
• An app behaves
differently across
devices
6http://gameovenstudios.com/bounden-on-android-delayed/
11. Ensuring App Compatibility is Difficult
• App developers have
to optimize UI of their
apps to fit diversified
screen sizes
• An app behaves
differently across
devices
6
Fragmentation-induced compatibility issues
http://gameovenstudios.com/bounden-on-android-delayed/
12. Testing Compatibility Issues
• To fully test compatibility issues is difficult with
huge search space
• Combination of three dimensions
7
13. Testing Compatibility Issues
• To fully test compatibility issues is difficult with
huge search space
• Combination of three dimensions
7
Device Model
14. Testing Compatibility Issues
• To fully test compatibility issues is difficult with
huge search space
• Combination of three dimensions
7
APILevel
Device Model
15. Testing Compatibility Issues
• To fully test compatibility issues is difficult with
huge search space
• Combination of three dimensions
7
APILevel
Device Model
17. 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
18. 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]
21. 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
22. 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
24. 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
25. Keyword Search
device compatible compatibility samsung
lge sony moto lenovo
asus zte google htc
huawei xiaomi android.os.build
11
26. 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
27. 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;
28. 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
29. 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
30. 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
31. 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
32. 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
37. 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
39. Device-Specific Issues
• Problematic driver implementation
• Different driver implementation can cause
inconsistent app behavior across devices.
17
40. 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 thus
cause compatibility issues
17
41. 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 thus
cause compatibility issues
• Hardware composition
• Diversified hardware composition of different device
models can cause compatibility issues
17
42. 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
45. 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.
46. 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.
47. 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.
48. 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.
55. 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
57. Non-Device-Specific Issues
• Android platform API evolution
• Evolving Android system with API introduction,
deprecation and behavior modification causes
compatibility issues
23
58. Non-Device-Specific Issues
• Android platform API evolution
• Evolving Android system with API introduction,
deprecation and behavior modification causes
compatibility issues
• Original Android system bugs
• Bugs in the system got fixed in newer version while
still existing in older versions can cause
compatibility issues.
23
64. 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
65. RQ2: Issue Fixing
• Common patching patterns
• Check device information (71.7%)
28
66. RQ2: Issue Fixing
• Common patching patterns
• Check device information (71.7%)
• Check availability of software and hardware
components (7.3%)
28
67. RQ2: Issue Fixing
• Common patching patterns
• Check device information (71.7%)
• Check availability of software and hardware
components (7.3%)
• App-specific workarounds
28
68. RQ2: Issue Fixing
• Common patching patterns
• Check device information (71.7%)
• Check availability of software and hardware
components (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
69. Applications of the Empirical Findings
• Prioritize testing efforts
APILevel
Device Model
29
73. 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)
74. 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
75. 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
76. 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"
79. 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 pairs
33
Analysis
Report
80. 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"
81. 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
96. Effectiveness of FicFinder
• Configure FicFinder to report both warnings
and good practices
• FicFinder reported 51 warnings and 79 good
practices
36
97. Effectiveness of FicFinder
• Configure FicFinder to report both warnings
and good practices
• FicFinder reported 51 warnings and 79 good
practices
46 of the 51 warnings are true positives
(Precision: 90.2%)
36
98. 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
99. 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
100. Usefulness of FicFinder
• Knowledge of API-context pairs extracted from
our empirical study can be transferred across
different apps
38
AnySoftKeyboard Issue 639:
Rule originally extracted from K9 Mail
K9 Mail Issue 1237:
Rule originally extracted from CSipSimple
101. Usefulness of FicFinder
• 4 of the 5 fixed issues were fixed by adopting
our 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
102. Usefulness of FicFinder
• 4 of the 5 fixed issues were fixed by adopting
our 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
103. Conclusion
• First large-scale empirical study of Android
compatibility issues at code level
• API-context pair to model compatibility issues
• A static analysis tool, FicFinder, to detect
fragmentation-induced compatibility issues
40
104. Future Work
• Automate API-context pair extraction
• Continue to improve the effectiveness of
FicFinder
41
105. Thank you!
More information can be found in our paper
Or visit FicFinder’s homepage:
http://sccpu2.cse.ust.hk/ficfinder/
41