[Q] Wanting to create a launcher/home screen replacement, how to start? - C++ or Other Android Development Languages

I am planning to develop launcher/home screen replacement, what is your recommendation for me to start?
Some questions that crosses my mind at the moment:
* What language I should use
* Any open source samples I can look at
* How to properly debug an Android app
* How to profile & optimise the app
I'm quite well-versed in programming, but for the desktop. I haven't ever created a program for Android, yet. So, I'm going to need some guidance here.
sent from Sony Xperia SP C5302 (stock 4.1, LB, root) via Tapatalk

pepoluan said:
I am planning to develop launcher/home screen replacement, what is your recommendation for me to start?
Click to expand...
Click to collapse
You'll have to do this in Java. You could possibly write parts in C++, but the base app will be Java. Get the Android SDK, it contains a small sample launcher app that can serve as a starting point. Since android is open source, you can also look at the code for the default launcher:
For debugging, I've personally used Emacs with jdb, because I cannot stand working with Eclipse. But Android Studio seems to be coming along nicely, and this might be your best bet when starting out.

pepoluan said:
How to properly debug an Android app
Click to expand...
Click to collapse
For work I've done, the output of the logcat has usually been enough to point me in the right direction for Java and C++. If you happen to do anything with the NDK, and stick with Eclipse, here's a guide mhandroid.wordpress(dot)com/2011/01/23/using-eclipse-for-android-cc-debugging/. If you're not comfortable with using other editors, I'd recommend Eclipse, but I despise it, like the poster above me.

Related

[Q] learning how to develop apps

i want to start making apps for android but dont know where to stat i have the sdk on my desktop but thats about it. If someone could please help me or push me in the next step please do so.
Just go to the dev guide on the Android website to start making your first Hello World app. As for language, Android (I could be wrong) uses Java. Again, I could be wrong.
Sent from my GT-I9000M using XDA App
Indeed, Android uses Java. I'd suggest learning it before attempting to program for Android or else you'll feel like it's gonna be too difficult. There's plenty of books on Java, and some powerful Google searching will lead you to step-by-step guides to learning Java.
Also, go through the Android Dev Center for a lot of information. There's plenty of guides there on things like 'how to design your app to flow with the overall android feel' and 'designing icons to fit general android homescreen look'.
You're gonna want to download Eclipse for Java Programming. It's a free Java development environment much like Dreamweaver and Visual Studio are for web development.
Oh, and PLAN! Like any good development project, your project will not get anywhere if you don't know where to start and when to end it.
Plan first. Then plan the planned elements. Java is object-based programming, and just like building a house each object needs to be solid or else it'll crumble to pieces.
Same here. Thx for the advice.
elindemann said:
Indeed, Android uses Java. I'd suggest learning it before attempting to program for Android or else you'll feel like it's gonna be too difficult. There's plenty of books on Java, and some powerful Google searching will lead you to step-by-step guides to learning Java.
Also, go through the Android Dev Center for a lot of information. There's plenty of guides there on things like 'how to design your app to flow with the overall android feel' and 'designing icons to fit general android homescreen look'.
You're gonna want to download Eclipse for Java Programming. It's a free Java development environment much like Dreamweaver and Visual Studio are for web development.
Oh, and PLAN! Like any good development project, your project will not get anywhere if you don't know where to start and when to end it.
Plan first. Then plan the planned elements. Java is object-based programming, and just like building a house each object needs to be solid or else it'll crumble to pieces.
Click to expand...
Click to collapse
Actually, you're doing things the hard HARD ...HARD way....
if you want to develop apps for android, Titanium Mobile (appcelerator.com) is the best way to go. It takes far less time to learn JavaScript , CSS and HTML then it does to learn pure JAVA, and then learn to implement Android's API.
There are a few things that Titanium Mobile can't do, but they are always working on it to make it better. And of course - it's free
I've made a few apps using it. Including an HTML eBook reader, Chinese Flashcard App, and a Simple Chat Client.
Their JavaScript API takes a bit to get used to, but after that, you can easily spit out a simple app in about a day or so.
I have a web-app Template that lets me dump a Web-app (html/css/js) into a project, and spits out a nice new shiny Android app ready for the market.... I also wrote code that lets you access the Menu Button on android too. So it's not like using PhoneGap where it's just a Browser session with an icon on your phone.
PM me if you're interested, and i'll show you everything i learned about Titanium Mobile so far (i'm still learning actually). Or if you want an app done, i can do it for you... free if it's easy enough
DaoMingJin said:
Actually, you're doing things the hard HARD ...HARD way....
if you want to develop apps for android, Titanium Mobile (appcelerator.com) is the best way to go. It takes far less time to learn JavaScript , CSS and HTML then it does to learn pure JAVA, and then learn to implement Android's API.
There are a few things that Titanium Mobile can't do, but they are always working on it to make it better. And of course - it's free
I've made a few apps using it. Including an HTML eBook reader, Chinese Flashcard App, and a Simple Chat Client.
Their JavaScript API takes a bit to get used to, but after that, you can easily spit out a simple app in about a day or so.
I have a web-app Template that lets me dump a Web-app (html/css/js) into a project, and spits out a nice new shiny Android app ready for the market.... I also wrote code that lets you access the Menu Button on android too. So it's not like using PhoneGap where it's just a Browser session with an icon on your phone.
PM me if you're interested, and i'll show you everything i learned about Titanium Mobile so far (i'm still learning actually). Or if you want an app done, i can do it for you... free if it's easy enough
Click to expand...
Click to collapse
Wow, I'm very interested. I might check it out.
sent from my pimp hero running Froyo CM6 and the XDA app
If you know the C or C++ language you could try out MoSync, depends what you like, some programmers like the level of control and speed you get from C++. If your content with simpler apps then maybe phonegap or appcellerator for you.
I guess that when mobile apps get more sophisticated javascript programs will be just as complex as C++ programs.
Thats my view, but then I like C++ better.
/Tony
MoSyncTony said:
If you know the C or C++ language you could try out MoSync, depends what you like, some programmers like the level of control and speed you get from C++. If your content with simpler apps then maybe phonegap or appcellerator for you.
I guess that when mobile apps get more sophisticated javascript programs will be just as complex as C++ programs.
Thats my view, but then I like C++ better.
/Tony
Click to expand...
Click to collapse
It really depends on how much control and you really need. If you're going to write games, then you do need speed that C++ and the Native Application Development API on android can give you. If you're writing a social networking app, the speed of C++ would really be an overkill.
As far as i've read, PhoneGap still has a lot of issues. And the build process is a bit more complicated than on Titanium Mobile.
If you're just using the regular Android API to write apps, i don't notice a lot of difference in speed execution between writing it in pure Java, or using Titanium mobile (using native code and UI elements - i don't mean putting everything into a WebView).
The current app that i'm writing now i don't think can be written using Titanium Mobile or PhoneGap (unless i added some native functions and did my own fork of PhoneGap).
More or less, i'm writing an App for Android and JRE/Linux systems that will allow me to enumerate, and access USB status bits, and USB data frames of a given USB device, and then allowing that USB device to be accessed through a TCP or UDP connection.
I might be able to do this with Titanium Mobile, but i don't think i can. As the only files you're allowed to access are on the SD card, application data directory, and temp directory.... i think there's one other place you're allowed to access too, but i never used it. However later today i might just try to see if i can access the /Dev/DSP01 (aka sound card) on an android device. If i can, i think i could write it using titanium mobile. I'm already halfway done with this app in pure java, so i wouldn't actually rewrite it in Titanium Mobile now.
DaoMingJin said:
if you want to develop apps for android, Titanium Mobile (appcelerator.com) is the best way to go.
Click to expand...
Click to collapse
Thanx mate!
If you looking a book or something to teach you the basics Beginning Java Programming for Dummies and Android Application Development in 24 Hours are good reads.
I'd rather not fill the forum with more threads so I'm just going to ask my question here. What is the best way to read the android dev guide on the device itself? Just going to the site directly? Ideally I'd like a pdf or something designed to be read on a small screen. The site can have formatting issues when read on a small screen.
Sent from my SPH-D700 using XDA App
I've been developing for a long time (nearly 30 years), and whenever I need to learn a new language I start with the Sams range, "Teach yourself whatever language in X days/hours". They're pretty good and this is available for Kindle, which is great if you use the Amazon Kindle app...
http://www.amazon.co.uk/Teach-Yours...1_fkmr2_2?ie=UTF8&qid=1287485537&sr=8-2-fkmr2
It obviously costs, but I really do rate those books as brilliant starting points. The rest is google and friends on here.
Hope this helps - good luck mate.
Personally, I've been coding in Java for what... four years now? I'm feeling dwarfed here by johncmolyneux but honestly, the best way to learn is to not use an IDE like Eclipse, but to use something that you have to hand-code everything yourself, such as Geany! You learn fairly quickly after writing a few applications.
If you are thinking "titanium", "mosync" or "phone gap" it is worth doing a bit of background research. There are several extremely powerful tools out there that can help you build cross platform apps - these are among the top ones.
bit more discussion about this here: http://forum.xda-developers.com/showthread.php?p=16703287#post16703287
There are a few useful reports comparing them - check out ours by googling "triballabs cross platform"
The Google App Inventor makes it pretty easy to create your own Android apps. Best part is you don't need to learn any programming languages. You won't be creating anything too complicated like a video game for example, but it's a good start nonetheless.
http://appinventor.googlelabs.com/about/
If you want to learn the basics of Java, then please check out a book called as "Head First Java". They really explain the basics with the help of real life examples to make things much simpler so that people understand.
Beginner app projects
I'm also just getting started with app development. Something I've been looking for is a beginner app project. Wish I could find a walkthrough of a simple app like a game of Hangman or something like that. I've been through the android developer training web site and got some good info but some things I'm still a little stuck on. Id Love to see an actual app (rather than just a mock up of some fields and buttons) and then a slightly dumbed down explanation of the code. Might be a lot to ask but man it would be great!

[Q] App Inventor

So App Inventor was ESSENTIALLY a toy, but very easy to understand and use if you were not too demanding with your app.
MY question is with the advent of App Inventor going away, what tool set are people using to build actual high grade apps these days? While I have a long background supporting JAVA application servers, I am NOT a world class C++ or JAVA developer. I am what you would probably consider a hack-developer.
I would LOVE to get involved with any tool set that allows me to build applications QUICKLY, and use my own phone as a test device (I am NO fan of emulators). Is there a GUI based development tool that does not require an advanced degree from MIT to understand how it works? I have worked for years with .NET products (MS Studio etc..) I have also worked with products like ECLIPSE, but the latter it is usually very dependent on knowing a ton of JAVA or C++ to actually 'do anything'...
My real goal for my first real project has to do with accessing GPS and outputting SMS formatted information.
Thanks in advance for any suggestions! While I know A/I was a toy, I have great hopes that the open source world and the folks at MIT labs will take it and move it to the next level. Guess I will have to wait and see on that one..
Sorry delete please.
MakAttak said:
MY question is with the advent of App Inventor going away, what tool set are people using to build actual high grade apps these days?
Click to expand...
Click to collapse
while app inventor was an outstanding tool, I would hardly say that it allowed people to build high grade apps.

[Q] Where should I start if I want to learn how to develop Android apps?

I'm wondering what are the steps I should take to learn/know how to develop apps for Android OS.
It would be very appreciated if you would consider me as a complete nooblet and advised me what I should learn/study.
For example, first thing I assume I should do, is study to code/language for Android platforms. So what is it?
What are the necessary development environment required? (Linux PC?)
My ultimate goal is to be able to create a launcher (ex. Go Launcher Ex).
I'm willing and able to invest my time into properly learning how to develop apps for Android, and I just need some help on an outline of a
syllabus, per say, of how I should progress with my studies.
On another note, I was wondering what the difference is between Launchers and Themes?
I was reading up on this Theme guide http://forum.xda-developers.com/showthread.php?t=916814 and it got me wondering if this only pertains to themes
or ADW launcher?
As you can see I'm quite confused
Thank you for your time.
Download SDK and start looking at the examples. You'll find an excellent step-by-step tutorial at developer.android.com/training/basics/firstapp/index.html
http://www.xda-developers.com/xda-tv-2/how-to-build-an-android-app-part-3-arduino-development/
refer this series of 5 awesome episodes by Adamoutler
Thank you for the replies
I will look into every mentioned content.
Linux seem's the right choice, for app development and ROM development, i personally use Linux for ROM development, kernel compiling also most of tutorials are based on Linux, and for app development i use windows, you can do both on windows but i prefer a full Linux OS that Cygwin for more complex Android stuff.
hmmm, as I stated above, my ultimate goal is to create a launcher of my own which I can create themes and customize at will.
Launchers fall into the Apps category if I'm not mistaken, so I wouldn't need another testing platform, and just use my trusty ol' PC with Win 7 x64, right?
Creating Launchers would be an 'Advanced' step in App development. First you have to get used with the Eclipse and android-sdk, debugging, editing and modifying the xml's etc. So I'd suggest you to take some sample tutorials based on App development. If you have enough knowledge in Java, then its so easy. But getting straight into creating Launchers would be slightly difficult IMHO.
Anyways I've created some Threads (You can see by visiting my Profile) based on beginner level app development. If you're interested you may refer and do as mentioned in the guide.
~Cheers
So the initial step I should take is learn comprehensive Java.
Thanks for the input.
coolsandie said:
Creating Launchers would be an 'Advanced' step in App development. First you have to get used with the Eclipse and android-sdk, debugging, editing and modifying the xml's etc. So I'd suggest you to take some sample tutorials based on App development. If you have enough knowledge in Java, then its so easy. But getting straight into creating Launchers would be slightly difficult IMHO.
Anyways I've created some Threads (You can see by visiting my Profile) based on beginner level app development. If you're interested you may refer and do as mentioned in the guide.
~Cheers
Click to expand...
Click to collapse
I started learning not to long ago as well, and I have found that youtube is pretty good. I can't sit and read books for a decent amount of time, so videos really help me. Here is one I have been watching :
http://www.youtube.com/playlist?list=PL2F07DBCDCC01493A&feature=plcp
or this bootcamp series is pretty good.
http://www.youtube.com/playlist?list=PLE08A97D36D5A255F&feature=plcp
I downloaded all the videos so I can watch whenever and jump around. Feel free to pm me, I have some more resources...
Just picked up a Java book :fingers-crossed:
In addition, looking into various Java beginner tutorials to back up the readings.
Hopefully, after I gain some basic understanding about Java (language), my transition into app dev for Android will be easier
AER0 said:
Just picked up a Java book :fingers-crossed:
In addition, looking into various Java beginner tutorials to back up the readings.
Hopefully, after I gain some basic understanding about Java (language), my transition into app dev for Android will be easier
Click to expand...
Click to collapse
If a Launcher is your ultimate goal, go with Java.
If you would also settle for lesser goals like simple timer apps, barcode scanner apps etc, trash your Java book.
Start with Python and the Python for android. You will be able to programm your first semi-sophisticated apps within a week.
AER0 said:
Just picked up a Java book :fingers-crossed:
In addition, looking into various Java beginner tutorials to back up the readings.
Hopefully, after I gain some basic understanding about Java (language), my transition into app dev for Android will be easier
Click to expand...
Click to collapse
i can suggest a few books...java for android developers , the android cookbook , linux in a nutshell , linux kernel by o'reily
Try to modify some android app/games first just like what im doing now:good:
Learning Java is for sure the first step, then look at the SDK examples.
Will do :good:
Thanks for the suggestions

Best Way to Develop A Simple App?

Hello,
I am a total novice. However, I'd like to develop a simple timecard app for Android, specifically targeted like the apps below.
http://www.appato.com/edward-pereira/wrap-time-time-card-for-film-crews/
http://www.crewtimecard.com/
These only exist for Apple products, though. What is the easiest, most straight-forward (Windows-based) software for creating such an app? I've heard of something called Eclipse...? Or there's some Google thing?
Thanks!
You need eclipse ide and android adt plugin for exclipse to code for android.Also you need android sdk for the api's.Googling "how to setup eclipse for android development" will give instructions for those from android developers website
Sent from my GT-N7000 using xda app-developers app
thanks vijai2011. Is Eclipse easy to learn? Is there something easier that may not be TOO basic, so that I can create a timecard app like the ones I linked to above?
You dont have to learn to use eclipse .All you you need to know is java and few things about android resources which you can find at android developer website.They will pretty much cover everything.
But without java,you cannot take even the first step of app coding.Heart of app coding is java.
Sent from my GT-N7000 using xda app-developers app
I see... so there really isn't something similar to Adobe Dreamweaver for android apps?
daniel178 said:
I see... so there really isn't something similar to Adobe Dreamweaver for android apps?
Click to expand...
Click to collapse
Like Adobe Dreamweaver lets you design your web layout pages with PHP coding ... Eclipse lets you design the App layout with java coding. Its pretty much similar.
You can even use Netbeans or similar IDE's, but most developers use Eclipse and its the one that's being recommended by Google, I guess.
Thanks... I am little intimidated by Eclipse. Is it mostly graphical? can I get by without any coding? You see the type of app I want to create....
Also, have you heard of Phonegap? Is this easier/better/more or less limiting?
Eclipse is fully gui.You go through a wizard to create a new project,adding app icon,creating main activit(ies),select lowest api and the api for app then you get into a screen like a text editor where you type java,then go to android manifest then added the created activity,give perm and export the app signed.Even the adb is included at the bottom toolbar for easy debugging in real time .
So its pretty much straight forward but it can take sometime for the first time.
Sent from my GT-N7000 using xda app-developers app
Hmm, sounds like there's some java (at least) coding involved. Can I get by without any manual coding at all?
Also, to create an app like the timecard things above, for Android, what version of Eclipse would be best (simplest, yet able to do the job well).?
Well....Its not some java...It 99% java the remaining 1% is for the look and feel that you put to your preference .That is why I said
But without java,you cannot take even the first step of app coding.Heart of app coding is java.
Click to expand...
Click to collapse
on post #4
No...you dont need any specific version of java.Take the latest eclipse IDE and the latest ADT plugin and code it.There is nothing you can do without manual work of typing java.You cannot do those web page design using dreamweaver here Here is my first app I wrote.There is also the source code attached at the bottom.See how long the code is just to invoke a activity of another app with a default argument.
This is how I set up eclipse:
You must have sdk pre-installed for this.Also sdk needs a 32bit java JDK to work.(you need 32bit irrespective of if u run 32 or 64bit.Dont know why is that so.SDK never recognized my 32bit JDK)
Install eclipse classic
follow this to install ADT
daniel178 said:
Hello,
I am a total novice. However, I'd like to develop a simple timecard app for Android, specifically targeted like the apps below.
http://www.appato.com/edward-pereira/wrap-time-time-card-for-film-crews/
http://www.crewtimecard.com/
These only exist for Apple products, though. What is the easiest, most straight-forward (Windows-based) software for creating such an app? I've heard of something called Eclipse...? Or there's some Google thing?
Thanks!
Click to expand...
Click to collapse
Checkout HELLS-KITCHEN. It's a great starting point. With this Distro and a million Tutorials on XDA, you should be able to find what your looking for.
what about Flash? I've watched a couple of video tutorials on using Flash 5.5 and up to create Android apps, and it seems pretty graphical-only (no or less coding -- keep in mind my app is very simple). Would this be a viable option?
What ever you try,The last and final destination is TO USE JAVA for app even if the app is a "Simple" Hello world app!You have to have a main activity,type in the codes etc....You dont get it out my clicking out on wizards like:
Do you want Android app?click next
Do you need it to be simple?click next
What features you need?Select them.
If you are too lazy to type out codes or dont know java,Why not just try any alternative in play store?It is more Graphical and is only few taps
Sent from my GT-N7000 using xda app-developers app
Alternatively you could try to use phonegap.com or usepropeller.com / simplr.mobi.

C++ For Android?

Hey all,
I'm pretty new to android development and I was curious if anyone could tell me the benefits of learning C++ alongside Java (specifically while working with Android).
My first project that I'd like to accomplish seems a little arduous, though I do have help. I'm attempting to create an app that is used to catalog clothes, but also parses image data to detect the colors. In this way, it will be (hopefully, by some means) possible to have the app help match the clothes for the user. The inspiration for this is my extreme colorblindness.
Anyone who potentially has feedback regarding interpreting data from the camera on Android, feel free to pitch your two cents.
Read this. May help you. http://forum.xda-developers.com/showthread.php?t=2225668
Sent from my SonyX8 using Tapatalk 2
ScatteredHell said:
Read this. May help you. http://forum.xda-developers.com/showthread.php?t=2225668
Sent from my SonyX8 using Tapatalk 2
Click to expand...
Click to collapse
Thanks so much!
Sent from my HTC One using xda app-developers app
not sure you need c++ for your project
My experience with C++ (using Marmalade) is that if you need a lot of UI, than you are better off with the Java framework. Designing UI with Marmalade is a real pain. It's great for power hungry games and apps, but not for UI.
If you absolutely need to use C++, my advise it to start with the native Java and NDK, and only if you're not satisfied, look elsewhere. Even in Marmalade, which is supposed to be cross-platform, you will reach the point, too quickly in my opinion, in which the SDK doesn't give a cross platform solution to what you want (say use a downloaded third-party sdk, or request some OS function that the SDK does not offer), and you will have to implement specific OS "EDKs", so will have to know your native coding anyway.
Hi,
you should try Qt, though you need the android sdk/ndk, Jdk and Ant as well, but it works.
jrdemasi said:
Hey all,
I'm pretty new to android development and I was curious if anyone could tell me the benefits of learning C++ alongside Java (specifically while working with Android).
My first project that I'd like to accomplish seems a little arduous, though I do have help. I'm attempting to create an app that is used to catalog clothes, but also parses image data to detect the colors. In this way, it will be (hopefully, by some means) possible to have the app help match the clothes for the user. The inspiration for this is my extreme colorblindness.
Anyone who potentially has feedback regarding interpreting data from the camera on Android, feel free to pitch your two cents.
Click to expand...
Click to collapse
Get a book from fipkart to lear this. "Android Devlopment"
jrdemasi said:
Hey all,
I'm pretty new to android development and I was curious if anyone could tell me the benefits of learning C++ alongside Java (specifically while working with Android).
My first project that I'd like to accomplish seems a little arduous, though I do have help. I'm attempting to create an app that is used to catalog clothes, but also parses image data to detect the colors. In this way, it will be (hopefully, by some means) possible to have the app help match the clothes for the user. The inspiration for this is my extreme colorblindness.
Anyone who potentially has feedback regarding interpreting data from the camera on Android, feel free to pitch your two cents.
Click to expand...
Click to collapse
I would choose for this between two options: develop entirely in Java except for the portions that are computationally heavy, which can be implemented in C/C++ using JNI glue code. Or you may implement everything using a C++ based framework, like Qt, both for the creation of the UI and of the rest of your application. With Qt of course, the specific UI portion can be written using QML, which might be faster.
const_char said:
I would choose for this between two options: develop entirely in Java except for the portions that are computationally heavy, which can be implemented in C/C++ using JNI glue code.
Click to expand...
Click to collapse
I second this, with the sidenote that you should only use C/C++ if the computationally heavy code is actually time-critical.
I mean, at first glance, your project sounds like it won't be very taxing on the CPU anyway. So having a full Java version may still be fast enough, and the user wouldn't even know the difference. In that case C/C++ is not worth the trouble (JNI is very ugly, and you shouldn't use it unless you really have to).
C++
I think C++ is not for suitable for this application. Although i did not use it. But you may first take some tutorial then you can start. When face problem then discus this forum. I am sure somebody may help you.
Sorry for my English.
Thank you
you can get pixel color use this sample code.
jrdemasi said:
Hey all,
I'm pretty new to android development and I was curious if anyone could tell me the benefits of learning C++ alongside Java (specifically while working with Android).
My first project that I'd like to accomplish seems a little arduous, though I do have help. I'm attempting to create an app that is used to catalog clothes, but also parses image data to detect the colors. In this way, it will be (hopefully, by some means) possible to have the app help match the clothes for the user. The inspiration for this is my extreme colorblindness.
Anyone who potentially has feedback regarding interpreting data from the camera on Android, feel free to pitch your two cents.
Click to expand...
Click to collapse
you can get pixel color use this sample code.
String imageUrl = SOME_IMG_URL;
InputStream in = new java.net.URL(imageUrl).openStream();
Bitmap bitmap = BitmapFactory.decodeStream(in);
int pixel = bitmap.getPixel(x,y);
and.
int red = Color.red(pixel);
int blue = Color.blue(pixel);
int green = Color.green(pixel);
you can get average color value of SOME_IMG and you can catalog this.
it seems easy!

Categories

Resources