• Post Reply Bookmark Topic Watch Topic
  • New Topic

Why does program sometimes wait 30 seconds?  RSS feed

 
Norm Radder
Rancher
Posts: 2240
28
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
My Android program is supposed to wakeup the screen when I lift the tablet to a vertical position. Most of the times the screen comes on quickly (1-2 seconds).  However sometimes it does not come on until almost exactly 30 seconds later.
Why does Android wait sometimes and sometimes work as expected?  Why is the wait always about 30 seconds?

My tablet is a Lenovo A10-70F running Android version 5.0.1
 
Pete Letkeman
Ranch Foreman
Posts: 904
26
Android Chrome IntelliJ IDE Java MySQL Database
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
A few questions for you:
  • Is this a program that you have created?
  • Did you use Android Studio or some other IDE e..g Visual Studio?
  • What do you get when you try profiling the app within an IDE?
  • If you reboot your device and then start the App does it still take 30 seconds to load?
  • Are you able to share the App with me? I have a Nexus 2013 7" tablet running Android 6.0.x and a phone running Android 6.0.x as well
  •  
    Norm Radder
    Rancher
    Posts: 2240
    28
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    Is this a program that you have created?  Yes

    Did you use Android Studio or some other IDE e..g Visual Studio?  Yes, Eclipse

    What do you get when you try profiling the app within an IDE?  Never tried

    If you reboot your device and then start the App does it still take 30 seconds to load? No.  It's not the load time, its the time for the screen to come on after having been off for some time. The program is supposed to sense device rotation and turn on the screen at about 70 degrees to vertical.
    I have not been able to correlate any event with when it takes 30 seconds.

    Are you able to share the App with me? I have a Nexus 2013 7" tablet running Android 6.0.x and a phone running Android 6.0.x as well
    Yes, here is a link to the apk file:
    http://normsstuff.x10host.com/Testing/WakeUp.apk

    Here is the source:  https://github.com/NormR/Wakeup

    Thanks for the response.  Good luck testing.
     
    Pete Letkeman
    Ranch Foreman
    Posts: 904
    26
    Android Chrome IntelliJ IDE Java MySQL Database
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    Seeing as the App was created with Eclipse the first thing that I would recommend is that you migrate the App to Android Studio. Google has a how to here
    https://developer.android.com/studio/intro/migrate.html
    It is totally possible that once this project into Android Studio that the problem will be fixed. Google released Android Studio more then two years ago and it's 100% free for both personal and professional development.

    Or if you don't want to use Android Studio you can use Microsoft Visual Studio
    https://www.visualstudio.com/vs/android/
    Microsoft released the latest Visual Studio for Android development early 2017 and it's 100% free for both personal and professional development.

    I know that this may seem like a lot of work to migrate the Eclipse project to either Android Studio or Visual Studio, however I would say that this is the best place to go from here to fix the problem(s) you are experiencing.
     
    Norm Radder
    Rancher
    Posts: 2240
    28
    • Likes 1
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    Thanks for the response.
    to fix the problem(s) you are experiencing.

    Can you explain  how a different IDE would effect how a program executes?

    I've written over a dozen programs with eclipse without problems like this one.
     
    Ron McLeod
    Bartender
    Posts: 1602
    232
    Android Angular Framework Eclipse IDE Java Linux MySQL Database Redhat TypeScript
    • Likes 1
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    Pete Letkeman wrote:Seeing as the App was created with Eclipse the first thing that I would recommend is that you migrate the App to Android Studio.

    I'm with Norm.  I use Eclipse for Android development and never seen any runtime problem caused by the IDE.  Can you point to an case of where this happened?
     
    Pete Letkeman
    Ranch Foreman
    Posts: 904
    26
    Android Chrome IntelliJ IDE Java MySQL Database
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    "Can you explain  how a different IDE would effect how a program executes? "

    Sure thing.

    When you import the project from Eclipse with ADT into Android Studio and/or Visual Studio the library references will should/would probably get updated. So instead of using something like the Android 4 support library version 20.15 (or whatever) you would be using the latest version of that library whatever that happens to be. Because the problem is occurring intermittently it may not be a problem with code that the user created, but the library that Google has provided. Google does update their libraries at least once every two months and bugs do get fixed.  There is also a chance that one or more of the linters or plugins provided for Visual Studio or Android Studio does a better job then the comparable version with Eclipse. When the project is imported into Android Studio, Android Studio does many checks and some things could easily fixed (or broken for that matter),

    Aside from all of the above, with Android Studio and I believe Visual Studio as well, you can quickly and easily emulate different devices with different screen sizes, storage space and RAM, which you could use. This could be used to quickly see what happens when you run out of RAM, just decrease what the emulated device has available. And you can rotate the display of the device or change the resolution/DPI. I know that this functionality was included with ADT, but with https://developer.android.com/studio/run/index.html the wait times have been drastically reduced for sending the changes to the emulated device to see your results.

    Not only that Google is no longer supporting the ADT plugins with Eclipse per the announcement posted here https://developer.android.com/studio/tools/sdk/eclipse-adt.html
    "The Eclipse ADT plugin is no longer supported, as per this announcement in June 2015.
    The Eclipse ADT plugin has many known bugs and potential security bugs that will not be fixed."

    I personally (and I'm not expert) would think that using the IDE recommended by Google for Android development would get you the best results.
    For instance, and this is just a hypothetical here so please don't jump down my throat, but one of the files could be saved using UTF-8 instead of UTF-16. There could have been, and I'm not saying that there is, a problem with ADT or Eclipse when a file was saved or something like that. Or perhaps something was interrupted slightly wrong when the APK was created using ADT (again hypothetical). And yes I do realize that Google and/or Microsoft can and most likely have made left some bugs in Android Studio and Visual Studio, however I personally think that it would be better to use either of those to diagnose the problem.

    I know that plenty of people still use Eclipse for a lot of development, including Android development, however if you are running into seemly random recurring problems then it's possible that the IDE you are using can be part of the problem, especially when it's not supported by the company what created it for the last two years or so.

    Eclipse is free, Android Studio is free, Visual Studio is free, you only cost is the bandwidth, some hard drive space and your time learning the IDE for any of them.

    All that aside, you should connect your device to your system to get diagnostic data from the Android debugger. Maybe when you get a better idea as to what is happening under the hood, thanks to the debugger, you'll see something like a variable isn't set correctly or that all of your memory is being used up for something else, etc who knows?
     
    Norm Radder
    Rancher
    Posts: 2240
    28
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    Thanks for the thoughtful response. 

    connect your device to your system to get diagnostic data from the Android debugger.

    The problem is the problem does not happen very often. I can run the program for one or two days between the 30 second delays.  I use the tablet many times a day for reading the news, etc.
    I lay it down, leave it for a time and then pick it up to continue reading.  Most of the time the screen comes on.  Occasionally it takes 30 seconds before the screen comes on.


    Did you try installing the program?  What happened?
     
    Pete Letkeman
    Ranch Foreman
    Posts: 904
    26
    Android Chrome IntelliJ IDE Java MySQL Database
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    I did install the app, no problem starting it on Nexus 7 tablet running Android 6.0.x.
    I click the button to start service.
    I pressed the power button to dim the screen and put the device in standby mode. Same thing happens when the screen times out.
    Woke up the device by flipping the cover, saw that the service was still running on as shown on the unlock screen.
    Unlocked the device and then cancelled the service and exited the app.

    Maybe I'm missing something here. You want your service to come to life when you move or rotate it? Android does this...at least Android 6. So what I'm a missing?
     
    Ron McLeod
    Bartender
    Posts: 1602
    232
    Android Angular Framework Eclipse IDE Java Linux MySQL Database Redhat TypeScript
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    I reliably see the problem with the two two devices that I have:
       - Galaxy Tab S2 (API Level 24)
       - Nexus 5 API (API Level 23)

    The delay seems to increase after each attempt, with the tablet eventually not waking-up after 5 or 6 attempts.

    The problem does not occur when monitoring logcat using adb.
     
    Norm Radder
    Rancher
    Posts: 2240
    28
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    Woke up the device by flipping the cover,

    Not sure what that means.  My tablet does not have a cover. 
    The program is supposed to wakeup the device.

    My usage:
    start the app
    normally spend time reading
    lay the tablet done in a horizontal position and stop using any apps long enough that the display goes off.
    wait a few minutes while the screen is dark
    pick up the tablet and rotate it to a vertical position
    The program should turn on the screen in a few seconds.

    Did you turn on debug mode so the app writes debug info to a file?
     
    Norm Radder
    Rancher
    Posts: 2240
    28
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    The delay seems to increase after each attempt

    That's different.  For me the long delay is about 30 seconds every time.  Not too much less or more (I estimate the time by counting one thousand one, one thousand two, etc)
    Also the times written in the debug file are about 30-31 seconds from when the program wants to turn on the screen and when the screen is detected to be on.

    Thanks Ron.
     
    Norm Radder
    Rancher
    Posts: 2240
    28
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    A few lines from the debug log files:
    Turned on screen with no delay:

    Sensor values=[-0.249, 0.067, 9.816] cnt=60001 acc=0, hitCount=0 at T 18:46:05
    Sensor values=[-0.162, 0.076, 9.778] cnt=70001 acc=0, hitCount=0 at T 19:08:24
    WU Sensor values=[-7.489, -0.718, 2.585], haveShown=false, hitCount=1, cnt=79125 at T 19:28:43
    Sensor values=[-7.489, -0.718, 2.585], since last=11125410, cnt=79126, hitCount=2 at T 19:28:43  <<<<<<<< Rotation detected
    ScrnOnOffSrvc Turned on screen at T 19:28:43 ScreenOn=true  <<<<<<<<<<<< 0 seconds after

    Turned on after 31 seconds

    Sensor values=[-0.21, -0.057, 9.826] cnt=60001 acc=0, hitCount=0 at T 09:22:01
    WU Sensor values=[-7.613, 0.517, 2.911], haveShown=false, hitCount=1, cnt=66703 at T 09:37:18
    Sensor values=[-8.14, 1.13, 3.237], since last=1828703, cnt=66704, hitCount=2 at T 09:37:18  <<<<<<< rotation detected
    ScrnOnOffSrvc Turned on screen at T 09:37:49 ScreenOn=true   <<<<<<<<<<<< NOTE 31 seconds after above
     
    With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
    • Post Reply Bookmark Topic Watch Topic
    • New Topic
    Boost this thread!