throbber
United States Patent
`Matthews et al .
`
`( 10 ) Patent No .: US 10,671,367 B2
`( 45 ) Date of Patent :
`* Jun . 2 , 2020
`
`US01067136732
`
`( 54 ) SYSTEM AND METHOD FOR ANALYZING
`USER EXPERIENCE OF A SOFTWARE
`APPLICATION ACROSS DISPARATE
`DEVICES
`( 71 ) Applicant : APKUDO , LLC , Baltimore , MD ( US )
`( 72 ) Inventors : Joshua Scott Matthews , Baltimore ,
`MD ( US ) ; David Michael Teitelbaum ,
`Havre de Grace , MD ( US )
`( 73 ) Assignee : Apkudo , LLC , Baltimore , MD ( US )
`Subject to any disclaimer , the term of this
`( * ) Notice :
`patent is extended or adjusted under 35
`U.S.C. 154 ( b ) by 446 days .
`This patent is subject to a terminal dis
`claimer .
`( 21 ) Appl . No .: 15 / 393,244
`( 22 ) Filed :
`Dec. 28 , 2016
`( 65 )
`
`Prior Publication Data
`US 2017/0109154 A1 Apr. 20 , 2017
`Related U.S. Application Data
`( 63 ) Continuation of application No. 13 / 692,161 , filed on
`Dec. 3 , 2012 , now Pat . No. 9,578,133 .
`( 51 ) Int . Ci .
`G06F 8/65
`GO6F 8/38
`
`( 2018.01 )
`( 2018.01 )
`( Continued )
`
`( 52 ) U.S. Ci .
`G06F 8/65 ( 2013.01 ) ; GO6F 8/38
`CPC
`( 2013.01 ) ; G06F 9/328 ( 2013.01 ) ; H04L 67/10
`( 2013.01 ) ;
`( Continued )
`Field of Classification Search
`H04W 88/02 ; G06F 17/30
`CPC
`See application file for complete search history .
`
`( 58 )
`
`( 56 )
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`6,044,398 A
`6,105,042 A *
`
`3/2000 Marullo et al .
`8/2000 Aganovic
`
`( Continued )
`FOREIGN PATENT DOCUMENTS
`
`CN
`CN
`
`6/2011
`102110053 A
`8/2011
`102141960 A
`( Continued )
`
`G06F 3/14
`345/660
`
`OTHER PUBLICATIONS
`" Monkeyrunner ” , A Simple monkeyrunner Program , The monkeyrun
`ner API , Running monkeyrunner , monkeyrunner Built - in Help , and
`Extending monkeyrunner with Plugins , [ no date ] , 6 pages .
`( Continued )
`
`Primary Examiner Barbara B Anyan
`( 74 ) Attorney , Agent , or Firm — Pillsbury Winthrop Shaw
`Pittman LLP
`
`( 57 )
`ABSTRACT
`A system for providing a consistent user experience of an
`application across disparate mobile devices comprises a
`computing device including a display analysis application ,
`and one or more mobile devices including a display analysis
`application is provided . In one example , a mobile device
`comprises a memory storing a version of an operating
`system , a display analysis patch , and a patched application .
`A consistency module of the mobile device is configured to
`access the application with the display analysis patch , obtain
`one or more display parameters of the mobile device via the
`application with the display analysis patch , and transmit the
`obtained one or more display parameters to a computing
`device .
`
`20 Claims , 7 Drawing Sheets
`
`10
`
`100
`
`110
`display
`analysis
`application
`
`120 Storage Module
`130 Patching and Testing Module
`
`140 Network Module
`
`150 Consistency Module
`
`160 Socket Module
`
`20
`
`200
`
`210
`display
`analysis
`application
`
`220 Storage Module
`
`230 Network Module
`240 Consistency Module
`
`250 Socket Module
`
`300
`
`310
`display
`analysis
`application
`
`320 Storage Module
`
`330 Network Module
`340 Consistency Module
`
`350 Socket Module
`
`ironSource Exhibit 1012
`
`

`

`US 10,671,367 B2
`Page 2
`
`2011/0304634 A1
`2011/0310041 A1
`2011/0320879 Al
`2012/0015723 A1
`2012/0070090 A1
`2012/0109953 A1 *
`
`12/2011 Urbach
`12/2011 Williams et al .
`12/2011 Singh et al .
`1/2012 Lai
`3/2012 Chang et al .
`5/2012 Brown
`
`2012/0117139 Al *
`
`5/2012 Lam
`
`( 51 ) Int . Ci .
`H04W 4/50
`H04L 29/08
`G06F 9/32
`H04W 24/06
`G06Q 30/02
`( 52 ) U.S. Cl .
`CPC
`
`( 56 )
`
`( 2018.01 )
`( 2006.01 )
`( 2018.01 )
`( 2009.01 )
`( 2012.01 )
`H04L 67/34 ( 2013.01 ) ; H04W 4/50
`( 2018.02 ) ; G06Q 30/02 ( 2013.01 ) ; G06Q
`30/0251 ( 2013.01 ) ; H04W 24/06 ( 2013.01 )
`References Cited
`U.S. PATENT DOCUMENTS
`6,618,045 B1
`9/2003 Lin
`6/2004 Lupu et al .
`6,745,385 B1
`7,343,390 B2
`3/2008 Cohen et al .
`6/2008 Wang et al .
`7,388,977 B2
`7,483,984 B1
`1/2009 Jonker et al .
`7,769,009 B1
`8/2010 Katzer et al .
`9/2012 Mahaffey et al .
`8,271,608 B2
`9/2012 Anantharaman et al .
`8,275,843 B2
`8,296,445 B1
`10/2012 Hackborn et al .
`9/2014 Pedregal et al .
`8,832,127 B1
`8,971,821 B2
`3/2015 Schlub et al .
`7/2003 Chamberlain
`2003/0145317 A1
`12/2004 Hwang
`2004/0261248 Al
`2006/0038581 A1
`2/2006 Kanai
`2006/0139269 Al
`6/2006 Takeshita et al .
`8/2006 Varadarajan et al .
`2006/0174162 A1
`10/2006 Fields
`2006/0242124 Al
`4/2007 Lui et al .
`2007/0083813 Al
`2007/0100653 A1
`5/2007 Ramer et al .
`8/2007 Carey
`2007/0186250 A1
`2007/0205751 A1
`9/2007 Suzuki et al .
`11/2007 Johnson et al .
`2007/0256114 Al
`1/2008 Nagatsuka et al .
`2008/0013825 Al
`4/2008 Beard
`2008/0091686 Al
`2008/0274716 A1
`11/2008 Fok et al .
`2008/0316217 Al
`12/2008 Khan
`2008/0316368 A1
`12/2008 Fritsch et al .
`1/2009 Campion et al .
`2009/0007074 A1
`1/2009 Morgan et al .
`2009/0031015 Al
`5/2009 Topaltzas et al .
`2009/0124250 A1
`5/2009 Jung
`2009/0138579 A1
`8/2009 Marsyla et al .
`2009/0203368 A1
`2009/0249301 A1
`10/2009 Kalla et al .
`10/2009 Jenkinson et al .
`2009/0265035 A1
`12/2009 Karthikeyan et al .
`2009/0307531 A1
`12/2009 Fishel
`2009/0312009 Al
`3/2010 Maucksch
`2010/0075664 A1 *
`4/2010 Topaltzas et al .
`4/2010 Mazzagatte et al .
`4/2010 Jackowitz et al .
`8/2010 Greer et al .
`9/2010 Border et al .
`1/2011 Ellingson
`4/2011 Bocharov et al .
`4/2011 Kandula et al .
`5/2011 Gururaj
`8/2011 von Sydow
`10/2011 Topaltzas et al .
`11/2011 Linder et al .
`12/2011 Baranov et al .
`12/2011 Prophete et al .
`
`2010/0080143 A1
`2010/0088423 A1
`2010/0094774 Al
`2010/0198402 A1
`2010/0231738 Al
`2011/0010349 A1
`2011/0080940 A1
`2011/0087924 Al
`2011/0113287 Al
`2011/0196735 A1 *
`
`2011/0263243 Al
`2011/0288964 A1
`2011/0296009 Al
`2011/0302454 A1
`
`H04W 24/06
`455/425
`
`GO6Q 30/02
`705 / 14.43
`
`6/2012 Jenkinson
`6/2012 Zazula et al .
`7/2012 Uzelac et al .
`7/2012 Uzelac et al .
`8/2012 Schroeder
`8/2012 Burckart et al .
`8/2012 Kalavade
`8/2012 Bai et al .
`9/2012 Poon et al .
`9/2012 Overton et al .
`9/2012 Lusenhop et al .
`10/2012 Burkitt et al .
`10/2012 Ayyagari
`10/2012 Bokhari
`11/2012 Ha et al .
`12/2012 Shah
`1/2013 Waring et al .
`H04M 1/72569
`1/2013 Das
`455/557
`5/2013 Worthington et al .
`8/2013 Uzelac et al .
`8/2013 Panagas
`2/2014 Cusack
`
`G06Q 10/063
`707/736
`G060 30/0251
`709/201
`
`G06Q 30/02
`705 / 14.61
`
`2012/0146956 Al
`2012/0155292 Al
`2012/0188176 Al
`2012/0191394 Al
`2012/0198279 Al
`2012/02 10242 A1
`2012/0221570 A1
`2012/0221893 A1
`2012/0231785 A1
`2012/0245918 Al
`2012/0246515 A1
`2012/0254917 A1
`2012/0265629 Al
`2012/0266142 Al
`2012/0280934 A1
`2012/0311569 Al
`2013/0002862 A1
`2013/0029723 A1 *
`
`2013/0132616 A1
`2013/0197862 Al
`2013/0200917 A1
`2014/0040035 A1 *
`
`2014/0152584 A1
`2014/0281714 Al
`
`6/2014 Matthews et al .
`9/2014 Matthews et al .
`
`FOREIGN PATENT DOCUMENTS
`
`EP
`EP
`EP
`JP
`WO
`WO
`
`2 369 481
`2 492 814
`2 515 526
`2008-244688
`WO 2011/128514
`WO 2014/150306
`
`9/2011
`8/2012
`10/2012
`10/2008
`10/2011
`9/2014
`
`OTHER PUBLICATIONS
`“ Testdroid Recorder 2.0.9 ” , Testing , Tools , Application Develop
`ment Frameworks , and Mobile and Device Development , [ no date ) ,
`3 pages .
`Optofidelity Touch Panel Performance Test systems Brochure , dated
`Aug. 2013 available at http://www.optofidelity.com/wp-content/
`uploads / 2013 / 09 / OF_TPPT_general.pdf , 4 pages .
`Optofidelity Test Automation Product Portfolio Brochure , dated
`May 2014 available at http://www.optofidelity.com/wp-content/
`uploads / 2014 / 07 / OF_Product Portfolio_2014_En.pdf , 6 pages .
`Video of Optofidelity Touch Panel Performance Tester , dated Oct.
`15 , 2012 available at https://www.youtube.com/watch?v=q_
`sxn1hZu78 , 1 page .
`Optofidelity Watchdog Brochure , dated Oct. 2013 available at
`http://www.optofidelity.com/wp-content/uploads/2013/11/OF_
`WatchDog_EN_www.pdf , 2 pages .
`Optofidelity Measurement Services Brochure , dated Q1 2013 avail
`able at http://www.optofidelity.com/wp-content/uploads/2013/09/
`OF_MeasurementReport.pdf , 10 pages .
`* cited by examiner
`
`

`

`U.S. Patent
`
`Jun . 2 , 2020
`
`Sheet 1 of 7
`
`US 10,671,367 B2
`
`
`
`
`
`150 Consistency Module
`
`
`
`
`
`140 Network Module
`
`
`
`
`
`160 Socket Module
`
`
`
`
`
`340 Consistency Module
`
`
`
`
`
`240 Consistency Module
`
`
`
`
`
`330 Network Module
`
`
`
`
`
`230 Network Module
`
`20
`
`
`
`320 Storage Module
`310 display analysis application
`
`300
`
`
`
`220 Storage Module
`210 display analysis application
`
`200
`
`
`
`
`
`350 Socket Module
`
`
`
`
`
`250 Socket Module
`
`
`
`
`
`application 130 Patching and Testing Module
`
`
`
`
`
`
`
`
`
`
`display 120 Storage Module
`analysis
`
`110
`100
`
`Fig . 1
`
`10
`
`

`

`U.S. Patent
`
`Jun . 2 , 2020
`
`Sheet 2 of 7
`
`US 10,671,367 B2
`
`
`
`
`
`360 Patching Module
`
`
`
`
`
`260 Patching Module
`
`
`
`
`
`350 Socket Module
`
`
`
`
`
`250 Socket Module
`
`
`
`
`
`150 Consistency Module
`
`
`
`
`
`140 Network Module
`
`
`
`
`
`160 Socket Module
`
`
`
`340 Consistency Module
`
`
`320 Storage Module
`
`
`330 Network Module
`310 display analysis application
`
`300
`
`20
`
`
`
`240 Consistency Module
`
`
`220 Storage Module
`
`
`230 Network Module
`210 display analysis application
`
`200
`
`
`
`
`
`application 130 Patching and Testing Module
`
`
`
`
`
`
`
`
`
`
`display 120 Storage Module
`analysis
`
`110
`
`100
`
`Fig . 2
`
`10
`
`

`

`U.S. Patent
`
`Jun . 2 , 2020
`
`Sheet 3 of 7
`
`US 10,671,367 B2
`
`302
`
`304
`
`306
`
`308
`
`
`
`
`
`
`
`Patch application apk with display analysis application
`
`
`
`
`
`
`
`
`
`
`
`Install display analysis application on mobile device
`
`
`
`
`
`
`
`Communicate display parameters to computing device
`
`
`
`
`
`
`
`Obtain display parameters of mobile device
`
`
`
`
`
`patch
`
`Fig . 3
`
`

`

`U.S. Patent
`
`Jun . 2 , 2020
`
`Sheet 4 of 7
`
`US 10,671,367 B2
`
`402
`
`404
`
`406
`
`408
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Determine whether display parameters of mobile device match socket display parameters broadcast at multicast
`
`
`
`
`
`
`
`Patch application apk with display analysis application
`
`
`
`
`
`
`
`
`
`
`
`Install display analysis application on mobile device
`
`
`
`
`
`
`
`Identify multicast socket at computing device with
`
`
`
`
`display analysis application
`
`patch
`
`Fig . 4
`
`

`

`U.S. Patent
`
`Jun . 2 , 2020
`
`Sheet 5 of 7
`
`US 10,671,367 B2
`
`502
`
`504
`
`506
`
`
`
`
`
`Compare indication with display parameters broadcast at
`
`
`
`
`
`
`
`
`
`
`
`Produce indication relating to result of invoked
`
`408
`
`Fig . 5
`
`
`
`Invoke command
`
`command
`
`
`
`multicast socket
`
`

`

`U.S. Patent
`U.S. Patent
`
`Jun . 2 , 2020
`Jun. 2, 2020
`
`Sheet 6 of 7
`Sheet 6 0f 7
`
`US 10,671,367 B2
`US 10,671,367 B2
`
`_______________________________________
`
`200
`
`0O
`
`N
`
`00
`o
`
`608
`
`ot
`
`0
`
`610
`/{3
`
`V
`
`604
`[8
`
`to
`
`606
`8
`
`No
`
`602
`LD
`
`— ————————————————————————————
`
`C
`
`100
`
`OO
`
`\—I
`
`Fig . 6
`
`Fig.6
`
`

`

`U.S. Patent
`
`Jun . 2 , 2020
`
`Sheet 7 of 7
`
`US 10,671,367 B2
`
`702
`
`704
`
`706
`
`708
`
`710
`
`
`
`
`
`Continue to listen at multicast socket with Alpha Device
`
`
`
`
`
`
`
`Identify multicast socket at computing device with
`
`
`
`
`display analysis application
`
`Yes
`
`
`Determine whether display parameters of mobile device
`
`
`
`
`
`
`match display parameters of Alpha device
`
`No
`
`
`
`
`
`Install display analysis application on mobile device
`
`
`
`
`
`
`
`
`
`
`
`Patch application apk with display analysis application
`
`
`
`
`
`
`
`patch
`
`Fig . 7
`
`

`

`US 10,671,367 B2
`
`BACKGROUND OF THE INVENTION
`
`1
`SYSTEM AND METHOD FOR ANALYZING
`USER EXPERIENCE OF A SOFTWARE
`APPLICATION ACROSS DISPARATE
`DEVICES
`
`2
`in terms of hardware . In other examples , different versions
`of the Android OS may run on mobile devices with different
`hardware , or the same version of the Android OS may run
`on mobile devices with different hardware . The version of
`5 the Android OS running on a mobile device may be depen
`dent mostly or solely on the time the OS was downloaded or
`CROSS REFERENCE TO RELATED
`installed on the mobile device , and / or when the user of the
`APPLICATIONS
`mobile device updated the OS . Some versions may be
`This present application is a continuation of U.S. patent
`dependent on both time and / or hardware of the mobile
`application Ser . No. 13 / 692,161 , filed Dec. 3 , 2012 , which is 10 device .
`Typically , the Android platform may also include a non
`hereby incorporated by reference in
`its entirety .
`public application protocol interface ( API ) named ViewS
`erver which may enable the device or a client accessing the
`FIELD OF THE INVENTION
`device to determine the view parameters of an application .
`The invention relates to a system and method for analyz- 15 Because this API is non - public , it may not be enabled on
`production devices ( such as mobile phones or tablets sold in
`ing a user experience of the execution of a software appli
`cation across disparate devices to provide a more consistent
`stores ) . Further , the ViewServer API may change at any time
`user experience of the software application across disparate
`without warning in any version of Android , because it is a
`non - public API . This makes the API incredibly unreliable
`devices .
`20 for application developers . The ViewServer API is also not
`designed for real - time interaction and may be very slow . The
`slowness of the API may be result , in part , because that the
`ViewServer API may return an entire view state of an
`The Android platform is an open source software stack for
`application . The ViewServer API may also dispatch to the
`mobile phones and other devices . An Android Software
`Development Kit ( “ SDK ” ) allows software developers to 25 Android WindowManager to resolve view data , which may
`create applications that will run on the Android platform .
`also contribute to slower speed while using the API .
`Typically , Android applications are written in Java ( a well
`Given the various versions of the Android OS that are
`known programming language ) and are compiled by the
`available and running on mobile devices , an application may
`Android SDK tools , along with relevant data and resource
`not run consistently on the available Android operating
`files , into a single Android application package file . The 30 systems , even when the hardware across those mobile
`Android application package file ( hereinafter “ apk " ) for an
`devices may be identical .
`application may be used to distribute and install the software
`The user experience of the application may also vary
`and middleware for the application to run on the Android
`across Android devices due to the variations between
`operating system . An application's apk may hold the ele
`Android operating systems and / or device hardware on the
`ments of the application , including , for example , program 35 Android devices .
`code for the application , resources , assets , certificates , a
`These issues may also be relevant for developing software
`to run on other open source platforms as well .
`manifest file , and other elements .
`The manifest file may include one or more components
`Conventional systems for developing applications for use
`such as , for example , activities , services , content providers ,
`across a plurality of devices and / or operating systems suffer
`broadcast receivers , and / or other components . An Android 40 from these and other drawbacks .
`device may check an apk's manifest file to determine
`whether a component exists or should be associated with the
`SUMMARY OF THE INVENTION
`application . The manifest file may also include application
`configuration information including , for example , informa
`The invention solving these and other drawbacks of
`tion about permissions , application programming interface 45 conventional systems relates to a system and method for
`( “ API ” ) level , hardware requirements , software require
`analyzing a user experience of the execution of a software
`ments , required API libraries , and / or other application con
`application across disparate devices to provide a more
`figuration information . The manifest file may also contain
`consistent user experience of the software application across
`information about how the application will run on different
`disparate devices .
`types of devices ( e.g. , by providing different layouts or 50
`A system for providing a consistent user experience of an
`scales for different screen sizes , different screen densities ,
`application across disparate devices may comprise a com
`and / or other device - specific configurations or features ) .
`puting device including a display analysis application , and
`When the Android device does not support the configura
`one or more mobile devices including a display analysis
`tions in the manifest file , then the Android device may return
`application
`an error or may use default settings . Conventionally , the 55
`A display analysis application may be installed on a
`manifest file ( and the application's apk ) may be created by
`mobile device . The mobile device with the display analysis
`application developers and delivered in a final form to the
`application installed thereon may include a memory that
`Android device for installation and use . The performance
`stores at least a version of an operating system , at least one
`and scalability of the application may be considered by the
`application , and the display analysis application . The mobile
`application developers before making the application avail- 60 device may include a network module configured to receive
`a query for one or more display parameters for an applica
`able for download and installation .
`Because the Android platform is open source , numerous
`tion with a display analysis patch from a display analysis
`versions of the Android operating system ( “ OS ” ) may be
`application residing on the computing device . The mobile
`available . For example , a first version of the Android OS
`device may include a consistency module configured to
`may run on a first mobile device , and a second version of the 65 access an application with the display analysis patch , obtain
`Android OS may run on a second mobile device , even
`the one or more display parameters of the mobile device via
`though the first and second mobile devices may be identical
`the patched application , and transmit the obtained one or
`
`

`

`US 10,671,367 B2
`
`4
`3
`requests and responses from the computing device and the
`more display parameters to the display analysis application .
`mobile device , respectively , the computing device may
`The display parameters may include , for example , available
`obtain one or more display parameters of the mobile device .
`widgets , screen characteristics , display characteristics of a
`A socket module of the computing device may make
`window of an application , screen shots of a view of an
`application , and other parameters . The mobile device may 5 available one or more local multicast sockets at which
`also include a socket module configured to enable the
`mobile devices including the patched application may listen
`mobile device to communicate via a multicast socket at the
`and communicate data . A socket may typically be repre
`computing device . In some implementations , the mobile
`sented as a combination of an IP address and a port number ,
`device may also include a patching module that patches an
`and may facilitate inter - process communication across a
`application's apk with the display analysis application .
`10 network . In some implementations , the socket module of the
`A display analysis application may also reside on a
`computing device may use a portion of an SHA - 1 encoded
`computing device . The computing device and the mobile
`string to represent the multicast socket . The socket module
`device may communicate over a network , or other commu
`of the computing device may transmit the SHA - 1 encoded
`nication channel . The computing device including the dis
`string to mobile devices that have installed the display
`play analysis application may include at least a storage 15 analysis application . A mobile device with the display analy
`configured to store a plurality of display parameters , infor
`sis application installed may communicate with the com
`mation about one or more mobile devices , application infor
`puting device to receive the SHA - 1 encoded string . In some
`mation , and one or more socket addresses . The computing
`implementations , 12 of the 40 bytes of the SHA - 1 encoded
`device may also include a plurality of modules such as , for
`string sent by the display analysis application may represent
`example , a patching and testing module configured to patch 20 the address of the socket . One or more other bytes may
`an application with an apk and / or transmit commands to be
`represent the port number of the socket .
`invoked by a mobile device , a network module configured to
`The networking module of the mobile device may connect
`transmit and receive information from one or more mobile
`to the computing device using one or more methods of
`devices , a socket module configured to create at least a first
`authentication ( e.g. , using a shared secret ) . In other
`socket to be used for communication with one or more 25 examples , the mobile device may receive a shared secret
`mobile devices , and a consistency module configured to
`when installing the display analysis application on the
`obtain and / or compare display parameters from one or more
`device . The socket module of the mobile device may use a
`shared secret between the mobile device and the computing
`mobile devices .
`In some implementations , the patching and testing mod
`device to hash the SHA - 1 encoded string sent by the socket
`ule of the computing device may be configured to patch an 30 module of the computing device . The socket module of the
`application's apk with the display analysis application . For
`mobile device may then identify , using the SHA - 1 encoded
`example , the patching and testing module may use a patch
`string , a multicast socket via which the mobile device and
`provided from the display analysis application on the com
`the computing device may communicate . The socket module
`puting device . The patching and testing module may update
`of the mobile device may then connect to the multicast
`an application's apk with the patch . The patched apk may be 35 socket and thus be able to listen at the multicast socket
`communicated to a mobile device when the mobile device
`and / or broadcast information to the multicast socket .
`requests the application .
`In some implementations , the mobile device may receive
`Alternatively , in an implementation in which a patching
`an application from the computing device . The apk of the
`module is disposed at the mobile device , the patching
`application may be patched with a patch from the display
`module of the mobile device may be configured to patch an 40 analysis application on the computing device . The consis
`application's apk with a patch from the display analysis
`tency module of the mobile device may access the patched
`application of the mobile device . For example , the patching
`application after it has been received . In some implementa
`module may use a patch provided from the installation of the
`tions , the consistency module of the mobile device may
`display analysis application on the mobile device . The
`receive one or more commands to invoke from the comput
`patching module may update an application's apk with the 45 ing device . The consistency module may then transmit one
`patch . The patched apk may be used when the application is
`or more display parameters to the computing device based
`instantiated . The consistency module of the mobile device
`on an invocation of the one or more received commands .
`may be able to obtain a display parameter of the device via
`For example , the consistency module may broadcast the
`the patched application . For example , the display analysis
`display parameters at a multicast socket created by the
`application of the mobile device may run on a same thread 50 socket module of the computing device . The consistency
`module of the computing device may then compare display
`as the application .
`In some implementations , the patching and testing mod
`parameters of the mobile device with one or more display
`ule of the computing device may also facilitate the invoking
`parameters stored at the computing device ( or broadcast at
`of a command on the mobile device . For example , the
`the multicast socket ) . Based on the comparison , the consis
`patching and testing module may request that the application 55 tency module of the computing device may transmit an
`invoke a command . In another example , the mobile device
`indication to the mobile device regarding whether display
`may invoke a command based on previous commands
`parameters of the mobile device match display parameters at
`invoked by the mobile device . The command may include
`the computing device . The display parameters broadcast at
`one or more instructions to be executed by the application to
`the multicast socket may be from one or more other devices
`determine whether a specific type of view of the application 60 that include the display analysis application and the patched
`is supported by the mobile device . In some implementations ,
`application .
`the command may be invoked on the mobile device using a
`In another example , the consistency module of the mobile
`simulator or testing tool such as , for example , the Android
`device may obtain display parameters broadcast at the
`Monkey tool . In some implementations , the consistency
`computing device and may compare the broadcast display
`module of the mobile device may invoke the command and 65 parameters with the display parameters of the mobile device .
`may transmit an indication to the computing device based on
`The consistency module of the computing device may also
`the results of the invoked command . Through a series of
`store the broadcast display parameters at a storage module of
`
`

`

`US 10,671,367 B2
`
`5
`6
`Alpha device may broadcast at the multicast socket a SHA - 1
`the computing device . The consistency module of the com
`encoded serial representation of the display parameters
`puting device may also associate the broadcast display
`relating to a view of the application on the device based on
`parameters with the socket at which the display parameters
`the invoked command . The Alpha device and / or the patching
`were broadcast .
`By enabling mobile devices to transmit and / or compare 5 and testing module of the computing device may also
`display parameters , a consistency module of the computing
`broadcast the command at the multicast socket . In some
`device may track a display produced by the execution of the
`implementations , the patching and testing module of the
`patched application on one or more of the mobile devices .
`computing device may store the invoked commands at the
`A consistent execution of the patched application across
`storage and associate the invoked commands with the mul
`similar devices may be monitored and / or enabled . For 10 ticast socket . A mobile device that is also connected to the
`example , the execution of the patched application across
`multicast socket may invoke the same command on its
`similar devices may be monitored by the computing device .
`device . The mobile device may then compare the display
`The computing device may store information related to the
`parameters based on the invoked command with the Alpha
`execution of the patched application across similar devices .
`device's broadcast display parameters .
`The computing device may also store whether one or more 15
`The commands invoked by the Alpha device may be
`devices ( and / or one or more types of devices ) have a
`similar to the commands invoked by the mobile device in its
`consistent execution of the patched application .
`communication with computing device detailed above . For
`The computing device may store the results of an execu
`example , a command invoked at the Alpha device may be
`tion of the patched application across multiple devices . For
`based on one or more previous commands executed by the
`example , the computing device may store information relat- 20 Alpha device . The patching and testing module may main
`ing to a disparate execution of the patched application across
`tain a predetermined list of commands to be invoked by an
`one or more devices . The computing device may analyze the
`Alpha device for a specific application . In some implemen
`stored information related to the disparate execution of the
`tations , these commands may relate to the patched applica
`patched application . The computing device may also ana
`tion to be executed on the Alpha device . The predetermined
`lyze the stored information to determine a number of dis- 25 list of commands may also encompass a variety of different
`parate executions . The computing device may also analyze
`display parameters that may result from execution of the
`the stored information to determine a percentage of devices
`patched application on a variety of different mobile devices .
`associated with a disparate execution of the patched appli
`The commands may also relate to the actions available on
`one or more mobile devices . The commands sent by the
`cation .
`The computing device may compare the stored informa- 30 patching and testing module may also be based on one or
`more previous commands invoked by the Alpha device .
`tion relating to a first patched application with stored infor
`mation relating to a second patched application . For
`When display parameters of the mobile device match
`example , the computing device may compare whether the
`display parameters of the Alpha device after invoking the
`first application or the second application has a larger
`command , the mobile device may continue to listen at the
`number of disparate executions . Other analyses may also be 35 multicast socket at which the Alpha device broadcasts its
`performed .
`display parameters . The Alpha device may continue to
`The mobile device may receive data relating to the
`broadcast , at the multicast socket , the commands that it
`execution of an application executing on the device . The
`invokes and / or the resultant display parameters for the
`data may be broadcast at the multicast socket or may be
`respective commands . The consistency module of the
`received from the computing device . In some implementa- 40 mobile device may continue to invoke the same commands
`tions , the computing device may analyze the display param
`as the Alpha device and compare its resultant display
`eters received from mobile device and may develop a patch
`parameters with those of the Alpha device . For example , the
`for the application to run on mobile device based on that
`consistency module of the mobile device may invoke the
`analysis . The patch may tailor the execution of the applica
`same commands as the Alpha device until its resultant
`tion on the mobile device to use the display parameters 45 display parameters no longer match those of the Alpha
`included in the patch . Alternatively , the computing device
`device , or until the Alpha device has invoked all of the
`may transmit program code or other functional language to
`commands in a predetermined list .
`the mobile device that enables the mobile device to support
`The mobile devices that match the display parameters of
`the display parameters produced by the execution of the
`the Alpha device after a list of commands have been invoked
`application . Other types of data may also be sent to the 50 may be considered to be in a same pack as the Alpha device
`mobile device to enable an execution of the application on
`and may appear to have the same display functionality ( e.g. ,
`same screen size , chipset , vendor , and / or other display
`mobile device .
`The consistency module of the mobile device may com
`functionality ) as the Alpha device . In some implementations ,
`pare the display parameters of its device with display
`the computing device may store which devices ( and / or
`parameters broadcast from one or more other mobile devices 55 which types of devices ) are in one or more packs .
`via the multicast socket . In some implementations , the
`In some implementations , the mobile device may receive
`mobile devices connected via a multicast socket may arbi
`data relating to the execution of an application executing on
`trarily choose one mobile device ( e.g. , the device with the
`the device . The data may be based on the pack in which the
`lowest or highest device serial number ) as an “ Alpha ”
`mobile device fits . The data may be broadcast at the multi
`60 cast socket , or may be received from the computing device .
`device .
`Mobile devices connected via the multicast socket may
`In some implementations , the computing device may ana
`lyze the display param

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket