AdMob SDK on Android: multiple SCHTimer Threads after showing Ads - java

I am using Google AdMob for showing Ads in an application of mine. Everything is working fine, unless that the number of Threads add up over time. My application will get more and more DaemonThreads named "SCHTimer" that are created internally by AdMob.
It is the same problem as this guy has: https://groups.google.com/forum/#!msg/google-admob-ads-sdk/EvfESpBSjbY/DEyCfxP4hxcJ
Unfortunately, there is no answer to it on the forum. My AdMob initializion/destroying looks very similar. After debugging with several breakpoints, I can verify that the destroy part gets called.
Also I couldn't find any indication of leaking objects in the HPROF profile.
Therefore, I am running out of ideas, what else to look for. Did anyone else experience this problem? (How) Did you solve it?

Related

App freezes on splash screen for some users

Some users report an issue: they launch the app, the splash screen appears, but nothing else happens. Splash screen just stays on without ANR or errors.
I can't see any logs because no loggers were initialized yet, and I don't even know if the onCreate method was called.
Important notes:
99% of users don't experience this
users that report such issue say that it's persistent - they can't use the app at all
some users say if they launch google play store first and then launch app - it works fine, but without that step it always freezes at the splash screen, so they have to launch google play store each time before launching the app
To send any data anywhere I need to initialize a bunch of dependencies, but looks like it doesn't even get to that point. App works fine on millions of devices, but a few thousand users reported this issue. Cannot post application initialization code as it's huge.
Questions:
What can possibly be the reason of this?
Where would be the best place to start searching for the bug?
Is there a way to determine the first line of code where the app is not launching as it should?
Is there something that the google play store triggers that applications need to launch properly?
It was because of googlePlayStoreAppUpdateManager.appUpdateInfo check for updates that returns a Task, but sometimes it doesn't actually call nor success nor fail listeners, so we hang forever. Solution was to add RxJava wrapper with timeout and limit waiting time for Google to answer to some reasonable time.
It looks like some devices, like Xiaomi or Honor are not allowing google play manager to check for updates unless explicitly started by the user, so this check should be done carefully.

My app got admob violation of Site Behavior: Navigation and i don't knew why?

i received a message blow from admob telling me that i have put some misguided links in my app.
i tried to look and fix the problems in the app but nothing ,i improve it a little and made sure that every link is true but it's still sanding the same message.
THE MESSAGE:
As stated in our Program policies, sites or apps displaying Google ads should provide substantial and useful information to the user. Users should be able to easily navigate through the site or app to find what products, goods, or services are promised. Examples of misguided navigation include, but are not limited to:
False claims of downloadable or streaming content Linking to content that does not exist Redirecting users to irrelevant and/or misleading webpages Text on a page unrelated to the topic and/or business model of the website.
please if someone familiar with this problem could he or she give me some hints ,i well live the link to the app if someone want to check something or could see something i didn't and thank you .
link
the answer was my Target audience and content i putted all ages on my target audience when i should have put from 13 and older i hope it fix your problems cause there is other apps that this did not work on them thank you
Navigational policy means you can not setting full screen ads between two screen navigation. If you placed full screen advertisement like Tap on button to navigate to next screen and in between any full screen ad appear that against admon policy.
Correct way.
On app launch full screen ad allow to show immediately before launch home screen. You can read full with example google doc : https://support.google.com/admob/answer/6201362?hl=en
I hope that helps!
Happy Coding :)
Sometime banner ads cover or overlap the contents of the app. I had same issue and after fixing the banner ads published my app again and issue resolved. So in my opinion check your banner ads and also check any direct link that leads to another app or webpage.
I have received this message twice. As we are not able to communicate with a human being who would explain what exactly are we violating, it took me some time, failed attempts and luck to finally 'fix' it.
In the first case, under some conditions, I was interpreting the orientation sensors incorrectly and showing the wrong data to users.
In the second case, I was linking to a completely valid web page via http URL. Replacing it with https version fixed the problem.
Hope it will help someone.

How to auto receive calls programatically in android versions above kitkat

I am trying to develop an app which auto receive calls from particular numbers.
Like i can add the numbers that i want to auto receive. I did a lot of research and found similar questions but none of them worked. Some codes did work but only upto kitkat version and code did not work on versions above kitkat. I want the code that support all android versions. Its very important for me so please answer quickly. I really need your help.
I want the app to work in background so also please help me and write the code to implement this in a background service.
I was successful to run the app on versions upto kitkat but above kitkat the code does not work.
Android very specifically does NOT allow this, because doing so is an opening to a lot of telephone scams involving reversed charges. They've actually never allowed it, but people found hacks on old versions to get around that. Every time Google finds one of these, they shut it down in the next version. So there is no reliable way to do it, and if you find a way expect it to disappear shortly afterwards.

Making an FPS counter for an Android app (having the .apk only)

I want to make an FPS counter for Android apps. While doing research I found a lot of examples for doing this when you have access to the source code of the app, since the counting is done in the main drawing loop.
The problem is I don't have the source code, I have only the .apk of the app so there is no way to modify it. My question is, how could this be done? (at least an idea to start with). And I am sure it can be done somehow, I've seen an app like this on Google Play.
Thanks!
I just installed the app.
At the beginning they ask for the activation of USB debugging on the device. And this why it needs a connection to the PC.
So this is how they are able to get such kind of information.
I would advise you to look at USB debugging of Android apps and see what is possible there (such as taking multiple screenshots per second)

Possibly non-intrusive method to change complete android application code with a library

I'm having quite tough problem while developing a testing framework for android apps. The text got a bit long so the actual question is in bold for those that don't want to read the context.
Basically, what I'd like to achieve right now is to trace user activity while he's using the application as one of the features. There's my app that manages context data all the time and developer's app - the one being tested. My idea to do this was to get coordinates where user touched the screen along with taking a screenshot simultaneously. Then I'd use the coordinates to mark the spot on the screenshot to get the idea of what user was doing the whole time with the app. Take hints on user experience and trace crashes.
Non-system apps cannot take a screenshot for security reasons, but application itself can take a screenshot of its Activities without much trouble for non-rooted users, e.g. like here. My only hope here is to interfere with developers' code to implement the functionality of doing so while my testing app is running. Each Activity then would have to extend my overridden Activity instead of regular one, implement an interface, implement broadcast receiver etc.
I am going to write a library for developer who would like his app to be tested with my framework. I'd like it to do the job for me and be as non-intrusive as it's possible for him to use. How to achieve that the best way?
Ideal case would assume linking the library to project with maybe a small addition in manifest that'd get the job done and after just unlinking, removing that bit of xml in manifest for production.
That's an open question. I don't expect any bits of code, but some nifty Java trick, Android OS functionality or even completely other approach that'd solve my problem
I tried to be as clear as possible with the question, but that's a quite tough matter for me to describe so that could have turned out contrary. Don't hesitate to ask me for more details, to speak my mind more clearly or even rewrite the question. Thank you all very much for help!

Categories

Resources