Addressing Non-Functional Requirements in Mobile Applications
|
|
|
- Alexina Holland
- 10 years ago
- Views:
Transcription
1 Addressing Non-Functional Requirements in Mobile Applications CSE 5236: Mobile Application Development Instructor: Adam C. Champion Course Coordinator: Dr. Rajiv Ramnath 1
2 Outline Non-Functional Requirements Optimize Performance with Profiler Maximize Battery Life Optimize for Responsiveness Improve App Security Testing 2
3 Non-Functional Requirements (NFRs) AKA quality/design requirements Building the app right (as opposed to the right app from functional requirements) Typical NFRs: Performance Availability Scalability Usability Security Modifiability Maintainability and testability Cost (Almost) always involves tradeoffs Some combinations are aligned (e.g. security and availability) 3
4 Key NFRs for Mobile Devices Performance Responsiveness (not the same as performance) Energy (not covered here, see PowerManager class android/os/powermanager.html and monitoring-device-state/index.html ) Security 4
5 Systematic Steps Towards Meeting NFRs Quantify for the app Make appropriate architectural decisions: often pre-determined by the underlying architecture of the implementation framework (e.g., the Android SDK) Optimize tactically based on real measurements 5
6 Architectural Decisions in Tic-Tac-Toe Java reduced cost of development Data storage tactics: Preferences: cost of development SQLite: Reliability, queries faster than inserts suited for login use case. Data transfer in JSON 2-D graphics for speed 6
7 Tactical Optimizations Used in Tic-Tac-Toe Used variables to cache data retrieved from collections (e.g. arrays) Avoided internal use of getters and setters Reduced heap access: avoid creating unnecessary objects (see use of Singleton for X, O and Blank symbols) Used static final for constants (allows inlining of constants) Leveraged optimizations in framework libraries 7
8 Outline Non-Functional Requirements Optimize Performance with Profiler Maximize Battery Life Optimize for Responsiveness Improve App Security Testing 8
9 Optimize Performance Using the Profiler 1. Click Android Device Monitor icon 2. Start the application 3. Navigate to start of profiling scenario 4. Start Method Profiling 5. Execute several profiling scenarios 6. Stop Method Profiling 9
10 Traceview Window Note contribution of Board.onDraw(...) and getbitmapforsymbol(...) 10
11 Board.onDraw()... for(int i = 0; i < GameGrid.SIZE; i++) { for(int j = 0; j < GameGrid.SIZE; j++) { Bitmap symselected = getbitmapforsymbol(grid.getvalueatlocation(i, j)); offsetx = (int)(((width - symselected.getwidth())/2) + (i * width)); offsety = (int)(((height - symselected.getheight())/2) + (j * height)); canvas.drawbitmap(symselected, offsetx, offsety, ditherpaint);... 11
12 Drilling Down into getbitmapforsymbol() public Bitmap getbitmapforsymbol(symbol asymbol){ Resources res = getresources(); Bitmap symx = BitmapFactory.decodeResource(res, R.drawable.x); Bitmap symo = BitmapFactory.decodeResource(res, R.drawable.o); Bitmap symblank = BitmapFactory.decodeResource(res, R.drawable.blank); Bitmap symselected = symblank; if (asymbol == Symbol.SymbolXCreate()) symselected = symx; else if (asymbol == Symbol.SymbolOCreate()) symselected = symo; return symselected; 12
13 Optimizing getbitmapforsymbol() static Bitmap symx=null, symo=null, symblank=null; static boolean bitmapsinitialized=false; public Bitmap getbitmapforsymbol(symbol asymbol){ if (!bitmapsinitialized){ Resources res = getresources(); symx = BitmapFactory.decodeResource(res, R.drawable.x); symo = BitmapFactory.decodeResource(res, R.drawable.o); symblank = BitmapFactory.decodeResource(res, R.drawable.blank); bitmapsinitialized=true; Bitmap symselected = symblank; if (asymbol == Symbol.SymbolXCreate()) symselected = symx; else if (asymbol == Symbol.SymbolOCreate()) symselected = symo; return symselected; 13
14 After Optimization 14
15 Outline Non-Functional Requirements Optimize Performance with Profiler Maximize Battery Life Optimize for Responsiveness Improve App Security Testing 15
16 Maximize Battery Life Reducing computation (same techniques as for performance) Reducing network usage Minimizing data services Minimizing location services Managing display brightness 16
17 Minimize Network Use Check for network availability private boolean hasnetworkconnection(){ ConnectivityManager connectivitymanager = (ConnectivityManager) getsystemservice(context.connectivity_service); NetworkInfo networkinfo = connectivitymanager.getnetworkinfo(connectivitymanager.type_wifi); boolean isconnected = true; boolean iswifiavailable = networkinfo.isavailable(); boolean iswificonnected = networkinfo.isconnected(); networkinfo = connectivitymanager.getnetworkinfo(connectivitymanager.type_mobile); boolean ismobileavailable = networkinfo.isavailable(); boolean ismobileconnnected = networkinfo.isconnected(); isconnected = (ismobileavailable&&ismobileconnnected) (iswifiavailable&&iswificonnected); return(isconnected); Use compact data formats (JSON) 17
18 Minimize Location Services: Use Last Known Location public Location getbestcurrentlocation(){ Location mylocation=null; mylocation = manager.getlastknownlocation(bestprovider); if (mylocation == null) { mylocation = manager.getlastknownlocation( network ); if (mylocation!= null) { System.out.println( GeoLocation is> + mylocation.tostring() + < ); thislocation = mylocation; return thislocation; 18
19 Minimize Location Services: Use Cheapest Provider public GeoLocation(Context thecontext) { Criteria criteria = new Criteria(); criteria.setaccuracy(criteria.accuracy_coarse); criteria.setpowerrequirement(criteria.power_low); LocationManager manager = (LocationManager)getSystemService(thisContext.LOCATION_SERVICE); String cheapestprovider = mylocationmanager.getbestprovider(c, true); registerforlocationupdates(); 19
20 Outline Non-Functional Requirements Optimize Performance with Profiler Maximize Battery Life Optimize for Responsiveness Improve App Security Testing 20
21 Responsiveness: Threading: Ex. (1) public void onclick(view v) { new Thread(new Runnable() { public void run() { Bitmap b = loadimagefromnetwork(); // user written method // do something with the image... ).start(); 21
22 Threading: Ex. (2): SplashScreen (1) public void oncreate(bundle savedinstancestate) {... // Launch a new thread for the splash screen Thread splashthread = new Thread() public void run() { try { int elapsedtime = 0; while(active && (elapsedtime < splashtime)) { sleep(sleeptime); if(active) elapsedtime = elapsedtime + timeincrement; catch(interruptedexception e) { // do nothing finally { finish(); startactivity(new Intent( com.wiley.fordummies.androidsdk.tictactoe.login )); ; splashthread.start(); 22
23 Threading: Ex. (2): SplashScreen (2) public boolean ontouchevent(motionevent event) { if (event.getaction() == MotionEvent.ACTION_DOWN) { active = false; return true; 23
24 Threading: Ex. (3): Machine Play private void scheduleandroidsturn() { System.out.println( Thread ID in scheduleandroidsturn: + Thread.currentThread().getId()); board.disableinput(); // prevents user input while machine is thinking if(!testmode){ Random randomnumber = new Random(); Handler handler = new Handler(); handler.postdelayed( //Posts callback with a random delay. new Runnable() { public void run() { androidtakesaturn();, ANDROIDTIMEOUTBASE + randomnumber.nextint(androidtimeoutseed)); else { androidtakesaturn(); 24
25 Threading: Ex. (4): Framework- Managed Threads public class HelpWithWebView extends Activity implements OnClickListener { protected void oncreate(bundle savedinstancestate) {... String URL=null; super.oncreate(savedinstancestate); setcontentview(r.layout.helpwithwebview); WebView helpinwebview=null; helpinwebview = (WebView) findviewbyid(r.id.helpwithwebview); View buttonexit = findviewbyid(r.id.button_exit); buttonexit.setonclicklistener(this); Bundle extras = getintent().getextras(); if(extras!=null){url = extras.getstring( URL ); helpinwebview.loadurl(url); // runs in a separate thread 25
26 The Android Thread Model Main thread usually the UI thread (but sometimes not see below) SDK NOT thread-safe Other threads should NOT manipulate UI Only do computation, then offer result to UI thread API to access UI thread: Activity.runOnUiThread(Runnable myrunnable) runs the specified runnable object on the UI thread. (See GameSessionTest.java) View.post(Runnable myrunnable) causes the Runnable to be added to the message queue to be run by the UI thread as it processes all its messages. View.postDelayed(Runnable, long) adds Runnable to message queue after specified period. The Handler class lets you perform the preceding post(...) and postdelayed(...) operations when you don t have access to an active View. (see GameSession.java) UI thread subordinated to unit test thread (see section on Testing) 26
27 Outline Non-Functional Requirements Optimize Performance with Profiler Maximize Battery Life Optimize for Responsiveness Improve App Security Testing 27
28 Security Considerations for Mobile Devices Devices store valuable personal information Larger security footprint more attack surfaces more vulnerabilities Existing threats are magnified (e.g. poorly secured browsers and mobile web sites) Installed apps are sources of insecurity. More apps. Unknown trustworthiness of authors in an open marketplace. Sharing between apps. Private data left behind on file system Device is inherently less secure Portable No user login Typically weaker passwords used (due to difficulty of data entry) Less readable screen and environmental distractions means security indications could be ignored Lesson: App developers have to share responsibility for security 28
29 Systematic Steps to App Security Do not: randomly implement security stuff Instead, brainstorm and define a threat model What are the assets (data)? What is their value? What are the attacks (theft, denial of service)? Where can the attacks originate (network, other apps, browser) Identify security tactics: Detection: Determining that an attack is in progress, or loss has taken place. Resistance: Making the loss more difficult to occur. Mitigation: Limiting the degree of loss or breach. Recovery: Restoration from loss. Implement tactics using security techniques: Authentication (e.g. two-factor, certificates) Access control (e.g. file ownership, encryption, certificates) Audit trail (e.g. logs) Data integrity (e.g. checksums, encryption) Non-repudiation (e.g. logs, certificates) 29
30 Android-Specific Security Considerations Good: Privilege-supported OS Processes sandboxed in user space User files and databases are removed on uninstallation Apps must request and be granted permissions (on installation): to system resources, content providers, resources of other apps Apps must be signed by developer (however, self-signing allowed!) Google verifies new apps installed in Android 4.3+ Bad: No security through obscurity: Linux is open-source, APK file can be freely inspected, Java can be decompiled Limited vetting process on Google Play (tests apps via QEMU full-system emulator*) Privileges are enforced by installer (runtimes of hacked phones may not enforce privileges) Things to look out for: Leaving private data in files on the device and its SD card Database hacking techniques SQL injection Your app being the Trojan horse Secret literals left in code (e.g. special passwords) Use of reversible security algorithms * 30
31 Examples of Permission Requests <uses- permission android:name="android.permission.read_contacts"/> <uses- permission android:name="android.permission.internet"/> <uses- permission android:name="android.permission.access_network_state"/> <uses- permission android:name="android.permission.access_coarse_location /> <uses- permission android:name="android.permission.access_fine_location /> <uses- permission android:name= "com.wiley.fordummies.androidsdk.tictactoe.launchactivity"/> Example of a custom permission Note: Permission elements must be outside the <application> block and inside the <manifest> block of the AndroidManifest.xml 31
32 Custom Permissions Definition and Placement Permission must be declared: <permission /> android:name = "com.wiley.fordummies.androidsdk.tictactoe.launchactivity" android:label="launch Tic- Tac- Toe Activity" android:description="@string/permission_launch_activity" android:protectionlevel="normal" Then placed: In the AndroidManifest.xml file outside the <application> block and inside the <manifest> block (same as <uses- permission> elements). 32
33 Custom Permission Declaration of Need Declare need using android:permission attribute in activity definition in manifest file: <activity android:name=".login" android:launchmode="standard" android:screenorientation="portrait" android:permission="com.wiley.fordummies.androidsdk.tictactoe.launchactivity >... </activity> 33
34 Custom Permission Request <uses- permission android:name="com.wiley.fordummies.androidsdk.tictactoe.launchactivity"/> Requested in any separate package But also in containing package! 34
35 Permission Checking in Android When a call is made to a system function: To prevent an unauthorized invocation When starting an Activity: To prevent an unauthorized application from launching the Activity of other applications When sending or receiving Broadcasts: To determine who can receive a Broadcast or send it to you When accessing, and operating on, a Content Provider: To prevent an unauthorized app from accessing the data in the Content Provider When binding to, or starting, a Service: To prevent an unauthorized application from using the Service. 35
36 Example logcat Entries During Permission Failures :48:00.864: ERROR/AndroidRuntime(378): java.lang.securityexception: Permission Denial: starting Intent { act=com.wiley.fordummies.androidsdk.tictactoe.login cmp=com.wiley.fordummies.androidsdk.tictactoe/.login from ProcessRecord{407740c0 378:com.wiley.fordummies.androidsdk.tictactoe/10033 (pid=378, uid=10033) requires com.wiley.fordummies.androidsdk.tictactoe.permission.launchactivity :04:39.758: ERROR/AndroidRuntime(914): at com.wiley.fordummies.androidsdk.tictactoe.splashscreen$1.run (SplashScreen.java:36) 36
37 Example logcat Entries for Permission Definition or Placement Errors :53:09.838: DEBUG/PackageManager(77): Permissions: com.wiley.fordummies.androidsdk.tictactoe.launchactivity :04:18.888: WARN/PackageParser(77): Unknown element under <application>: permission at /data/app/vmdl tmp Binary XML file line # :04:20.438: WARN/PackageManager(77): Unknown permission com.wiley.fordummies.androidsdk.tictactoe.launchactivity in package com.wiley.fordummies.androidsdk.tictactoe 37
38 SQLite Security SQL Injection Entry field: Name: <Enter Name> Intended query: SELECT e- mail FROM user_information WHERE NAME= Bob Attacker enters string: Bob ; SELECT table_names FROM user_tables Query becomes: SELECT e- mail FROM user_information WHERE name= Bob ; SELECT table_names FROM user_tables Attacker knows all the tables. Augh! 38
39 SQL Injection Solution Bind Variables private static final String TABLE_NAME = "Accounts";... private static final String INSERT = "insert into " + TABLE_NAME + "(name, password) values (?,?)" ;... public DatabaseHelper(Context context) {... this.insertstmt = this.db.compilestatement(insert); public long insert(string name, String password) { this.insertstmt.bindstring(1, name); this.insertstmt.bindstring(2, password); return this.insertstmt.executeinsert(); 39
40 General Rule Minimize Vulnerable Spots in App Don t hardwire secrets in code. Mask sensitive data entry (e.g. passwords) Encrypt files Don t write unnecessary temporary files Use bind variables Ask for the least permissions Create checkpoints of application data Log data (of course, encrypt your logs) Keep Intent Filters specific so Activities don t respond to generic Intents Don t rely only on permissions when sensitive data is accessed prompt user. 40
41 Outline Non-Functional Requirements Optimize Performance with Profiler Maximize Battery Life Optimize for Responsiveness Improve App Security Testing 41
42 Creating Unit Tests (1) In Android Studio, right-click the project name, select app, click on Dependencies tab, click + icon, select Library Dependency, then type junit into the dialog Create test classes under <project- name>/app/ src/androidtest/java/<package- name> Set up test run configuration (of type Android Test) 42
43 Creating Unit Tests (2) 43
44 Creating Unit Tests (3) 44
45 Passed Unit Test 45
46 Failed Unit Test 46
47 Unit Test Class public class GameSessionTest extends ActivityInstrumentationTestCase2 <GameSession> { // Template Class private GameSession gamesessionactivity; // Activity to be tested private Board board; // Member variable of activity private Instrumentation gamesessionactivityinstrumentation = null; // Data for the tests touch coordinates final float x[]={(float)56.0, (float) 143.0, (float) 227.0; final float y[]={(float)56.0, (float) 143.0, (float) 227.0; int i = 0; public GameSessionTest() {... // Constructor protected void setup() throws Exception {... // Setup gets member variables public void testpreconditions() {... // Test 1 public void testui() {... // Test // Annotation to force the test to run in the UI thread public void testuithreadtest(){... // Test 3 protected void teardown() throws Exception {... // Cleanup 47
48 Constructor public GameSessionTest() { super("com.wiley.fordummies.androidsdk.tictactoe.gamesession", GameSession.class); 48
49 Setup and Teardown protected void setup() throws Exception { //access to member variables super.setup();... setactivityinitialtouchmode(false); gamesessionactivityinstrumentation = getinstrumentation(); gamesessionactivity = getactivity(); board = (Board) gamesessionactivity.findviewbyid(r.id.board); protected void teardown() throws Exception { // cleans up gamesessionactivity.finish(); 49
50 Test 1 Test Preconditions public void testpreconditions() { assertnotnull(gamesessionactivity); assertnotnull(board); 50
51 Test 2 Test User Interface public void testui() { System.out.println("Thread ID in testui:" + Thread.currentThread().getId()); getactivity().runonuithread(new Runnable() { // Run on UI thread public void run() { System.out.println("Thread ID in TestUI.run:" + Thread.currentThread().getId()); ); board.requestfocus(); // Simulates touch event // Hint: Instrumented the ontouchevent(motionevent event) to get good pixel values for touch. Why not call ontouchevent of Board directly? MotionEvent newmotionevent = MotionEvent.obtain((long)1, (long)1, MotionEvent.ACTION_DOWN, (float) 53.0, (float) 53.0, 0); board.dispatchtouchevent(newmotionevent); // Dispatches touch event assertequals(gamesessionactivity.getplaycount(), 2); // Assert 2 moves 51
52 Test 3 Series of Moves final float x[] = {(float)56.0, (float) 143.0, (float) 227.0; final float y[] = {(float)56.0, (float) 143.0, (float) 227.0; int i = public void testuithreadtest() { System.out.println("Thread ID in testui:" + Thread.currentThread().getId()); board.requestfocus(); for (i=0; i<3; i++){ MotionEvent newmotionevent = // Factory Method MotionEvent.obtain((long)1, (long)1, MotionEvent.ACTION_DOWN, (float) x[i], (float) y[i], 0); board.dispatchtouchevent(newmotionevent); assertequals(gamesessionactivity.getplaycount(), 2); 52
53 Tests and Threading Must explicitly run certain tests on UI thread Via Annotations Via explicit command Main UI thread subordinated to unit test thread Main UI thread terminated when tests run Tasks queued for main UI thread may not launch! 53
54 Modifications Required by Thread Model private void scheduleandroidsturn() { System.out.println("Thread ID in scheduleandroidsturn:" + Thread.currentThread().getId()); board.disableinput(); if (!testmode) { Random randomnumber = new Random(); Handler handler = new Handler(); handler.postdelayed(new Runnable(){ public void run(){ androidtakesaturn();, randomnumber.nextint(2000) ); ); else { androidtakesaturn(); 54
55 Useful Links for Testing See: MotionEvent.html for details of MotionEvent class See: view/view.html for how to send an event to a View (Board is a subclass of View) (JUnit and Robolectric via Gradle and Android Studio) 55
56 References Chapter 8: Making Your Application Fast and Responsive, from Android SDK 3 Programming for Dummies performance.html Jon Bentley, Writing Efficient Programs, Chapter 12: Effectively Using Your Integration Development Environment Covers Eclipse features, logging and unit testing (in Eclipse) (JUnit and Robolectric via Gradle and Android Studio) 56
Login with Amazon Getting Started Guide for Android. Version 2.0
Getting Started Guide for Android Version 2.0 Login with Amazon: Getting Started Guide for Android Copyright 2016 Amazon.com, Inc., or its affiliates. All rights reserved. Amazon and the Amazon logo are
Android Developer Fundamental 1
Android Developer Fundamental 1 I. Why Learn Android? Technology for life. Deep interaction with our daily life. Mobile, Simple & Practical. Biggest user base (see statistics) Open Source, Control & Flexibility
Lecture 1 Introduction to Android
These slides are by Dr. Jaerock Kwon at. The original URL is http://kettering.jrkwon.com/sites/default/files/2011-2/ce-491/lecture/alecture-01.pdf so please use that instead of pointing to this local copy
Android Development. Marc Mc Loughlin
Android Development Marc Mc Loughlin Android Development Android Developer Website:h:p://developer.android.com/ Dev Guide Reference Resources Video / Blog SeCng up the SDK h:p://developer.android.com/sdk/
ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I)
ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I) Who am I? Lo Chi Wing, Peter Lecture 1: Introduction to Android Development Email: [email protected] Facebook: http://www.facebook.com/peterlo111
How to develop your own app
How to develop your own app It s important that everything on the hardware side and also on the software side of our Android-to-serial converter should be as simple as possible. We have the advantage that
ECWM511 MOBILE APPLICATION DEVELOPMENT Lecture 1: Introduction to Android
Why Android? ECWM511 MOBILE APPLICATION DEVELOPMENT Lecture 1: Introduction to Android Dr Dimitris C. Dracopoulos A truly open, free development platform based on Linux and open source A component-based
APPLICATION SECURITY: FROM WEB TO MOBILE. DIFFERENT VECTORS AND NEW ATTACK
APPLICATION SECURITY: FROM WEB TO MOBILE. DIFFERENT VECTORS AND NEW ATTACK John T Lounsbury Vice President Professional Services, Asia Pacific INTEGRALIS Session ID: MBS-W01 Session Classification: Advanced
Advertiser Campaign SDK Your How-to Guide
Advertiser Campaign SDK Your How-to Guide Using Leadbolt Advertiser Campaign SDK with Android Apps Version: Adv2.03 Copyright 2012 Leadbolt All rights reserved Disclaimer This document is provided as-is.
Mobile Application Hacking for Android and iphone. 4-Day Hands-On Course. Syllabus
Mobile Application Hacking for Android and iphone 4-Day Hands-On Course Syllabus Android and iphone Mobile Application Hacking 4-Day Hands-On Course Course description This course will focus on the techniques
Android Application Repackaging
ISA 564, Laboratory 4 Android Exploitation Software Requirements: 1. Android Studio http://developer.android.com/sdk/index.html 2. Java JDK http://www.oracle.com/technetwork/java/javase/downloads/index.html
ITG Software Engineering
Basic Android Development Course ID: Page 1 Last Updated 12/15/2014 Basic Android Development ITG Software Engineering Course Overview: This 5 day course gives students the fundamental basics of Android
Android Environment SDK
Part 2-a Android Environment SDK Victor Matos Cleveland State University Notes are based on: Android Developers http://developer.android.com/index.html 1 2A. Android Environment: Eclipse & ADT The Android
Android Java Live and In Action
Android Java Live and In Action Norman McEntire Founder, Servin Corp UCSD Extension Instructor [email protected] Copyright (c) 2013 Servin Corp 1 Opening Remarks Welcome! Thank you! My promise
ANDROID BASED MOBILE APPLICATION DEVELOPMENT and its SECURITY
ANDROID BASED MOBILE APPLICATION DEVELOPMENT and its SECURITY Suhas Holla #1, Mahima M Katti #2 # Department of Information Science & Engg, R V College of Engineering Bangalore, India Abstract In the advancing
1. Introduction to Android
1. Introduction to Android Brief history of Android What is Android? Why is Android important? What benefits does Android have? What is OHA? Why to choose Android? Software architecture of Android Advantages
Mocean Android SDK Developer Guide
Mocean Android SDK Developer Guide For Android SDK Version 3.2 136 Baxter St, New York, NY 10013 Page 1 Table of Contents Table of Contents... 2 Overview... 3 Section 1 Setup... 3 What changed in 3.2:...
Android Environment SDK
Part 2-a Android Environment SDK Victor Matos Cleveland State University Notes are based on: Android Developers http://developer.android.com/index.html 1 Android Environment: Eclipse & ADT The Android
directory to "d:\myproject\android". Hereafter, I shall denote the android installed directory as
1 of 6 2011-03-01 12:16 AM yet another insignificant programming notes... HOME Android SDK 2.2 How to Install and Get Started Introduction Android is a mobile operating system developed by Google, which
Creating a 2D Game Engine for Android OS. Introduction
Creating a 2D Game Engine for Android OS Introduction This tutorial will lead you through the foundations of creating a 2D animated game for the Android Operating System. The goal here is not to create
An Android-based Instant Message Application
An Android-based Instant Message Application Qi Lai, Mao Zheng and Tom Gendreau Department of Computer Science University of Wisconsin - La Crosse La Crosse, WI 54601 [email protected] Abstract One of the
4. The Android System
4. The Android System 4. The Android System System-on-Chip Emulator Overview of the Android System Stack Anatomy of an Android Application 73 / 303 4. The Android System Help Yourself Android Java Development
ANDROID INTRODUCTION TO ANDROID
ANDROID JAVA FUNDAMENTALS FOR ANDROID Introduction History Java Virtual Machine(JVM) JDK(Java Development Kit) JRE(Java Runtime Environment) Classes & Packages Java Basics Data Types Variables, Keywords,
Java 7 Recipes. Freddy Guime. vk» (,\['«** g!p#« Carl Dea. Josh Juneau. John O'Conner
1 vk» Java 7 Recipes (,\['«** - < g!p#«josh Juneau Carl Dea Freddy Guime John O'Conner Contents J Contents at a Glance About the Authors About the Technical Reviewers Acknowledgments Introduction iv xvi
Chapter 2 Getting Started
Welcome to Android Chapter 2 Getting Started Android SDK contains: API Libraries Developer Tools Documentation Sample Code Best development environment is Eclipse with the Android Developer Tool (ADT)
JD Edwards EnterpriseOne Tools. 1 Understanding JD Edwards EnterpriseOne Business Intelligence Integration. 1.1 Oracle Business Intelligence
JD Edwards EnterpriseOne Tools Embedded Business Intelligence for JD Edwards EnterpriseOne Release 8.98 Update 4 E21426-02 March 2011 This document provides instructions for using Form Design Aid to create
Hacking your Droid ADITYA GUPTA
Hacking your Droid ADITYA GUPTA adityagupta1991 [at] gmail [dot] com facebook[dot]com/aditya1391 Twitter : @adi1391 INTRODUCTION After the recent developments in the smart phones, they are no longer used
Mercury User Guide v1.1
Mercury User Guide v1.1 Tyrone Erasmus 2012-09-03 Index Index 1. Introduction... 3 2. Getting started... 4 2.1. Recommended requirements... 4 2.2. Download locations... 4 2.3. Setting it up... 4 2.3.1.
Mobile App Design Project #1 Java Boot Camp: Design Model for Chutes and Ladders Board Game
Mobile App Design Project #1 Java Boot Camp: Design Model for Chutes and Ladders Board Game Directions: In mobile Applications the Control Model View model works to divide the work within an application.
Android Application Development: Hands- On. Dr. Jogesh K. Muppala [email protected]
Android Application Development: Hands- On Dr. Jogesh K. Muppala [email protected] Wi-Fi Access Wi-Fi Access Account Name: aadc201312 2 The Android Wave! 3 Hello, Android! Configure the Android SDK SDK
Android Tutorial. Larry Walters OOSE Fall 2011
Android Tutorial Larry Walters OOSE Fall 2011 References This tutorial is a brief overview of some major concepts Android is much richer and more complex Developer s Guide http://developer.android.com/guide/index.html
WebView addjavascriptinterface Remote Code Execution 23/09/2013
MWR InfoSecurity Advisory WebView addjavascriptinterface Remote Code Execution 23/09/2013 Package Name Date Affected Versions Google Android Webkit WebView 23/09/2013 All Android applications built with
Android Programming and Security
Android Programming and Security Dependable and Secure Systems Andrea Saracino [email protected] Outlook (1) The Android Open Source Project Philosophy Players Outlook (2) Part I: Android System
Creating and Using Databases for Android Applications
Creating and Using Databases for Android Applications Sunguk Lee * 1 Research Institute of Industrial Science and Technology Pohang, Korea [email protected] *Correspondent Author: Sunguk Lee* ([email protected])
FINAL DoIT 04.01.2013- v.8 APPLICATION SECURITY PROCEDURE
Purpose: This procedure identifies what is required to ensure the development of a secure application. Procedure: The five basic areas covered by this document include: Standards for Privacy and Security
Enterprise Application Security Workshop Series
Enterprise Application Security Workshop Series Phone 877-697-2434 fax 877-697-2434 www.thesagegrp.com Defending JAVA Applications (3 Days) In The Sage Group s Defending JAVA Applications workshop, participants
Mobile Application Development
Mobile Application Development (Android & ios) Tutorial Emirates Skills 2015 3/26/2015 1 What is Android? An open source Linux-based operating system intended for mobile computing platforms Includes a
Table of Contents. Adding Build Targets to the SDK 8 The Android Developer Tools (ADT) Plug-in for Eclipse 9
SECOND EDITION Programming Android kjj *J} Zigurd Mednieks, Laird Dornin, G. Blake Meike, and Masumi Nakamura O'REILLY Beijing Cambridge Farnham Koln Sebastopol Tokyo Table of Contents Preface xiii Parti.
UP L18 Enhanced MDM and Updated Email Protection Hands-On Lab
UP L18 Enhanced MDM and Updated Email Protection Hands-On Lab Description The Symantec App Center platform continues to expand it s offering with new enhanced support for native agent based device management
Getting Started: Creating a Simple App
Getting Started: Creating a Simple App What You will Learn: Setting up your development environment Creating a simple app Personalizing your app Running your app on an emulator The goal of this hour is
Appium mobile test automation
Appium mobile test automation for Google Android and Apple ios Last updated: 4 January 2016 Pepgo Limited, 71-75 Shelton Street, Covent Garden, London, WC2H 9JQ, United Kingdom Contents About this document...
The full setup includes the server itself, the server control panel, Firebird Database Server, and three sample applications with source code.
Content Introduction... 2 Data Access Server Control Panel... 2 Running the Sample Client Applications... 4 Sample Applications Code... 7 Server Side Objects... 8 Sample Usage of Server Side Objects...
Android Geek Night. Application framework
Android Geek Night Application framework Agenda 1. Presentation 1. Trifork 2. JAOO 2010 2. Google Android headlines 3. Introduction to an Android application 4. New project using ADT 5. Main building blocks
Android Mobile App Building Tutorial
Android Mobile App Building Tutorial Seidenberg-CSIS, Pace University This mobile app building tutorial is for high school and college students to participate in Mobile App Development Contest Workshop.
MMI 2: Mobile Human- Computer Interaction Android
MMI 2: Mobile Human- Computer Interaction Android Prof. Dr. [email protected] Mobile Interaction Lab, LMU München Android Software Stack Applications Java SDK Activities Views Resources Animation
MS Enterprise Library 5.0 (Logging Application Block)
International Journal of Scientific and Research Publications, Volume 4, Issue 8, August 2014 1 MS Enterprise Library 5.0 (Logging Application Block) Anubhav Tiwari * R&D Dept., Syscom Corporation Ltd.
Android Basics. Xin Yang 2016-05-06
Android Basics Xin Yang 2016-05-06 1 Outline of Lectures Lecture 1 (45mins) Android Basics Programming environment Components of an Android app Activity, lifecycle, intent Android anatomy Lecture 2 (45mins)
Frameworks & Android. Programmeertechnieken, Tim Cocx
Frameworks & Android Programmeertechnieken, Tim Cocx Discover thediscover world atthe Leiden world University at Leiden University Software maken is hergebruiken The majority of programming activities
Android Development Tutorial. Nikhil Yadav CSE40816/60816 - Pervasive Health Fall 2011
Android Development Tutorial Nikhil Yadav CSE40816/60816 - Pervasive Health Fall 2011 Database connections Local SQLite and remote access Outline Setting up the Android Development Environment (Windows)
Introduction to Android SDK Jordi Linares
Introduction to Android SDK Introduction to Android SDK http://www.android.com Introduction to Android SDK Google -> OHA (Open Handset Alliance) The first truly open and comprehensive platform for mobile
Mobile Application Security and Penetration Testing Syllabus
Mobile Application Security and Penetration Testing Syllabus Mobile Devices Overview 1.1. Mobile Platforms 1.1.1.Android 1.1.2.iOS 1.2. Why Mobile Security 1.3. Taxonomy of Security Threats 1.3.1.OWASP
Android Application Development
Android Application Development Self Study Self Study Guide Content: Course Prerequisite Course Content Android SDK Lab Installation Guide Start Training Be Certified Exam sample Course Prerequisite The
International Journal of Advanced Engineering Research and Science (IJAERS) Vol-2, Issue-11, Nov- 2015] ISSN: 2349-6495
International Journal of Advanced Engineering Research and Science (IJAERS) Vol-2, Issue-11, Nov- 2015] Survey on Automation Testing Tools for Mobile Applications Dr.S.Gunasekaran 1, V. Bargavi 2 1 Department
Pentesting Android Apps. Sneha Rajguru (@Sneharajguru)
Pentesting Android Apps Sneha Rajguru (@Sneharajguru) About Me Penetration Tester Web, Mobile and Infrastructure applications, Secure coding ( part time do secure code analysis), CTF challenge writer (at
Introduction to Android Development. Jeff Avery CS349, Mar 2013
Introduction to Android Development Jeff Avery CS349, Mar 2013 Overview What is Android? Android Architecture Overview Application Components Activity Lifecycle Android Developer Tools Installing Android
Administration Guide. BlackBerry Enterprise Service 12. Version 12.0
Administration Guide BlackBerry Enterprise Service 12 Version 12.0 Published: 2015-01-16 SWD-20150116150104141 Contents Introduction... 9 About this guide...10 What is BES12?...11 Key features of BES12...
Specialized Android APP Development Program with Java (SAADPJ) Duration 2 months
Specialized Android APP Development Program with Java (SAADPJ) Duration 2 months Our program is a practical knowledge oriented program aimed at making innovative and attractive applications for mobile
GO!Enterprise MDM Device Application User Guide Installation and Configuration for Android
GO!Enterprise MDM Device Application User Guide Installation and Configuration for Android GO!Enterprise MDM for Android, Version 3.x GO!Enterprise MDM for Android 1 Table of Contents GO!Enterprise MDM
Android Development Exercises Version - 2012.02. Hands On Exercises for. Android Development. v. 2012.02
Hands On Exercises for Android Development v. 2012.02 WARNING: The order of the exercises does not always follow the same order of the explanations in the slides. When carrying out the exercises, carefully
Now that we have the Android SDK, Eclipse and Phones all ready to go we can jump into actual Android development.
Android Development 101 Now that we have the Android SDK, Eclipse and Phones all ready to go we can jump into actual Android development. Activity In Android, each application (and perhaps each screen
060010702 Mobile Application Development 2014
Que 1: Short question answer. Unit 1: Introduction to Android and Development tools 1. What kind of tool is used to simulate Android application? 2. Can we use C++ language for Android application development?
For details about using automatic user provisioning with Salesforce, see Configuring user provisioning for Salesforce.
Chapter 41 Configuring Salesforce The following is an overview of how to configure the Salesforce.com application for singlesign on: 1 Prepare Salesforce for single sign-on: This involves the following:
CHAPTER 1: INTRODUCTION TO ANDROID, MOBILE DEVICES, AND THE MARKETPLACE
FOREWORD INTRODUCTION xxiii xxv CHAPTER 1: INTRODUCTION TO ANDROID, MOBILE DEVICES, AND THE MARKETPLACE 1 Product Comparison 2 The.NET Framework 2 Mono 3 Mono for Android 4 Mono for Android Components
Storing Encrypted Plain Text Files Using Google Android
Storing Encrypted Plain Text Files Using Google Android Abstract Jared Hatfield University of Louisville Google Android is an open source operating system that is available on a wide variety of smart phones
TomTom PRO 82xx PRO.connect developer guide
TomTom PRO 82xx PRO.connect developer guide Contents Introduction 3 Preconditions 4 Establishing a connection 5 Preparations on Windows... 5 Preparations on Linux... 5 Connecting your TomTom PRO 82xx device
Analysis of advanced issues in mobile security in android operating system
Available online atwww.scholarsresearchlibrary.com Archives of Applied Science Research, 2015, 7 (2):34-38 (http://scholarsresearchlibrary.com/archive.html) ISSN 0975-508X CODEN (USA) AASRC9 Analysis of
How To Develop Android On Your Computer Or Tablet Or Phone
AN INTRODUCTION TO ANDROID DEVELOPMENT CS231M Alejandro Troccoli Outline Overview of the Android Operating System Development tools Deploying application packages Step-by-step application development The
Admin. Mobile Software Development Framework: Android Activity, View/ViewGroup, External Resources. Recap: TinyOS. Recap: J2ME Framework
Admin. Mobile Software Development Framework: Android Activity, View/ViewGroup, External Resources Homework 2 questions 10/9/2012 Y. Richard Yang 1 2 Recap: TinyOS Hardware components motivated design
Mobile Application Development Android
Mobile Application Development Android MTAT.03.262 Satish Srirama [email protected] Goal Give you an idea of how to start developing Android applications Introduce major Android application concepts
Developing NFC Applications on the Android Platform. The Definitive Resource
Developing NFC Applications on the Android Platform The Definitive Resource Part 1 By Kyle Lampert Introduction This guide will use examples from Mac OS X, but the steps are easily adaptable for modern
Operational Decision Manager Worklight Integration
Copyright IBM Corporation 2013 All rights reserved IBM Operational Decision Manager V8.5 Lab exercise Operational Decision Manager Worklight Integration Integrate dynamic business rules into a Worklight
AdFalcon Android SDK 2.1.4 Developer's Guide. AdFalcon Mobile Ad Network Product of Noqoush Mobile Media Group
AdFalcon Android SDK 214 Developer's Guide AdFalcon Mobile Ad Network Product of Noqoush Mobile Media Group Table of Contents 1 Introduction 3 Supported Android version 3 2 Project Configurations 4 Step
Configuring Salesforce
Chapter 94 Configuring Salesforce The following is an overview of how to configure the Salesforce.com application for singlesign on: 1 Prepare Salesforce for single sign-on: This involves the following:
GO!Enterprise MDM Device Application User Guide Installation and Configuration for Android with TouchDown
GO!Enterprise MDM Device Application User Guide Installation and Configuration for Android with TouchDown GO!Enterprise MDM for Android, Version 3.x GO!Enterprise MDM for Android with TouchDown 1 Table
OpenCV on Android Platforms
OpenCV on Android Platforms Marco Moltisanti Image Processing Lab http://iplab.dmi.unict.it [email protected] http://www.dmi.unict.it/~moltisanti Outline Intro System setup Write and build an Android
HP Service Manager. Software Version: 9.40 For the supported Windows and Linux operating systems. Application Setup help topics for printing
HP Service Manager Software Version: 9.40 For the supported Windows and Linux operating systems Application Setup help topics for printing Document Release Date: December 2014 Software Release Date: December
Tutorial #1. Android Application Development Advanced Hello World App
Tutorial #1 Android Application Development Advanced Hello World App 1. Create a new Android Project 1. Open Eclipse 2. Click the menu File -> New -> Other. 3. Expand the Android folder and select Android
IOIO for Android Beginners Guide Introduction
IOIO for Android Beginners Guide Introduction This is the beginners guide for the IOIO for Android board and is intended for users that have never written an Android app. The goal of this tutorial is to
Configuring CQ Security
Configuring CQ Security About Me CQ Architect for Inside Solutions http://inside-solutions.ch CQ Blog: http://cqblog.inside-solutions.ch Customer Projects with Adobe CQ Training Material on Adobe CQ Agenda
Q1. What method you should override to use Android menu system?
AND-401 Exam Sample: Q1. What method you should override to use Android menu system? a. oncreateoptionsmenu() b. oncreatemenu() c. onmenucreated() d. oncreatecontextmenu() Answer: A Q2. What Activity method
Getting Started with the Ed-Fi ODS and Ed-Fi ODS API
Getting Started with the Ed-Fi ODS and Ed-Fi ODS API Ed-Fi ODS and Ed-Fi ODS API Version 2.0 - Technical Preview October 2014 2014 Ed-Fi Alliance, LLC. All rights reserved. Ed-Fi is a registered trademark
Application Intrusion Detection
Application Intrusion Detection Drew Miller Black Hat Consulting Application Intrusion Detection Introduction Mitigating Exposures Monitoring Exposures Response Times Proactive Risk Analysis Summary Introduction
Android Security Lab WS 2014/15 Lab 1: Android Application Programming
Saarland University Information Security & Cryptography Group Prof. Dr. Michael Backes saarland university computer science Android Security Lab WS 2014/15 M.Sc. Sven Bugiel Version 1.0 (October 6, 2014)
Android Programming: Installation, Setup, and Getting Started
2012 Marty Hall Android Programming: Installation, Setup, and Getting Started Originals of Slides and Source Code for Examples: http://www.coreservlets.com/android-tutorial/ Customized Java EE Training:
Running a Program on an AVD
Running a Program on an AVD Now that you have a project that builds an application, and an AVD with a system image compatible with the application s build target and API level requirements, you can run
026-1010 Rev 7 06-OCT-2011. Site Manager Installation Guide
026-1010 Rev 7 06-OCT-2011 Site Manager Installation Guide Retail Solutions 3240 Town Point Drive NW, Suite 100 Kennesaw, GA 30144, USA Phone: 770-425-2724 Fax: 770-425-9319 Table of Contents 1 SERVER
BDD FOR AUTOMATING WEB APPLICATION TESTING. Stephen de Vries
BDD FOR AUTOMATING WEB APPLICATION TESTING Stephen de Vries www.continuumsecurity.net INTRODUCTION Security Testing of web applications, both in the form of automated scanning and manual security assessment
Internal Services. CSE 5236: Mobile Application Development Instructor: Adam C. Champion Course Coordinator: Dr. Rajiv Ramnath
Internal Services CSE 5236: Mobile Application Development Instructor: Adam C. Champion Course Coordinator: Dr. Rajiv Ramnath 1 Internal Services Communication: Email, SMS and telephony Audio and video:
Mobile App Tutorial Animation with Custom View Class and Animated Object Bouncing and Frame Based Animation
Mobile App Tutorial Animation with Custom View Class and Animated Object Bouncing and Frame Based Animation Description of View Based Animation and Control-Model-View Design process In mobile device programming,
Android Studio Application Development
Android Studio Application Development Belén Cruz Zapata Chapter No. 4 "Using the Code Editor" In this package, you will find: A Biography of the author of the book A preview chapter from the book, Chapter
Oracle FLEXCUBE Direct Banking Android Tab Client Installation Guide Release 12.0.3.0.0
Oracle FLEXCUBE Direct Banking Android Tab Client Installation Guide Release 12.0.3.0.0 Part No. E52543-01 April 2014 Oracle Financial Services Software Limited Oracle Park Off Western Express Highway
SYLLABUS MOBILE APPLICATION SECURITY AND PENETRATION TESTING. MASPT at a glance: v1.0 (28/01/2014) 10 highly practical modules
Must have skills in any penetration tester's arsenal. MASPT at a glance: 10 highly practical modules 4 hours of video material 1200+ interactive slides 20 Applications to practice with Leads to emapt certification
Programming with Android
Praktikum Mobile und Verteilte Systeme Programming with Android Prof. Dr. Claudia Linnhoff-Popien Philipp Marcus, Mirco Schönfeld http://www.mobile.ifi.lmu.de Sommersemester 2015 Programming with Android
