Firstly there is no solution that will stop a determined hacker from reverse engineering. All you can do is make it really difficult. However, there absolutely is a solution to stop brute-force memory hacking. The technique outlined in this video however is not it. See my comment to understand why - Basics on How to Stop People from Hacking Your Android App
In fact, there are two solutions to stop memory hacking, and they're related:
1. Run the game logic on a server. They don't have access to score, therefore they can't mess with this.
Of course if you've got a fast paced game, then that's going to be a problem.
2. Instead of simply recording and submitting an integer high-score, record each event that adds or subtracts from your score and then when the game is over submit the event chain to the server. The server can then validate the events all add up and are feasible i.e. if a user claims they blew up a barrel that gave them 1 million points but no such barrel exists in the game, reject the score.
You can take this one step further. Say you have a game where you squish bugs (sound familiar). When you create each squishable bug give it a pseudo random ID. The fact it is “pseudo” random is extremely important.
You want your game to be random, so on start-up generate a truly random number. (Okay the technically inclined will note all random values generated by a CPU are actually pseudo-random). Use this “truly random” value as a seed to randomise the gameplay. Then when you want to generate a bug, give it an ID using a pseudo-random algorithm derived from the original “seed” value. When you generate the next bug, use the previous ID as a the seed in your ID generation algorithm, and so on. Now each time you squish (or fail to squish) a bug record those events, including the bugs ID.
When the game is over submit both the original “truly random” seed value to the server, and the event chain for the game. The server can then use the same algorithm you had in the game, starting with the seed value you provided, to ensure all the events are valid, and therefore validate the score.
You might argue that a determined memory hacker could create “events” in memory, and append them to the event chain, so these are eventually submitted to the server. However, the only way they can generate events is to understand the pseudo-random algorithm the game was using. This can only be determined by statistical analysis (good luck!) or by reverse engineering the binary.
There you have it, the only feasible solution is therefore to reverse engineer the binary. Add in some proguard and make your algorithm sufficiently obscure and you're going to have one very frustrated hacker ;-)
Days upon days of full-time reverse engineering work just to submit a fake high-score... not worth it!