I am looking generally in to Android development.
I keep seeing information on root however I am unclear how this relates to general android app development.
I understand that there is an emulator however when I get to actually test the software on a phone does that phone have to be a rooted device or is this only required if you wish to edit the core features of the os?
Finally are there are any development disadvantages to rooting the device such as that is no longer behaves like other android phones I may deploy too?
Thank you
You don't need root to develop for Android.
The easiest setup is to run Eclipse with the Android Development Tools installed. Then, you can debug your application in the emulator, or register your phone with the SDK and debug directly on your phone. The only thing you need to do on your phone is check the development mode under Settings -> Applications
I can understand the allure of having a rooted device, but I can't really see a reason for changing the bootloader or os binaries. You can, however, change most of the default applications (including the Home application) with other applications available on the Market. For instance, OpenHome is about $5 and allows you to replace the home app, add themes, and replace many of the core apps (e.g. clock).
Rooting is only required, if you want to play around with advanced features or update your firmware, etc.
If you develop your software using the Android SDK you will be able to use it on your phone regularly (as long as you have the corresponding version). No rooting needed.
I have never heard of any problems according to your concerns. But I cannot deny that there are none. Though I personally don't expect that there are any problems with rooted phones.
On the Nexus S running Android 2.3, the /data folder is not visible in the DDMS File Explorer or the ADB shell, but it is visible in the emulator. This occurred with debug turned on in both the manifest and on the phone. I confirmed that debug mode was properly enabled by successfully stepping through the app using breakpoints and also by receiving messages from logcat.
Not being able to see the /data folder means that you will not be able to get your application's private data.
Related
I started learning android and I'm learning from the book Head First Android Development. In each chapter, a small android application is created there. I have written several such applications and run them in the Genymotion emulator. All of them started without problems. I then decided to run these apps on my Honor 8X device using Android Studio. They also started without problems. But after a while, I run each of these already installed apps on my smartphone and Avast informs me that all these apps are infected. I checked the .apk files of these apps are on Virustotal and it informed me that the files contain Android virus: Evo-gen [Trj]. How could there be a virus, if at first everything started without problems? I'm sure my apps don't contain malicious code.
https://www.virustotal.com/gui/file/d12c7096e7502ea67f84af58d447c2f881eba41da0bffa8de5d305a8dfc726d6/detection
I can reassure you. This is an Avast problem with the heuristic process.
I had the same problem and have it again with two applications. These are reported as EVO-GEN
You need to contact Avast. There is an Avast website that they can use to report this issue. Then send the app to Avast. The signature is then taken from the database.
https://www.avast.com/de-de/false-positive-file-form.php#android
I have seen that In my phone. The superintendent of police here installed hacking app in my phone and it is one of them. I haven't intentionally remov d it for evidence. To be on the safe side get it rooted and use VPN security or Bitdefender antivirus free.
I want to debug my android application, I have Eclipse Installed fully setup for android developement.
The problem is,
1) I can't run android emulator(Hardware Concerns).
2) I can't attach phone to my computer(Driver Concerns).
Now,
Is there a way to get debug functionality by putting directly the apk into the phone storage and installing it from there.
I wanted get the logcat of the application that I'll be running.
Basically I'm quite naive in android, I'm not quite sure of the terms I said but, What I want is a way to test my app on my phone without the role of my PC.
If you have root you can use Wifi ADB
Also you can remove drivers for this device and install other driver from your device manufacturer.
If you can run standard emulator you can use Genymotion.
I am developing an android app that will run under the android.uid.system user (the tablet manufacturer is signing the app for me so it will be able to run under this user id).
The problem I have is that it takes about 2 to 3 weeks each time I want the app signing. As I make code changes I want to be able to test them under the system user but it is not feasible for me to wait this long to be able to test/debug my changes - especially if they turn out to be wrong.
Is there any way I can test the app on the tablet as the system user (or mimicking system user privileges) without having to get it signed every time?
Further info:
I am developing on windows 7, using Eclipse IDE.
The tablets are running Android 4.4.2 and 4.4.4 (2 different models).
The tablets are not and will not be rooted.
Assume a fairly basic level of understanding of app signing on my part.
Thanks in advance
Root the device and install app to system/app folder
I have sorted this myself by rooting the device for development purposes and then copying the app from the data/app folder to system/app and then removing the it from data/app folder.
The device then treats it as a system app and so far all of the system level functions I have tried have been working (such as reboot device and set timezone).
This article helped (although I had to copy (cp) and remove (rm) rather than move (mv) the app).
I am getting reports from beta testers that after installing my .apk file their device is rebooting. After reboot the application operates as normal. Reboot after installation is not part of the desired/expected behavior, and itself sounds like a security breach.
Can anyone speculate as to why Android might reboot after an .apk install?
UPDATE:
One of the devices was an LG Ally, the other was a Samsung Galaxy Note
Are your Beta users using a rooted device? Do they have some kind of security app like "Lookout" installed on their device?
I'd suggest that you make your app create a trace log on the sdcard, that you'd get your beta tester to email to you.
Of course, this debugging process would be easier if someone loaned you the same model of the device your beta user is using.
No matter what your app should never be able to crash the operating system. A lot of this can depend on the device and manufacturer. For example, I noticed that when using a certain app to stream music on 2.3.x on the Droid X, the device would sometimes restart. I could not fix this issue myself but instead had to wait until a fix was provided by Motorola (which it eventually was). I would see if you can find a common occurrence on certain devices or manufacturers then do some researching on their reported bugs page. Also, what type of application is this (game/media/utility?)
A client is releasing a product (employee training/guide), and have contracted us to create a companion application for the Android OS.
Being a global entity that routinely has employees in areas without network access, they are releasing their product via CD.
They would like the ability for their users to optionally install this companion application to their personal Android devices (their own cell phones/tablets etc).
Since some will be in areas without network/internet access, they would really like the ability for an installer to be on this CD to install the Android application.
I am somewhat familiar with being able to install applications onto Android using ADB, but was under the impression this would require root.
Is there a method by which an application could be installed from a computer, in such a way that a non-tech savvy user could use it (IE classic installer application, just different target).
Don't want to be asking these people to root their devices, install ADB and so forth.
I think the ADB route is asking for trouble as you're reliant on the right drivers being present on the machine. Sometimes it'll work fine, sometimes it won't.
You could potentially provide the APK on an SD card for the phone, but there's no consistent app to use to open the APK from the phone, so that's unlikely to be any better.
Surely if they are using phones they do SOMETIMES have network access? I suspect you're going to struggle to find a nice solution, and although not ideal maybe better to just require that users install the app when they do get a connection?
Going down that route, you could provide the APK via email, a web link, Android Market, or any alternative market.
Do remember that the cost of a solution isn't just building it, but the support too. My sense is when you're looking at the possibility you might have to help users install the right driver, you need to look for a better solution as that's the road to hell.
I am somewhat familiar with being able to install applications onto Android using ADB, but was under the impression this would require root.
No.
Is there a method by which an application could be installed from a computer, in such a way that a non-tech savvy user could use it (IE classic installer application, just different target).
There is the Sideload Wonder Machine, but I haven't tried it, and it is Windows-specific. It also would still require adb-compatible drivers, which the user may or may not have installed on their Windows machine.
Otherwise, there are no network-less options at this time that I am aware of.
Well, there is still another option that nobody mentioned, which does not involve dealing with USB drivers. BTW, this is only a Windows problem, in most Linux distros ADB works out-of-the-box.
This option is through WiFi:
configure Tethering & portable hotspot
connect the computer to the hotspot
start some kind of web server on the computer (apache will do, probably microapache could be of help if using Windows)
on the phone open the URL containing the APK (the IP was given by the hotspot)
download
install
Voila !