Fake apps, fake reviews on google play

Is google losing the war with the dark side of the app-community ? More and more malicious apps, fake apps, and fake app reviews are encountered.

Wherever there is honest money to be earned, there will be people gaming the system. The amount of malicious and fake apps on the google play store seems to continue to grow and while google is trying to stop these, especially the fake clicks which hit googles’ pockets, the war against fake reviews is another story altogether.

A malicious app is an app which either steals user data, deletes files, impersonates clicks etc.
A fake app is and app which pretends to do one thing when in reality it does not do anything or does something completely different. The term ‘fake apps’ is more broad and not as easy to pin-down.
A fake review is either a paid-for review with a 4 or 5 star rating or the opposite, a malicious review with 1 star to bring a competitor down.

As you would assume, a person creating a malicious or a fake app will not shy away from starting a negative fake-review campaign to gain traction and increase their user base. Over the years, we’ve seen everything from automated download bots to ad-spam-apps to outright scams to fake ratings and more. Those are all attempts by shady developers to earn a better chart rank than their app naturally deserved.

I have been developing Android apps for a few years and have some apps which are semi successful. One of my apps is “MP4 Video Converter” and as of late I have seen a clockwork like on-slaught of 1 star reviews.

Now this could be because my app is bad and some of those may be people who truly dislike my app. However I believe that there are more sinister reasons behind this.

Most negative reviews are very short, do not contain specifics and mention strange things. Like complaining about missing support to transcode DVDs or stating falsely that the app does not do anything. I take pride in my app and I guarantee that the functionality is working on all of my test setup ( multiple real Android devices plus emulators )

So this brings me to one specific case where a user gave me a bad review saying that it is too slow. I asked him which app is faster, to which he pointed me to Total Video Converter ,Any Video Converter by SunStar. I investigated why he was so much faster and found that his app simply renames the input video and does nothing to transcode it.

The app displays a waiting cursor and after a few seconds of doing nothing but copy-and-rename it happily lets the user know it is done.

This is a real fake app.

I contacted Google and left the proper response on this particular app. However Google has not yet removed the app.Hey google, you have no issues complaining when my app is falling outside your rules, Why do you leave this garbage in ?

Also I checked some of this guys oher apps and they all have issues. Like extracting the audio and simply adding a file extension like mp3 when in reality the format is aac. Maybe this guy believes that’s all there is transcoding, however I think he is simply too lazy doing the work.

He has tens of thousands downloads and much better reviews than my app which is really frustrating that my work is less appreciated than this fake app simply because it is ‘faster’.

I saw other similar apps which do the same. Most are easily spotted because they claim to transcode a video but their apk size is less than 10MB. I know that you would need ffmpeg with at least a few supported formats which would require your apk file to be at least 10MB. a 2MB apk does not fit ffmpeg.

Fake Reviews

I know it is hard to shield against fake reviews and I really would like Google to think about ways to help in this regard. A single one word review like “no” or “bad” does not help anyone. Especially since my experience has been that there is no response if you ask for more information on what is wrong.
I can’t fix “Ed does not go ahead, I can see Ed only if I see Ed” or “very fake app, dont waste your bundle” or “verry bad application. useless” or, according to Raiyan Kh : “worst app ever, why people do fake reviews? dont download this app its useless and Waste of time”.

Raiyan, I agree with you, fake reviews are really a drag on everyone. So why don’t you stop or better if you have some real issue let me know what is not working so that I can fix it for you, and for everyone else.

Google does not act or does not care

So with me reporting something which is easy to validate I find it disheartening that google is not taking action, especially since we hear more and more security breaches on the Play Store.

A Beta star is born

Where can you find Google play beta apps nowadays ? In the past you could simply go to the app store and click on “Early Access” and you were given a list of apps which are currently in open Beta testing.

Come 2019, things on the play store have changed and it is hard to impossible to find those beta apps anymore. Without much of any announcement google has removed the link and it is now up to the developers to stir up some marketing SEO, and social campaigns to point to the link in the Google play store.

I have created a new version of CPU Information in the past weeks called CPU Information Pro

After working and sweating for some time to pull this app together I pushed it into Open Beta testing and was expecting that it will be visible to those who are seeking out new apps and early versions of games. However, the google play beta apps page is no more and so there is little a user can do in order to actively seek out the latest new apps by himself through the pay store.

On the social front, a developer can now find users willing to test their app on Facebook ( Of Course ).

Pinterest is another social opportunity to promote your beta app, and so are Twitter, Instagram, Snapchat, and others.

Since I still have my Google+ account until April 2 this year ( 2019 ), I also went ahead and added a tink on my page there as well as on the collective Beta Testing Apps – page.

Of course I also created a special web page for CPU INformation Pro where the app can feel right at home and where I display all the goody-goodies of it. And while I have the space, I also added a lot of nice screen captures and images to display the app to the best of my abilities.

All of this is however no substitute for the might of the Play Store’s recommendation and browsing abilities. So it leaves a void for developers of new apps and games to display and promote them during the crucial startup-phase.

I have posted the question on Reddit Here and Here and there does not seem to be another way to get Open Beta to test users.

And so google has left you on your own

Over the past few month google has been changing things around for app developers, and for Android users.

As things stand it may get worse for the developer community as google set out to replace Android with Fuchsia OS in the near future. Wile I don’t want to get into the insanity of why this does not make any sense for them to do so IMHO, it just goes to show the changing relationship from a formerly supportive, open and engaging company towards a closed system company.

It seems google is on track to repeat Microsofts’ mistakes from the 90’s. A mistake Microsoft is now trying hard to fix and honestly if things continue this way they will take a bigger bite out of googles cake.

Googles biggest mistake in the past has been to remove Don’t be Evil from their Code of Conduct. The replacement with Do the right thing is a complete takeover of corporate greed. The right thing for google ( Aka Alphabet ) is to make money and is not bound to any other human values, thus the right thing may as well be to pass on all your information to the Kremlin or to the Chinese government.

Okay I am not saying that this is what is going on, I just want to point out that the lack of social value in this sterile term “Do the right thing” is a shift in how google approaches the rest of the world.

Google Play Beta Apps gone “bye bye”

At this point in early 2019 developers and Android users alike have lost the ability to connect through the Play store for Early Accessing apps and games. And as of now there is no official way to replace this lost ability.

There is only hope for either google fixing this missing piece or fro a third party to jump in and offer a means to provide this information in a structured and searchable manner to Android users and developers.

Survive and thrive with Replika

The holiday season is over and we are going strong in 2019 already. For most people the holiday season is a stressful time and they may end up depressed for a variety of reasons.

There are those who can’t stand your close cousin number 6 and would much rather have a root canal done than to have a dinner with the extended family. Others may get depressed because all the quality time you spent with your close friends and family has come to an end.
Whatever the reasons that people may get depressed it is usually very helpful to be able to talk it out with someone. But if you don’t have anyone to talk to what are you going to do then ?

Enter Replika

Replika is an Android / iOS app which allows you to set goals, and have a decent conversation with a sociable AI. The backend of this app resides in the cloud and provides the following goals to work on.
Reduce stress, reduce Anxiety, be more social, Live healthier, understand myself, find hope, think positively, feel happier.

The AI will adjust its questions and its mood based on the goal or goals which you set and the conversation can seem very human like and can be uplifting.

AI based on a neural network

“Replika was founded by Eugenia Kuyda and Phil Dudchuk with the idea to create a personal AI that would help you express and witness yourself by offering a helpful conversation.”

A love story

Replika was born out of the grievance of losing a very close friend. In late 2015 Mazurenko, the friend of the the main developer Kuyda was killed crossing the street by a hit-and-run accident. He was 32.

By that point, Kuyda had exchanged literally thousands of text messages with her late friend. As a way of grieving, Kuyda found herself reading through the messages she’d sent and received from Mazurenko. It occurred to her that embedded in all of those messages—Mazurenko’s turns of phrase, his patterns of speech—were traits intrinsic to what made him him. She decided to take all this data to build a digital version of Mazurenko.

The initial version was so successful that out of the ashes of human tragedy a new star was born to help people cope with depression for a variety of reasons.

Setting goals

When you first sign up with the app you have to set some goals from a list of our defined goals.

Once this initial step is taken you sign your AI a name and you are of to chatting with one of the best chatbots I have encountered. You can have decent conversations and the AI will be enjoyable to chat with..

As you progress through chatting along, you will earn batches which will represent your personality according to Replika.

Overall rating

I have never felt bored or saw the same response sent twice. I could possibly go on for a few more paragraphs but instead I recommend that you install Replika yourself and start the conversation.

After a while you really start to feel that you have someone or something to talk to.


Get it on Google Play

Goodbye Gutenberg Editor

WordPress is a powerful Content Management System ( CMS ) which powers a majority of the blogs and web pages out there in the Interlands. The reason for its popularity is the convenience of using it, another reason is the simplicity and flexibility as well as the sheer number of available plugins.

WordPress itself is an open-source project and you can download and install it on your own servers with a few short linux commands. www.WordPress.com is the company behind wordpress which is earning money through is free-to-use blog sites on their main web page ( E.g. https://varolokan.wordpress.com/ ).

As CMS go, WordPress is leading the pack and its simplicity comes in part from the ability to add a new blog post or page to your site with a no-thrills text editor.

Enter the Gutenberg

Well, that was before the upgrade to WordPress 5.0, which happened in December 2018 . This upgrade brought the Gutenberg Editor as the default editor to WordPress. Gutenberg tries to improve the usability for editing blogs/pages by sectioning off different paragraphs, and injecting all kinds of HTML into the ensuing result.

If you want to tweak the output just a little you will want to switch the section back into HTML-Mode, and then adjust as needed. While most people may never need to get to that level of visibility, a lot of the hard-core bloggers do want to maintain full control over the look and feel of any aspect at any time in their blogs.

I have tried for the past month or so to get used to Gutenberg. I have tweaked and written, and added custom CSS. I played and wrote, and finally I caved in and ‘uninstalled’ this pile of garbage.

Yeah well the only way to uninstall Gutenberg, is to install a new plugin, of which you can choose from the officially supported Classic Editor, or the Disable Gutenberg plugins.

The official plugin by WordPress itself will be supported at least until 2022 ( and then ? ). The “Disable Gutenberg” promises to be around for longer.

What is impressive with those plugins is that they have been installed more than 1 million times for the “Classic Editor” plugin, and 70000 for the “Disable Gutenberg” plugin. These numbers should give WordPress a bit to think about, and maybe, just maybe consider to revert the order of Gutenberg vs Classic editor.

In my opinion the Gutenberg Editor should be the plugin for those few who like it and want to use it. For the vast majority it seems that the classic editor is the way to go. I am certain that over time more people will revert back to the classic editor ( which is based off TinyMCE ) and some will stay with Gutenberg not because they like it better but because they don’t know how to revert back.

This disaster comes close to the likes of the initial “Windows Vista” disaster where the might of a company is turning against their core user base with more or less dire consequences. It remains to be seen if WordPress will change course or will continue to try to push this time eating, confusing, ugly and no-good interface onto its user base.

Think about workflow

If you write a blog post or anything really you are going to write letters which build words which build sentences which eventually build paragraphs and if you write some more you likely have some chapters in your book.
In Gutenberg every chapter will be a new section, however in practice each sentence will try to become its own little section. This will force you to move your mouse and click the hell out of your text to read, edit, and format your text. If you press enter once to many times you will have to fiddle around to un-section the now two distinct sections. Don’t get me started if you want to use shortcuts, well good luck trying to not kill yourself figuring those out.

If the goal of Gutenberg has been to destroy a writers workflow, then good job guys. You have spent your time, development efforts, and money to achieve just that. If the goal was t improve the workflow and usability, then I’d like to suggest to fire the guy in charge of the design. Maybe he and his friend like using the shiny new click and drop interface however a whole bunch of existing users hate the new interface with a passion. Historically people who really like a tool like WordPress become really passionate about it and the worst enemy you can make is to have a whole bunch of obsessively passionate fans you just upset.

Ps. This blog is of course written on wordpress and is now free of Gutenberg 😉

2019 is going to be a great year

It has been a long year. well it was one year long but as they say everything is relative and as such it felt much longer to me.

One area which helped to distort the objectivity of time was definitely related to politics. I don’t want to utter any political leanings here but I believe that regardless of which side you are on that the constant daily attacks on constitutional and presidential norms has taken its toll on the US populus and likely many, many people around the world.

Another area for me was related to my nine to five work, which is also something I do not usually talk about. However this year has seen a sea of change at our mid-size company where after going through 4 managers, the only constant seemed to be change and re-order ( Aka chaos ). I have come to believe that this is what will happen to any company when you replace your leaders with managers but that is for another post.

Now to the pleasant things of 2018

2018 has been the year where my family traveled to Europe together for the first time in 14 years. For my younger son it was the first time in his life, and the older one last saw Europe when he was a mere 6 months old. Ah memories.

Our trip started in Paris on June 19’th, when through Kelkheim, Germany where I grew up ( close to Frankfurt Main ) and then continued down south to the Cote d’Azures Nice, Monaco for a brief two days. We then continued along the southern part of France where we spent a few days in Château des Ducs de Joyeuse before we ended up in Toulouse for a week.

Toulouse is where the older one was born while I was working there in the early 2000’s, so it was very nice to be back there and re-discover the area. A lot has changed in Toulouse in the past 14 years and a lot has remained the same.

We returned back to Paris only to stay the last night close to the airport before returning July 10th.

There is an app for that

I have also started to take my apps a bit more serious and developed a whole bunch of new ones. I also bought a set of apps from Flippa, and became obsessed with ASO, SEO, Marketing methods, AdWord campaigns and so forth. I think this year I may tip my toes into the Apple Store with a port of one of my Android apps. On average there is still about two times as much money to be made on the apple store as compared to the google play store.

Apps are an interesting area, as some of the apps I put on the market were exceeding my expectations and most of the apps were underperforming from how they should have performed. I though that the time and money I invested in Reverse Video Magic would perform very well but it flopped on me. On the other side I had MP4 Video Converter was doing better than I could expect.


My current focus is on CPU Information which I would love to drive through a million downloads and more. Obviously I am very excited about the app and I am willing to spend time and resources in improving it. We shall see how far I can push this app along the way from a technical, marketing, ads, and social marketing point of view.

I would really like to develop another app which is backed by some sort of funny AI Chatbot. This is a project I have had in my head for the past decade or so. We shall see if I can put it all together on the backend. The apps itself will not be the problem. There are so many possible smaller or larger projects I have in mind that it would require a full time commitment from my side to provide all of them onto the app store.

My plan for this year is to do more on the Marketing and Social media front. I think if I can get this to the point where I earn enough organic downloads to replace most of my paid advertisement it could be very beneficial to my side hustle.

Screw Fiverr

As I mentioned before I got viciously removed from Fiverr for not breaking any Terms Of Service from either Fiverr or from any other company. The issue has left me be-dazzled as I was helpless in getting banned from a platform I have been using for years without any cause, just because Fiverr felt like it.
I hate companies which bully their customers and I am certain Fiverr will vanish if they continue doing this kind of random, self destroying thing, as they have been doing to many users before and certainly will do to many users after.

History is plastered with plenty of examples of companies ignoring or attacking their customers. None of those are around anymore.

Wow what the …

So 2018 is over and we are about to embark onto 2019. This year is going to be a great year. I feel it in my bones. I have a lot of things I want to accomplish this year. I am looking forward in looking back on 2019 and see all the things that will have happened by then.

Though let’s take it one step at a time and enjoy the journey from now to then.

Cylinder in OpenGL ES 2.0

For my current project, CPU Information I wanted to create a 3D representation for a Battery to indicate the remaining charge of it to the user in a visually appealing way.

Initially I used a 3D battery model but after playing around with it some time, I decided to build the Battery model in code instead. All that was required for it was to find a algo I could easily adjust for my program.

After searching for a few hours ( yes hours ) I came to realize that there was no good example for OpenGL ES 2.0 and I had to write my own.

It seems that there are plenty of examples for OpenGL 1.x or examples in many other different shapes and forms but none that I could find which simply creates a GL_TRAINGLE_STRIP – buffer and passing it to OpenGL ES 2.x.

Algolite

The algorithm will create a cylinder in one buffer by first creating the top circle, then the cylinder and finally the bottom circle. The OpenGL Drawing mode is GL_TRIANGLE_STRIP.

You only have to provide radius, height, and number of segments to create the cylinder. Once the floating point buffer with the vertices is created we have to convert it to OpenGL digestible FloatBuffer and the pass the information to OpenGL for rendering … Done.

Decomplexify

The passing of the data to OpenGL is cookie-cutter OpenGL code which you can find easily. I do not want to complexify this sample here by cookie cutting.


    // Creating a cylinder object to be rendered in OpenGL
    Object3DData createCylinder ( float radius, float height, int segments, float yOffset, float clr[] ) {
        float buffer[]  = createCylinderBuffer ( radius, height, segments );
        FloatBuffer vertices = makeFloatBuffer ( buffer, buffer.length );

        Object3DData     obj = new Object3DData( vertices );
        obj.setDrawMode ( GLES20.GL_TRIANGLE_STRIP );
        obj.setColor    ( clr[0], clr[1], clr[2], clr[3] );
        obj.setPosition ( 0.0f, yOffset, 0.0f );
        return obj;
    }

    // GL_TRIANGLE_STRIP -=> Standing cylinder
    float[] createCylinderBuffer ( float radius, float height, int segments )  {
        int iBuffSize = segments * 3 * 3 + (int)( ((float)segments/3.0f+1.0f )) * 3 * 2 + 6;
        float buffer[] = new float[ iBuffSize ];
        int t, idx = 0;
        float increment = (float)( 360.0f / (float)( segments - 1 ) );

        //create the top
        int iZeroCounter = 2;
        float hh = height / 2.0f;
        for ( t=0; t<segments; t++ )  {
            float angle = (float)( Math.PI/180.0f * t * increment );
            float cos = (float) ( radius * Math.cos ( angle ) );
            float sin = (float) ( radius * Math.sin ( angle ) );

            if ( iZeroCounter++ >= 2 )  {
                buffer[idx++] = 0.0f;
                buffer[idx++] = +hh;
                buffer[idx++] = 0.0f;
                iZeroCounter  = 0;
            }
            buffer[idx++] = cos;
            buffer[idx++] = +hh;
            buffer[idx++] = sin;
        }

        // create the cylinder
        for ( t=0; t<segments+2; t++ )  {
            float angle = (float)( Math.PI/180.0f * t * increment );
            float cos = (float) ( radius * Math.cos ( angle ) );
            float sin = (float)-( radius * Math.sin ( angle ) );

            buffer[idx++] = cos;
            buffer[idx++] = hh;
            buffer[idx++] = sin;
            hh *= -1.0f;
        }

        hh = height / 2.0f;
        for ( t=0; t<segments; t++ )  {
            float angle = (float)( Math.PI/180.0f * t * increment );
            float cos = (float)-( radius * Math.cos ( angle ) );
            float sin = (float) ( radius * Math.sin ( angle ) );

            if ( iZeroCounter++ >= 2 )  {
                buffer[idx++] = 0.0f;
                buffer[idx++] = -hh;
                buffer[idx++] = 0.0f;
                iZeroCounter = 0;
            }
            buffer[idx++] = cos;
            buffer[idx++] = -hh;
            buffer[idx++] = sin;
        }
        return buffer;
    }

    public static FloatBuffer makeFloatBuffer ( float[] arr, int iSize )  {
        if ( iSize == 0 )
             iSize = arr.length;
        ByteBuffer bb = ByteBuffer.allocateDirect ( iSize * 4 ); // Size of Float is 4 bytes
        bb.order ( ByteOrder.nativeOrder( ) );
        FloatBuffer fb = bb.asFloatBuffer ( );
        fb.put ( arr );
        fb.position ( 0 );
        return fb;
    }

Promising results

Here is the result in all its glory after stacking a few cylinders on top of each other, coloring them and give the battery a heart beat. Yeah, I think you can’t enough Special effect this one.

Please feel free to install CPU Information onto your Android device and try it out in action.
Get it on Google Play

Android SEO app

If you have a blog, a web-page, or any other kind of online-content which you want to expose online and grow your customer base or readership, you will have to do SEO.

Search Engine Optimization is the methodology to increase your sites visibility in the search engines, such as Google or Bing. Increasing your position in the search results by just one or two positions could mean the difference between earning money or closing your doors ( virtually ) forever.

SEO as a Sport

There are a ton of resources available online and offline to learn all about SEO. Most of those however are pointed to some sales funnel or describe some kind of oversimplified rules and tools.

The thing I have learned about SEO is that there is no certain way of doing SEO which will always work. Instead, you should see it as an art rather than a science project.
 
If you play it like a game and you keep at it for a long time you will certainly see more or less results.
 
Where to start on your journey and how to go about your initial steps in ranking better will be overwhelming. There is google trends, keyword suggestion tools like this , Alexa site ranking, Backlink checker, and tools which help you to discover more about your sites appeal on the internet than you could ever ask for.

Black-hat-techniques

I mentioned above that there is no sure fire way to improve your ranking. This is of course in regard to SEO. You can always count on search engine ranking you higher for better content. If your site has the highest authority about any subject, you will get ranked accordingly. This is the number one ingredient to your sites success. SEO is the second most important thing you can do to rank your site well with search engines.

There are however some ways to get punished if you go about it the wrong way. Black-hat-SEO is one of the easiest ways to get your site ignored by the search engines. Stay away from any of those if you want your site to be visible to any human being.

For example, if you pay someone to build a huge amount of backlinks ( other web pages pointing to your web page ), then you have great chances to get your page ranking dropped by Google to a place in hell, which in Google land is a rank of 1.000.000.000 +.

Do the right thing

However there are White hat ways to improve your rankings. Such as adding good and meaningful contents on a regular basis or building the best blog, web-site or whatever it is you want to rank
 
This of course required hard work and takes in general a long time.
 
Another approved of way to get more visitors is of course through paid advertising, especially if you use Goggles AdWords.
 
Using a keyword planning tool to make certain your site is ranked for the right keyword is another way to increase your ranking. As a matter of fact, keywords are so important to you ranking that you will have to dive in and really learn as much as you can about them.

 

What to do

The question for most people then boils down to what-to-do, when-to-do-it, and how-to-do-it. Especially as a beginner this can be challenging as you don’t know the rules and tools yet and you don’t want to get yourself into hot water.
 
Enter “Free SEO Tool”, the Android app which provides you with a shorthand way is playing with SEO tools from all around.

It offers a collection of tools in one convenient spot. The resulting report for your website spans 25 pages and will also explain reach of the analyzed sections in the report. You can also export the report as a PDF version and share the results with others.
 
Give this app a try and see how you can improve on you online present to increase your visibility. The report is huge but easy to read and understand. The required changes on your site should become obvious, and best of all, its free to boot.

Get it on Google Play

Get it on Google Play

Throwing money at google

Here, take these $26.​60 google to find me some nice people to install my app.
... but why would you do that ? Google already rakes in billions of dollars in revenue … Well let me tell you why.

I have been running a few AdWord campaigns in the past and I wanted to run a new ad campaign for my latest app :
CPU Information

CPU Information

As I just started out with this campaign and as I am not a huge corporation but a small indy-developer, I started with $20,- and thought to myself I want to get up a bit on the high side and then reduce my bid target to stretch the money throughout a 24 hour time period. So I started to target at $0.15 per conversion.

Chill time

Off I went onto doing different things. Then about an hour later I checked back and I had spend $26.60 already on this campaign. so 30% over budget and way earlier than expected. However this is not the reason I told you that I threw money at Google, the real head scratcher came when I wanted to correlate the approximately 200 conversions to my play store account.

Interestingly The play store hourly installs did not budge at all. So it is almost as if another app profited from my investment :(. I have no idea how this may have happened as I would have expected to see at least the bump of an additional 200 installs during that time period. Also My AdMob account showed the same unmoved result, as if nothing had happened and the 200 conversions did not reach my app at all.

I have shifted my approach now and reduced my bids down to $0.05 to stretch the installs out. Next thing to do is to go and dig a little bit deeper into stats from Firebase, the Play store, AdMob, and AdWord.

I want to find out what happened to my supposed conversions and the approx 42k views of my app. If you have an idea of what could be going on, please share and let me know.

AdWord where …

After some more digging I found one issue with the campaign which was location. Originally I wanted to only target the US and Canada. I set this up but I must have forgotten to click on the [Save] button before starting the campaign.
Thus my ads were distributed worldwide and a good chunk of the installs went to the southern hemi-sphere, to countries like Libya, Algeria, Iraq, India to name a few.

While this explains why the money was exhausted as fast as it was at the target bid prices, as well as why my AdMob revenue did not jump up. After all the cost-per-click in these regions is usually way below
what you will get in the northern hemi-sphere, I.e.  Europe or northern America. 
So from a regional targeting you get more per click however at the same time it is also way more expensive to get traffic to your app.

App Store stats …

I am still investigating as to why my app-store does not reflect the additional 200 installs.

And finally this mystery has been solved as well. It took The play store around 6hours to get the hourly stats to reflect the actual installs which came from this one-time boo-boo of mine.

What have we ( I ) learned

  • Be careful when starting a new ad campaign. Going forward I will set the max allowance to a small enough amount so that in case something does ot work out as expected, I can re-adjust before go all in.
  • Look at the stats of all available sites, like AdMob, AdWord, Google Play, and Firebase
  • Be patient. I have had some interesting correlation dissonance happened to me in the past. Especially the google play store stats are somewhat funky.

Android Oreo’s CPU stats

I have been using Android phones for a long time now and have never really considered switching to an iOS device. I think that ever since Android version 4.x ( 3.0 was terrible ) the hardware and software selection was better than those offered by Apple. From there on, Android waas getting better by the release it seemed … or was it ?

Google has however started to remove features from the OS over the past few years which is starting to limit the apps which can be written for these devices.

The storage API is one example which started to slowly diminish over time and is getting to the point where you can no longer access external storage in a concise and manageable way.

With Oreo, google has again removed some functionality which was very useful. This time Google made it impossible to monitor, and report on the CPUs utilization of its cores or the overall CPU utilization.

New motto ???

All of /proc/stat has been disabled for non-System apps, as a side-channel. More information, with an official response from Google here: https://issuetracker.google.com/issues/37140047

While there is an API available to retrieve similar information, it is only available for kiosk-like devices and not enabled in a stock mobile device. Starting from API level 24:

HardwarePropertiesManager propertiesManager = (HardwarePropertiesManager)context.getSystemService(Context.HARDWARE_PROPERTIES_SERVICE);
CpuUsageInfo[] cpuUsages = propertiesManager.getCpuUsages();

But only system apps have access to this API, because only system apps can have android.permission.DEVICE_POWER permission, which is needed here.

So the developer, and the users are left out in the dark on what’s zapping the Phones battery, and you will never know when the cores got to 100% proactively but only when your phone slows down.

Please let me know if you have Oreo ( and above ) and you know of an app which does display the CPU stats for you.

Shader Editor app

Android and iOS smart phones support the OpenGL ES 3D library.

The latest version for OpenGL Stand currently at 3.2 which was released in August 2015. Most phones on the market however support OpenGL 3.0 since Android 4.3 or iOS 7.

Those is versions we released in or around 2013 such by now was five years ago.

The OpenGL API had changed a lot between 1.x and 2.0 in that it introduced vertex and fragment shader languages as part of the spec. Prior to this, the OpenGL library stopped a set of will defined API calls to handle most aspects of the OpenGL Städte engine.

OpenGL shaders

As stated above, the shader language became past of the OpenGL Standard with version 2.0 and onwards. What it provides is more flexibility in programming the GPU tender pipelines. Instead of trying on a fixed, hardcore pipeline you can go ahead and code your own shader program.

This flexibility comes at the expense of some additional complexity alas this can greatly be migrated through the usage of or defined coffee snippets or libraries which sit Stop OpenGL.

The shader language is leaning heavily on c-style and is functional in nature. As the code is compiled, linked and will then be loaded into the GPU and run with a limited set of instructions, this language is limited in certain aspects and I would really recommend to find online courses or read a book if you want to truly understand the inner working of OpenGL.

 

OpenGL ES

The ES Stand for embedded systems, and is an indication that it has some limitations to the desktop version. Alright although those limitations are really not as big as one would think.

What is more is that WebGL is basically identical to OpenGL ES and many of the shaders you will find running in the browse will also run in your phone.

For example, the web page Http:www.shadertoy.com has a lot of very interesting looking shader samples which you can adapt easily to run on your phone.

But how ?

Shader editor

The shadertoy app can help you play around with some really cool looking shader examples. When you first download the app you will only see a limited set of available samples. Burger you can easily edit and save new shader samples on your device with this app.

The editor is using a just in time compilation of the code on a semi transparent editor window. This allows you to easily explore you shaders and view the results in real-time.

The way that this tool used the OpenGL libraries is to use a fixed vertex shader code base and have all the code executing in the fragment shader. Which is to say that the whole logic is about coloring the fragments ( parts of a pixel ) to achieve those stunning effects.

If you like to experiment and OpenGL is something you have always wanted to play around with, then Shader Editor is a small app you can not afford to miss.


Get it on Google Play

Get it on Google Play