"Big brother" style analytics on custom rom options? - Android Q&A, Help & Troubleshooting

I have a business need to track what is happening on distributed devices that come with a custom rom. Mostly the things needed already come out in the android logs (from a super user perspective), like every intent that is launched, presses, etc. Before I go down a path of having something scrape the log and send out the analytics I want to make sure that I'm not reinventing the wheel here.
Are there any existing open source apps that do any type of analytics like this? I have already been looking at some good open source tools for parsing the logs.

Related

[Q] User generated layouts

Hi all
I am developing an app in which I would like to allow user-generated content. Specifically, this will be a remote control application, and I would like people to be able to add custom layouts, capable of sending "events" through the app, but I am not sure how to do so.
There are a couple of ways I have been looking at. The first is using a WebView so that this content can be developed in HTML. This would be nice and easy from their point of view, but it does have it's downsides, especially where security is concerned. If I was to do this, I would want to bind a "send" Javascript interface to my app, but disallow any other Javascript (I do not, for example, want it to be able to relay the button presses to some other place). I'm not sure exactly how I could do this.
The second way I can see would be to use an XML file and build up the layout from that. Here, the only way I could see it to parse the XML file and programatically build the layout. This seems a lot of work, and I would rather avoid that.
A third way would be to import a layout purely as an image plus an XML file describing hot-spots for triggering events. This seems to have too many limitations.
The final option is to expose an interface to other apps, and allow users to build separate applications which hook in to provide these layouts. This seems a terrible approach for such a simple objective.
So, does anyone know of a simple way to do what I am after, or any comments on the options listed above? Has anyone done anything similar, or know of an open-source project which acheives something similar?
Thanks in advance

Making "Stock" Custom ROMs Defunct (XposedFramework) - Tweaks for any ROM Version

Making "Stock" Custom ROMs Defunct (XposedFramework) - Tweaks for any ROM Version
Introduction
Recently it has dismayed me how, across the Android Community, people seem to feel that it's necessary to run a "Custom ROM" in order to get improvements and changes to your ROM. Of course, some of you know it's possible to modify the APK files directly to change things, but these changes need to be done every time your base ROM is updated. Once Samsung starts leaking out updates to 4.2 like a sieve, you guys will be all over them, needing to update your patches and tweaks every time.
Anyway, seeing this displeases me, as it encourages people to see "Custom ROMs" as a commodity, and something you consume. In essence, users were getting their "fix" of tweaks from their "chef", but not learning how to do it themselves, nor realising their beloved chef isn't doing anything magical. In fact, their chef is likely decompiling the applications, and using baksmali/apktool to take apart the app, hard-code in their changes, then rebuild it. This method has worked well for 3 years, but it's been in need of an update for some time.
The Enlightenment
Then I saw this thread by rovo89. That man deserves a beer for every Android user there is, for his work on the Xposed Framework! His and Tungstwenty's work on this has made it possible to modify the core Android system, without doing any actual modifying of applications.
OK... Why are you telling me this?
This invention seems to have pretty much gone unnoticed by the world. The reasons this is vastly superior to any other way of making modifications to apps and the system are:
Your modifications are not tied into a single version of the APK or app or framework. If the ROM is updated, the patch should still work perfectly on the new version of the app (this doesn't necessarily apply across major updates like 4.1 to 4.2, but should be fine across 4.1.0 to 4.1.2 style changes).
You are not actually modifying any files on the phone! If something goes wrong, you can just disable the support for the framework, and the tweaks will do nothing. As such, it's easier to get a working phone if something dies - in fact there is a ZIP placed on your SD for this very purpose. Just flash it in CWM and it will disable the framework.
As no actual files are being modified, it doesn't matter if your ROM is odexed, deodexed, or a bit of both (ie. certain apps deodexed, but frameworks odexed). With this, there is no reason to run a deodexed ROM, since you can change pretty much everything you want to without touching the raw files. So leave them as odex files and you'll not have any problems. Bear in mind we deodex to allow easier customisation, odexed is actually slightly faster, and removes the majority of the dexopt process on first boot.
No application signatures are modified, as the apps are not touched, so if you were to use this to modify an app like Maps or Gmail, you won't get issues when trying to update to a new version of the app via the market.
The only way this can succeed is for you to try it. I usually run a "custom ROM" on my phone. For the first time ever, I've been using a stock ROM for a significant period of time. On the Note2 in particular, Samsung is really getting good at this. But they're not perfect. And as such, I started to look at using this to perfect their work.
When you run a custom ROM, look at what you're getting, and ask yourself why it doesn't use this method. I've only made one little modification so far, but it's one that annoys me hugely! The blooming SMS -> MMS conversion when you try to write any form of prose in a text message. I cannot stand the limitation of SMS to 160 characters, so the ability to chain together messages is a godsend to me. Unfortunately though, Google and Samsung seem to like to restrict you to 3 SMS messages worth of text before converting to an MMS message. Which is wonderful, except when you have totally unlimited SMS, but pay for MMS. As such, I was finding my ability to communicate in my usual verbose way somewhat hindered by the messaging app.
Alas that is no longer an issue. If you want to get started, here's how.
OK... How do I use this?
Download and install the APK file from this post - http://forum.xda-developers.com/showthread.php?t=1574401. I have tested it on the N7100, it works fine. Run it, install the framework, grant it root (yes, this requires root!), and reboot. I have mirrored the APK below just in case of issues.
Download and install the APK modification you want from http://www.villainrom.co.uk/forum/microdownloads/
When you get a notification about enabling the modification (after the APK is installed), tap that notification, and enable the plugin by ticking the box.
Reboot your phone
Go test your modification
If you have any issues with this, please paste the contents of /data/xposed/debug.log on a pastebin site or in
Code:
tags.
[SIZE="5"][B]How can I make my own modifications like this?[/B][/SIZE]
Will post this a bit later, along with the source of this plugin.
[SIZE="5"][B]References[/B][/SIZE]
[url]http://forum.xda-developers.com/showthread.php?t=1574401[/url]
[url=http://forum.xda-developers.com/member.php?u=4322181]Tungstwenty[/url]
[url=http://forum.xda-developers.com/member.php?u=4419114]Robo89[/url]
[SIZE="5"][B]Sources[/B][/SIZE]
You can find the sources for Xposed Framework at [url]https://github.com/rovo89[/url]
You can find the sources for all Xposed modifications I have made so far on Github:
[url=https://github.com/pulser/xposedSMStoMMS]Disable SMS -> MMS Conversion[/url]
[url=https://github.com/pulser/xposedDisableBatteryFullAlert]Disable 100% Battery Notification[/url]
[url=https://github.com/pulser/xposedEnableCallRecording]Enable Call Recording[/url]
[url=https://github.com/pulser/xposedScrollingLauncherWallpaper]Enable scrolling wallpaper in stock launcher[/url]
[url=https://github.com/pulser/xposedEmailTextColour]Make text in email app message list clearer to read (lighter) on the black background[/url]
Install the Xposed Framework from this thread: http://forum.xda-developers.com/showthread.php?t=1574401
Modifications
OK so a few people suggested an addon repository... I have got one sorted
Downloads
http://www.villainrom.co.uk/forum/microdownloads/
I've added some of mine so far, but I won't add other people's - they can add them themselves, and maintain them
This system is vastly superior to a stickied forum thread, as you can update your own modification (as a developer), and as a user, receive notifications if a modification is updated.
Developers
Register for an account (Free, easy, no spam etc)
Go to http://www.villainrom.co.uk/forum/account/join-user-groups
Tick the option for Xposed Uploader, and hit Save. A request will be sent to me for your application. I'll approve it when I see it (should be quite fast, it gives me a popup)
Head back to http://www.villainrom.co.uk/forum/microdownloads/ and click the Upload button at the top right.
Use a general title that describes what your modification does. Put in a version string too. I tend to use the format 1.0, 1.1, 1.2 etc, but this is up to you. You can add Alpha or Beta or other designations if you wish.
For author, pop in your name or username. And enter a brief description of what the modification does (which will appear in the index)
Click Categories/Agreements, and select which category the modification falls under. If you think there's a category which should be added, let me know.
Under Full Description, you can enter a detailed description of your modification. Finally, under File Options, use File to Upload to select your APK file. You can optionally add an Image to Upload. The Use File URL should be set to no, and the File URL box left blank.
Users
There is no need to register an account to download files from the repository. If you wish to receive notifications of updates, you can register an account - just hit the red "Log in or Sign up" button - you can use a Twitter or Google account if you want, or just make a plain account. It makes no difference.
Head across to http://www.villainrom.co.uk/forum/microdownloads/ and have a look at the modifications you want.
Click watch file (at the bottom right) if you want notifications about updates to a modification
Click Report to report a modification for being malicious or problematic.
Click "add comment" to discuss or comment on the modification, or leave a "review" or feedback
Click on the stars under (0 votes) to leave a star rating on the modification, which will help generate most popular lists on the main page.
Click to see licence details of mine:
Feel free to use these as you wish, for non-commercial purposes. You may share these for personal use. Note that distribution in any kind of "package" or "custom ROM" is not personal use. Sending a friend a copy is personal use, feel free to do that and share the love.
Feel free to make changes to the source code of the modifications if you think you can improve them, provided you make your changes available in a similar manner. If you fix a bug or error, please send a pull request.
If you wish to use these commercially, please contact me. This includes in any "distribution package", be it a ROM, app, store, marketplace or other package. That's not in the spirit of this project, so get in touch with me and we'll discuss it.
Tl;dr:
End users, have fun, use these, enjoy them, share them, tweak them, just be sure to share your source changes and/or send a pull request if you improve something!
"Custom ROM" Developers, and anyone wanting to try to use these for commercial purposes: Don't. These are to encourage people to learn about these changes, so contact me if you want to do something else with them. Commercial use, including distribution in "Custom ROMs" is not permitted.
How to make your own such modification
This information is NOT complete. This example only uses 1 of about 10 different types of modification. I have spoken to rovo89 and he has said it would probably be possible to document this further. This example covers ONE usage case - I am going to override an entire method.
1. Create a new empty Android project in Eclipse.
2. Within the "application" section of your AndroidManifest.xml, add the following metadata:
Code:
<meta-data android:name="xposedmodule" android:value="true"/>
<meta-data android:name="xposedminversion" android:value="2.0rc1.*" />
3. Within the assets folder of the project, add a plain text file, "xposed_init". Within this, I have put
Code:
uk.co.villainrom.pulser.allowlongsms.AllowLongSMS
uk.co.villainrom.pulser.allowlongsms is the PACKAGE name of my Java package. AllowLongSMS is my class name. The purpose of this is to tell the Xposed Framework what to run.
4. Within AllowLongSMS.java (ie. the class name, with .java on the end), I put the following code:
PHP:
package uk.co.villainrom.pulser.allowlongsms; //this sets the package for our project, this is the first part of the value in xposed_init file in assets.
import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.XC_MethodReplacement;
import de.robv.android.xposed.XposedBridge;
import de.robv.android.xposed.XposedHelpers;
import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam;
//above includes all the required parts of the xposed framework that we need here
public class AllowLongSMS implements IXposedHookLoadPackage { //here we declare the class AllowLongSMS. We say it implements IXposedHookLoadPackage, as we want to make use of the hook-in on package load. Other options are available here for working with native libs etc, and resources, but I'm not using these right now.
public static final String MY_PACKAGE_NAME = AllowLongSMS.class.getPackage()
.getName(); //this doesn't do anything, I just left it here for if I needed to write logs and wanted to have the package name easily accessible.
public static final String TAG = "PulserMmsTweak"; //same here, this doesn't do anything.
@Override //we are going to override the method handleLoadPackage, if it exists further up the hierarchy
public void handleLoadPackage(LoadPackageParam lpparam) throws Throwable {
//this method is called every time a package is loaded. We have a parameter that we're going to call lpparam, that is passed in, that relates to what package was loaded
if (lpparam.packageName.equals("com.android.mms")) { //if the package that has just been loaded is called "com.android.mms" then
ClassLoader classLoader = lpparam.classLoader; //create a classloader object that we can now use
XC_MethodReplacement methodreplacer = new XC_MethodReplacement() { //create a method replacer object, as we are going to REPLACE an entire method within the mms app.
protected Object replaceHookedMethod( //we make an object here, that passes in the parameters of what to actually change
XC_MethodHook.MethodHookParam paramAnonymousMethodHookParam)
throws Throwable {
return Integer.valueOf(255);
/* THIS IS THE IMPORTANT LINE
* This line returns the value 255. Why this happens won't make sense yet, but THIS is where you put your "new method" code.
*
*/
}
};
XposedHelpers.findAndHookMethod("com.android.mms.MmsConfig", //here we say that we want to find and hook into the method "getSMSToMmsTextThreshold" which is part of the class com.android.mms.MmsConfig. We then say that we're passing this to methodreplacer, which we defined earlier
classLoader, "getSmsToMmsTextThreshold", methodreplacer);
}
//if the package wasn't com.android.mms, do nothing.
}
}
Awesome work mate. Wish I had a Note 2 to check this on.
EDIT: Wait.. I can use this on any device! Rock on. Thanks!
Wow this is great post. While reading this it makes me learn something like what is going on in background.
Sent from my GT-N7100 using Tapatalk 2
Thanks for continuing that amazing project pulser!!
I think i'm going to create some small apks for some stuff very soon (and release them of course).
Cool stuff as always pulser, keep it up
simone201 said:
Thanks for continuing that amazing project pulser!!
I think i'm going to create some small apks for some stuff very soon (and release them of course).
Cool stuff as always pulser, keep it up
Click to expand...
Click to collapse
The original guys are not gone, was talking to them recently
There's scarce documentation so far on this, but I will see what else I can do with it... I might make post 2 a repository of these APKs for now...
chaitanya87 said:
Wow this is great post. While reading this it makes me learn something like what is going on in background.
Sent from my GT-N7100 using Tapatalk 2
Click to expand...
Click to collapse
That's the intention Glad it worked! This is about learning, and not just "using".
Sure, you can download the APK and use it, but that's no better than just downloading some zipkang ROM that claims it does everything including making your morning coffee... This is about taking a look at HOW it works too That way people can make their own tweaks and share them!
pulser_g2 said:
The original guys are not gone, was talking to them recently
There's scarce documentation so far on this, but I will see what else I can do with it... I might make post 2 a repository of these APKs for now...
Click to expand...
Click to collapse
A small repo for APKs would be really cool and useful for users....
tell me if i can contribute in some ways (i'm an app dev mainly also)
simone201 said:
A small repo for APKs would be really cool and useful for users....
tell me if i can contribute in some ways (i'm an app dev mainly also)
Click to expand...
Click to collapse
I will work something out (I can easily make a repository if this kicks off, so people can upload them and they appear).
TBH right now it's more a case of thinking up some ideas. For now, I can add anything people send into the second post (though I think it would be reasonable that we request source for all such modifications, just given the sheer ability to modify anything that this has...)
I can't think of enough things to tweak, we just need to work out WHAT people will like to modify, and implement it
I'll be a good example and put mine onto git shortly
My own notepad of things I need...
http://forum.xda-developers.com/showthread.php?t=1965801
http://forum.xda-developers.com/showthread.php?t=1924905
call record:
http://forum.xda-developers.com/showthread.php?t=1938808
http://forum.xda-developers.com/showthread.php?t=1871525
Hey folks,
I'm happy to see some new interest on Xposed.
I've been using it since rovo89 came up with this brilliant idea, and have to admit I was kind of sad to see not many saw its great potential.
Personally, I'm using a couple of hacks for my individual use, but if the community starts to be interested in the HOWs rather than merely nagging about the apks I guess I can try to make an effort to clean and share the code.
Please do ask away stuff, I'm eager to seeing this being used to its full potential
For now, please check the Tweakbox sources. While the code itself might no longer 100% apply to the most recent S2 stock roms, it's still a nice example of how the hacks can be done.
this sounds great! like an universal (almost!) patching system. I hope more chef will write mods for this. man...wish i had taken some lessons in coding.
for a start, how about some of the often repeated annoyance in stock samsung that drives many to use custom roms just to get these functions:-
1) disable the scrolling quick setting panel when you open notification
2) 15 toggles as implement by guys like Wanam.
3) call recording (ok we got this already)
4) 4 way reboot menu
5) some kind of user definable custom battery graphics.
sunwee said:
this sounds great! like an universal (almost!) patching system. I hope more chef will write mods for this. man...wish i had taken some lessons in coding.
for a start, how about some of the often repeated annoyance in stock samsung that drives many to use custom roms just to get these functions:-
1) disable the scrolling quick setting panel when you open notification
2) 15 toggles as implement by guys like Wanam.
3) call recording (ok we got this already)
4) 4 way reboot menu
5) some kind of user definable custom battery graphics.
Click to expand...
Click to collapse
Yeah this is pretty universal. I'd even remove the word "almost" tbh...
For 1, do you mean to disable the scroll animation so that it shows the leftmost icon (wifi) first?
2 is possible, I know samsung has done it on 4.2, is the custom implementation better?
3 is done like you said.
4 should be more than possible.
5 is definitely possible, at least via flashing the modification for the battery style you want...
Thank for the ideas
i flash custom rom just because i need below few things
1.Call-Record. (done)
2.15 toggle, or maybe add NFC, S Beam, Multiwindow, Smart Stay as well
3.Louder Volume Speaker.
4.CRT Lock and Unlock Screen.
5.4 Way Reboot.
6.Unlimited Multi-Window
thanks for the good work and sharing.
Hi. So glad to see that this amazing framework didn't "die"
I would have one question about the mods...
Ok its likely that for the same device they work on different bases of the rom like DLJ5, ELK4 am I right?
But does a mod that was made for lets say the Note 2 work on a SGS3 or must it be adapted?
Thanks !
DirkStorck said:
Hi. So glad to see that this amazing framework didn't "die"
I would have one question about the mods...
Ok its likely that for the same device they work on different bases of the rom like DLJ5, ELK4 am I right?
But does a mod that was made for lets say the Note 2 work on a SGS3 or must it be adapted?
Thanks !
Click to expand...
Click to collapse
If it's touchwiz then it should work - samsung seems to have unified a lot of it.
Jerdog used the SMS to mms patch fine on his s3.
It really just depends on the modification itself tbh...
If I would like to start writing my own mods is there somewhere a guide how to debugg the mod I write?
Thanks!
one more
can you add:
*:laugh:skip music track with volume button

Confused about how to evolve from (very) basic Android Development

Hello.
I followed all the New Boston Android videos, did everything, understood everything.
I tried to create a basic RSS feed reader, in order to better incorporate some concepts I learned in the New Boston videos (http processing, xml processing, adapting the content to lists, custom lists, etc). When I got to pass the information from the http processed data to xml parser and the list, that's when I got too much confused and knew I didn't have enough knowledge.
Then I tried to do some "Shopping List Manager" (just like OI Shopping, a bit adapted more to my taste), in order to learn.
However, again, when I neededto pass information to other objects in other classes or something like that, I get confused and don't know what to do.
So I bought CommonsWare book, "The Busy Coder's Guide to Android", which I have the latest version (5.1) and I'm reading, but I don't like to advance when I don't fully understand something. This time I'm stuck on the Action Bar part, more precisely this one:
Code:
private void configureActionItem(Menu menu) {
EditText add=
(EditText)menu.findItem(R.id.add).getActionView()
.findViewById(R.id.title);
add.setOnEditorActionListener(this);
}
I know this will seem very basic to many of you, but I get really confused on all this calls, returning results and more calls.
I don't have a background on OOP, except when I worked with PHP frameworks like Symfony, I work usually with direct task programming (scripting, automation, etc), as I am a Linux System Administrator, so my code is mainly scripting and web interface building (Python, Shell Script, PHP, Javascript, etc).
Can anybody explain what can I do to better understand this? It's just lack of practice and in time I'll understand better? Is it OOP lack of knowledge/practice? Or is it Java lack of knowledge/practice?
Thanks a lot for all your help.
Maybe the best approach is to get some face time with a person who is more experienced and have him explain to you the concept you have trouble with while focusing on the parts you don't grasp. A real human has this flexibility to do a "targeted strike" unlike a tutorial or a book that has no idea where in particular the student may get confused.
For this particular issue, the issue can be summarized as follows. Let's say you have an object call a function:
Code:
orange.peel();
This should be relatively straightforward. The next level of complexity is the fact that obj is just a variable representing an object, and in fact we can substitute anything else that evaluates to an object (i.e.: after it runs, you end up with an object). For example these all are legal ways to call the method as long as types match:
Code:
(new Orange()).peel();
(shouldEatSmallerOrange ? smallerOrange : largerOrange).peel();
retrieveOrangeFromBox().peel();
The last line illustrates calling some other function that returns the object, which is then used to call a second function. The final step from here is to recognize that instead of a single retrieveOrangeFromBox() we can have a chain of functions, each of which returns an object that is used to call the next function in line. For example:
Code:
findCar().accessCarTrunk().unloadBoxFromTrunk().retrieveOrangeFromBox().peel();
The names are unnecessarily verbose to illustrate how functions and their results relate to each other.
OOP + Android system
You're not that clear as to exactly what you are having a problem with, but in general, it sounds like you need to get a java book and learn the basic concepts of classes and interfaces. Since you say you have a background in PHP you could probably go pretty far just by following the Java tutorials on the Sun website. I say java because that's the target language here, any book on OOP in any language would be adequate but learning java would give you the added ability to read other people's android code examples more easily.
After that, you can learn the Android framework. You develop in the Java language but you work within the android framework. What that means is that here, for example, the action bar is provided to you by the android system, and this callback is called by the system, so it is all set up for you. But to understand what is happening, you need to understand when the system calls this method and what it does. That is the framework.
So more specifically, how can you understand this code? This method is called from another method, onCreateOptionsMenu(). OnCreateOptionsMenu() is a method in the Activity class that is called automatically by the system at a specific time. You need to read about the Activity class and the Activity lifecycle on the android developers site. If you want your activity to provide an options menu, you create it in OnCreateOptionsMenu and return it, the system will handle it from there. So back to configureActionItem(Menu menu), here you are passing in the menu object, which contains MenuItem objects, which the system uses to populate the menu (either on the action bar, or when you hit the menu button, depending on the android version). Each MenuItem object has a view that is associated with it (usually created in an XML file).
One thing that may be hard to understand is that all these calls are chained, so if you don't know what they are returning you don't know where to look for help. It's easier if you separate the calls out. Here, the documentation is your friend. If you look at the Menu class on the android dev site, you see that findItem() returns a MenuItem. So then you look up MenuItem, and you see that getActionView() returns a View. Look at the View class, and you can see findViewById() returns another view (a sub-view that is contained within this view). so when you look at it all together, unchained:
Code:
private void configureActionItem(Menu menu) {
MenuItem mi = menu.findItem(R.id.add);
View parentView = mi.getActionView();
EditText add = (EditText)parentView.findViewById(R.id.title);
}
findViewById returns a View, but you know that the view known by the id R.id.title is an EditText view, and you want to use it as an EditText, so you have to cast the View to an EditText (which is a subclass of View) so that the compiler knows that it is an EditText type of view. That's what the (EditText) is doing in front of the findViewById call. To understand that you need to read about subclassing and strongly-typed programming languages. PHP is weakly-typed, so that might be new to you.
finally, you call setOnEditActionListener on the EditText. OnEditActionListener is an interface that you have implemented in this class. An interface defines a common set of methods that are guaranteed to be present in whichever class has implemented it. So when you set the OnEditActionListener to this, (this means the current instance of this class), the EditText will hold on to the "this" object and it knows that it can call a certain set of methods on it. What are those methods? look up the OnEditActionListener interface in the docs:
it only has one method,
Code:
public abstract boolean onEditorAction (TextView v, int actionId, KeyEvent event);
so somewhere in this class, you will have this method defined and this is where you put code that you want to run when the EditText triggers this action. I assume this get called when the user touches the EditText.
It's really not going to be easy to work with android if you don't have a basic knowledge of OOP, specifically classes, inheritance, and interfaces. Also, knowing how java implements these concepts will help a lot. Then you can use your book to learn the Android framework.
GreenTuxer said:
Hello.
I followed all the New Boston Android videos, did everything, understood everything.
I tried to create a basic RSS feed reader, in order to better incorporate some concepts I learned in the New Boston videos (http processing, xml processing, adapting the content to lists, custom lists, etc). When I got to pass the information from the http processed data to xml parser and the list, that's when I got too much confused and knew I didn't have enough knowledge.
Then I tried to do some "Shopping List Manager" (just like OI Shopping, a bit adapted more to my taste), in order to learn.
However, again, when I neededto pass information to other objects in other classes or something like that, I get confused and don't know what to do.
So I bought CommonsWare book, "The Busy Coder's Guide to Android", which I have the latest version (5.1) and I'm reading, but I don't like to advance when I don't fully understand something. This time I'm stuck on the Action Bar part, more precisely this one:
Code:
private void configureActionItem(Menu menu) {
EditText add=
(EditText)menu.findItem(R.id.add).getActionView()
.findViewById(R.id.title);
add.setOnEditorActionListener(this);
}
I know this will seem very basic to many of you, but I get really confused on all this calls, returning results and more calls.
I don't have a background on OOP, except when I worked with PHP frameworks like Symfony, I work usually with direct task programming (scripting, automation, etc), as I am a Linux System Administrator, so my code is mainly scripting and web interface building (Python, Shell Script, PHP, Javascript, etc).
Can anybody explain what can I do to better understand this? It's just lack of practice and in time I'll understand better? Is it OOP lack of knowledge/practice? Or is it Java lack of knowledge/practice?
Thanks a lot for all your help.
Click to expand...
Click to collapse
Thanks a lot for your help. I also think my issue is with OOP, but I needed the opinion of people with more knowledge.
I understand very well what you said about onCreateOptionsMenu(), why and when is called, Activity class, lifecycle, etc.
Those things I understand without any problem. I also understand the basics of OOP, but I don't know almost nothing about Interfaces and I don't have almost any experience with inheritance, although I understand it.
I think I'm just confused because I haven't worked very long with OOP. I just don't know if I should invest in something like reading and testing something like Thinking in Java, or just practice more and more Android Development.

[Q] How do Mobile Ad Networks put ads in our apps?

I make apps with tasker and I want to put them up on Play store in order to earn bucks, but they are not good/useful enough to sell directly. So I need to put ads and as far as I have read, I have to contact an ad network or two. But the problem is that I don't have programming knowledge at all! All I know is to make series of tasks and scenes in tasker and export them with tasker app factory so I have an apk file in the end.
I can make almost all apps which are usually seen in the top free apps' trends in Play Store.
So, how will I put their ads? Do they give something which involves the use of Android SDK? Or can I give them my apk file so they will incorporate their ads for me? (this doesn't seem safe though).
One solution for this may be that they give me HTML for the ad so I can put it in tasker's HTML box, but then the ad networks won't be sure if their ads are showed properly or I am showing something else over the HTML box.
Also, do I have to pay the ad networks in advance or do they only take the share from the advertisements' earnings?
____________________
UPDATE: I have learned how to develop real android apps using java and I have been uploading my apps with the name "Apps By Usman".
I thank everyone for the replies and I want to let everyone know that although I personally do not require an answer to this thread now, anyone who can share information about tasker apps and their monetization should write a reply for those visitors who would be needing such answer.
the post is like 4 months old, so i don't know if you still need the answers, but since nobody answered yet, i guess i'll just try, who knows if it helps you or anybody else.
i never used tasker before, but as far as i know, ads network company is providing sdk we have to include in our development project, some company like millenial media (i don't know about other company though) even providing step by step instruction of how to put their ads into our application on their website.
from your question, i assume tasker is something like game maker or app maker, sorry if i'm wrong, well, since i've some experience in using game maker also, just in case i'm right, in game maker, if they support putting ads into application, usually they include some option to do so, and the sdk from the ads network company is already included, i don't know if tasker have something like this.
hope this helps.
Thanks for the reply, tasker is not a development environment, it is just an app which lets us invoke different functions of phone on a step by step manner, and even lets us export these sets of actions as apk files.
I have, however, found that there is a very little possibility for banner ads in it. So I have now learnt coding in java and I am now making apps in java.
The answer to this question, if someone else is interested is that tasker can invoke html banner ads with the help of webview object if your preferred ad network supports this format, but to make real and native apps, we need to learn java.
if anyone needs to integrate ads in your tasker aps contact us.we have developed a plugin to help you.
noorudheen km said:
if anyone needs to integrate ads in your tasker aps contact us.we have developed a plugin to help you.
Click to expand...
Click to collapse
admob?
You can get benefits by advertising.
Each advertising platform, there will be a detailed access way and their own SDK,
My Skype is: s40319882
Welcome exchange
noorudheen km said:
if anyone needs to integrate ads in your tasker aps contact us.we have developed a plugin to help you.
Click to expand...
Click to collapse
I am willing to monetize my app made with Tasker, is there any easy easy way to insert or inject ads into the apk without codes?
As for paying the ad networks- are you looking to advertise your product or publish advertisements on your app? I guess it depends how many users you have! If you want to both promote your app and monetize your audience base, you should consider choosing a cross-promotional advertising company. I can give suggestions, but for now I suggest you google App cross promotion companies and pick the one that is best for you.
As for the tool kit, it again depends on the company, but a good company will have the option of SDK, API S2S, open RTB, JS tag, etc
ad mediation !!
hey , if still need answer , ther is some mediation website where you upload your apk and they put their sdk in it with some banner or interstitel ads but still limited as tyou can't control where ads will show up, only at the begining or the exit .
So being this thread has been revived, Ad networks do not put ads in your apps, you have to put the ad networks into your app. This is normally done by taking hours and hours of your precious time coding a SDK into your project. Boring.....
Using Enhance, you can now integrate all of the services that providers offer without ever having to touch an SDK again. With little to NO coding at all and without touching source code, Enhance® is the easiest way to integrate 3rd party services into your project or to keep them up to date. (Ads, Mediation, Analytics, Attribution, Crash Reporting and more) No more SDK integration!!!
We even have a "ZERO CODE" option for certain features!!!
For more information on Enhance, just follow this link : https://goo.gl/kufiQQ
ismaelbb said:
hey , if still need answer , ther is some mediation website where you upload your apk and they put their sdk in it with some banner or interstitel ads but still limited as tyou can't control where ads will show up, only at the begining or the exit .
Click to expand...
Click to collapse
The point is being able to choose the placement and format for in-app ads easily. That's why mediation works so well.

[Q] Is AOKP a good choice for privacy-consious users?

Hi,
Stock ROMs aren't really trustworthy by default (e.g., phandroid.com/2014/11/06/carrier-iq-settlement).
Some manufacturers' devices aren't really trustworthy, even with stock ROMs removed (e.g., theepochtimes.com/n3/830922-chinas-xiaomi-smartphones-may-be-spying-on-you).
Cyanogenmod went donwhill:
We may collect information such as occupation, language, zip code, area code, unique device identifier, location, and the time zone where your product or device is used so that we can better understand customer behavior and improve our products, services, and advertising.
Click to expand...
Click to collapse
(from cyngn.com/legal/privacy-policy) They started on this path long ago, but I won’t go there now.
I would like to buy a new Android phone. I won’t have national secrets on it, but I still don't want any Google-style spying. Assuming I don't add GApps, is AOKP a good choice for me? Does it respect the privacy of its users? Does it contain any components that would ever connect anywhere to trunsmit any information like GApps do. Obivously, I'm not talking about user initiated events.
One more thing, does it have a permission manager? Ideally, something that allows the user to choose for each permission for each apps whether real, fake or blank data is shared, but a bit cleaner than XPrivacy.
Thanks!

Categories

Resources