Hey, XDA. This is a copy and paste of a post to '/r/wp7dev' on Reddit I made a few minutes ago, and I'm not yet able to post links sadly.
I took out my Toshiba Gigabeat S the other day, which I've pretty much abandoned when I got my Focus. I kind of missed the amazingness of Rockbox.
The short time that I had a loaner iPhone 3G, I had installed iDroid on it and the Rockbox for Android port too, and it worked well. (I was the first person to get Rockbox working on an iPhone, [kind of!])
So now, I'm thinking about how cool it'd be to have Rockbox on my shiny Windows Phone 7.5 Samsung Focus...
I'm not a programmer by any stretch of the term, aside from dabbling here and there, but I do have the whole VS2010 for WP7 and an official student dev unlocked phone and all that, and got to tinkering with the source from Rockbox's Android port (I had this linked, search for Rockbox Android port). (I figure it'd be the most sensible to try with their Android port than any of their device specific variants.)
Obviously, I have no idea what I'm doing. I was able to find a porting guide for Android to WP7 APIs (I had this linked, search for Windows Phone Android mapping) and it looks like a lot of the objects translate well, plus Java and C# are fairly similar to each other, and are translatable (also linked, search for Java C# comparison).
I'm aware of some of the limitations with file system access and native applications, etc. with WP7, so I know the whole porting process won't be a 1-2-3-done kind of deal. But it definitely looks doable.
It seems that something like this might need an Interop-unlocked device for it to fully run, but I figure anyone who'd even want Rockbox would already have that done.
Rockbox would be great for WP7 because:
- it supports gapless playback
- it supports a gigantic variety of file formats
- crossfading is lovely
- EQ controls are superb, as are compression controls and balance and whatnot
- it has an excellent set of plugins like oscilloscope, vu meter, etc.
- plus, it'll look really cool Metro-fied.
If anyone with interest is able to help out with this, let me know. Then who knows, support for streaming gapless from a media server could even be done down the line.
tl;dr: a Mango/Metro-fied WP7 Rockbox using the source code from the Android port could be a super amazing thing for the audio playback options for the platform. Any assistance in doing this would be spectacular!
Rockbox for Android is not something I'm familiar with; the last time I looked at RockBox it was a full ROM replacement. You could technically do that with an HTC phone, I guess, but it would be very difficult to create the ROM and a complete waste of the hardware's other capabilities.
Integrating Rockbox functionality into a WP7 ROM is probably closer to what you're thinging of, but it still won't be easy. WP7 doesn't allow apps to replace core functionality built into the OS, so you'd need to create a custom ROM that uses Rockbox in place of the built-in media player.
I don't know how hard this woul be, but don't assume it would be easy. Android is pretty much nothing like WP7 internally. Android uses a Linux core, and apps for it are written using a Java variant or various native programming languages available for Linux. WP7 uses a Windows CE core, and apps for it are written using managed code or Windows native C++. Typically speaking, to port an app between the two system you must completely re-write it.
I do know that Windows Phone 7 uses C#, which is structurally similar to java. At that point it'd be a matter of porting over the java to C#, then figuring out the API equivalents. Still though, I don't know how possible this'd all be without native access to the device.
Related
Hi there,
it seems to me most people here develop for WinMo devices, but maybe you can help me out nonetheless.
Currently, I'm a web developer in PHP (+ usual stuff). I studied computer science, so I'm not a newbie when it comes to coding I learned a lot of C and (unfortunately only) basics in Java and C++. I never got my hands on C# or VB and stuff - the only experience in developing applications for Windows Mobile was a small Texas Hold'em Clock (basically a simple countdown and some additional stuff) I did a few months back. I pretty much google'd everything I needed and copy'n pasted the code into Visual Studio - not really developing, but those where my first steps
I consider getting started in development for mobile devices like BlackBerry, Windows Mobile devices, iPhone, Symbian and/or Android. The problem is: I don't know which one of these might turn out useful on when I might be applying for a job later (which is basically my whole point doing this, I don't want to do web development for the rest of my life). Any thoughts?
What type of job do you want to do? first find out what the sort of jobs you want to do require, many software houses use c# so you could develop for windows mobile, if they require java then try android. Iphone uses objective c which isn't used outside of the mac world so unless you want to work for a company which creates mac programs maybe you should try something else.
Then again if you just want to make some cool apps and actually make money from them I would say iphone is the easiest to get you product to market then android with wm coming last.
also if you learn java then you can quickly pick up c# and vice versa so I don't think it really matters either way.
there are of course many other options, if you happen to want a job that requires python you could get the excellent upcoming n900 from nokia
Cant offer advise on that, but what you can do is write a better app for Facebook, the MS one SUCKS compared to the iphones (eeek i said the dirty word............)
ms's also sucks compared to the x1 panel facebook which again is not as good as iphones :S
Hey there folks,
after reading these forums for quite a while and having several smartphones during the last years, I reached the point where I want to start creating my own apps. I tried to google around a bit and found some interesting tutorials on how to start creating apps. I also found several SDKs for different operating systems. But exactly that is the point leading to my question.
Before starting to code: is it possible to choose a platform from where my app can be delivered to each winmo, iphone, blackberry or android?
Or is that just plain impossible? I mean, those are all touch based devices Should'nt be that much of a difference? Originally I wanted to start developing an iphone app, but that would leave out all the android users and so on. I don't want to rewirte everything from scratch for an android device after having finished the iphone variant. And that did not even consider the advent of windows 7.
So, is there any way of coding for all the operating systems, keeping the effort of switching between operating systems low?
greetings and thanks in advance for your help,
your unexperienced coder-in-spe,
joker
While all four of the devices mentioned all use ARM processors of various flavours to do the work, they are four completely different operating systems, each with their own IDE and programming models.
Even considering Windows Mobile, you have to decide whether you are programming for a SmartPhone/Classic or a Pocket PC/Professional device. In this case it is possible to write code that will run on both WM platforms, but you will have to make that decision at design time, before you even think of writing a single line of code. Your application will then have to act accordingly, depending on the machine on which it runs.
java apps for symbian often works ok on wm using a midlet manager
not sure about android and blackbarry but being java not too much code would be required to port it I suppose
mind you java on wm work pretty poorly
and iphone got rules that you can only make apps using objective-C/c/c++ and their SDK
which is only available if you own a mac computer
Thank you for your answers. Looks like starting to code is not that simple as expected. So I will try developing for iPhone only :/
If i wanted to help dev for this xda scene and android in general, what language (programming) should i used first?
I know android is in C and java, but just wondering, i really wanna get started
I'm very interested in some basic knowledge as well. I've done some very basic C++ stuff years back, but know nothing of linux. I'd love to star this as a hobby and if nothing more be able to try to read the code and understand what others are making. Anyone have any good links to some starter guides?
I believe it Java
Beastclaw said:
I believe it Java
Click to expand...
Click to collapse
for linux? arent kernels and stuff based in c?
Depends on what you're doing, apps and such are done in Java and XML, but the framework for android is done in C/C++ (best I can tell, I've never made mods to a rom or anything, maybe when I have more time in a couple of weeks).
For C, I like King's book (and it seems to be a popular one):
http://knking.com/books/c/
The first edition can frequently be found for <$10 if you look enough, and needless to say that the basic concepts of the C language haven't changed enough (at all?) to warrant paying SO MUCH MORE for the 2nd edition.
For Java, well I have a couple of books but neither are great. Somebody else probably knows of a book or site. Once you pick up basic Java, look at Google's guides to programming for Android, it contains the little details you'll need to make the code do what you want in the phone.
jasoninator said:
Depends on what you're doing, apps and such are done in Java and XML, but the framework for android is done in C/C++ (best I can tell, I've never made mods to a rom or anything, maybe when I have more time in a couple of weeks).
For C, I like King's book (and it seems to be a popular one):
http://knking.com/books/c/
The first edition can frequently be found for <$10 if you look enough, and needless to say that the basic concepts of the C language haven't changed enough (at all?) to warrant paying SO MUCH MORE for the 2nd edition.
For Java, well I have a couple of books but neither are great. Somebody else probably knows of a book or site. Once you pick up basic Java, look at Google's guides to programming for Android, it contains the little details you'll need to make the code do what you want in the phone.
Click to expand...
Click to collapse
Thanks a lot for the reply! I will look into some book whenever I can, for now, its Google
Sent from my ADR6400L using XDA Premium App
I just started working on programming apps for the droid a few nights ago. I started out with:
http://www.makeuseof.com/tag/write-google-android-application/
After that I went to the Android Tutorials located at:
http://developer.android.com/resources/browser.html?tag=tutorial
Yesterday I purchased Beginning Android Application Development. This has been a good book so far, only on chapter 2 but I've learned a few things in just the HelloWorld app that I didn't learn with the Google Tutorials.
Today I ordered Java Programming 24 Hour Trainer. I am having a hard time finding a good starting Java book but this looks to be the best I could find. I haven't had any hands on with this book yet so I can't give ya my thoughts on this one yet.
Hopefully this helps ya out a little. Good luck!
If you're looking to do native applications that anyone can run, Java with the android SDK is what you need to learn. However, technically you can program in about any language on android, but it generally requires extra installing (which many would consider bloat). Easy to install languages are ones like python http://pygame.renpy.org/. http://news.ycombinator.com/item?id=2476649 and http://code.google.com/p/android-scripting/wiki/SharingScripts. Since android is linux, you can put pretty much anything you want on there as long as you can get past compiling things with the ARM toolchain. You could even stick a small web server on it if you really wanted like nginx or lighttpd.
You could do quite a bit in a web "application" as well if you have hosting somewhere. The native browser and ones like opera and firefox can render just about any sort of ajax initiated effect. The advantage to doing this would allowing what you do to be OS neutral, so it could run on any device, not just android. Obviously, the drawback would be performance.
There is another project besides the python one above for additional languages here http://code.google.com/p/android-scripting/. This supports python, perl, beanshell, bash and lua (as well as contains interpreters for testing code in all of them).
If you're looking to do development for those of us that have rooted and such, C would be the better option (assuming you're interested in kernel and android source code development).
The community (free) version of Intellij IDEA IDE has pretty good android development support (as well is general java support) and testing (junit, phpunit, etc). They're running a 40% off sale currently as well to buy the full IDE (which supports many other programming languages like php, python, ruby, javascript, etc).
Well worth the money imho; I used netbeans, eclipse (which also supports android development through a plugin) and several other IDEs before it and would never go back. They actually care and reply to bug reports you file as well. I've submitted 2 in the past few months and both have either been partially fixed or will be fixed in the next version. They also give roadmaps of what will be in upcoming versions and are very open about software issues and public relations. You'd think such things would be normal for professional apps, but you would be shocked.
http://www.jetbrains.com/idea/
If you're looking for decent books, usually the O'Reilly ones are good (the books with the animals on the front) http://oreilly.com/store/. O'reilly has at least one book that's recent on Android development. Books published by Apress tend to be pretty good as well.
the android kernel is in C, so you would need to know C++ to play aroudn with ROMs and kernels. to just write an app, you only need to know java.
i just wrote my first app last year, and even made my first kernel to go along with it. granted the kernel i only changed one file, a couple hunder lines of new code. and the app was a great starter project for anyone in this position, had a few different semi easy activities, a 4 tabbed app, to show and learn how it all works together.
great experience, just hit me up if you have specific questions.
As far as my stock quantum goes, I really can't complain about wp7. Great features, flows great, everything I could ask of a marketplace based OS. I got the phone knowing it would be locked down, but hoping the possibilities would grow. I do miss the seemingly endless capabilities wm offered though. Access to all resources, running native apps without the need to sideload.
I noticed a month or so ago a few guys in the forum were discovering ways to gain higher priveledges within WP7 and with the little knowledge my noob self has, have looked into the differences between wm6 and wp7, new kernel, beeing sandboxed and whatnot. And im curious, are we waiting for m$'s release of limited native code execution to oem's to be exploited, or is there an update in the privilege adventure?
With the amount of wp7 devices released and soon to be, I doubt I can look forward to an exploited bootloader to run a custom rom on my first gen wp7 quantum (such as a tricked out wp7 or possibly wm support...?), but a ported version of haret to run xdandroid as I did on my diamond would be exceptional, and from what I understand not too impossible considering wp7 uses ce7 (not sure if there's backward compatibility for ce6 though). We would just need a new UI, and an understanding of the device specific hardware for support in android...?
Where do we stand on any of these options, are they likely or if so, nearing?
I can understand your frustration with the restrictions on WP7 but for most scenarios, access to native APIs isn't that essential in my opinion (and I have been developing on WM6 myself). WP7 uses WinCE 6.0 R3 and not CE7. The Windows Phone team do recognise that they have been quite strict with the exposed APIs and I am sure that was a combination of fear of what developers write (in terms of crashing your phone) and work need to be done with Silverlight for WP. Mango brings new low level functionality and should be made available soon - Sockets been the first that comes up in my mind. Is something wrong with sandbox solutions? I believe not
For any other reasons I probably wouldn't have much to say on the subject, but I've always been one to tinker with my Xbox, psp, router, anything fun. If I can get more functionality out of it, I look for a way. Unfortunately I am not skilled enough to make it happen, so I look upon the gurus. In this case I consider dualbooting wm or even starting android from within the current OS as expanding possibilities. Which is why I look for answers to my question. Any answers?
Hi everybody, I am an engineer and I think that windows phone is perfect for my needs..so fast and efficient, office integrated, easy to use and many other qualities..the only thing that I can't find for this OS is Mathstudio.
For those who don't know what's this, it's like having a graphic calculator always in your poket. This program doesn't make everything, of course, but many of the most common things can be done with mathstudio.
I was wondering if somebody could port this program from android/iOS to windows phone 7. Otherwise I must always go around with my mobile and with an ipod touch only for this program. I remember that the previous version of mathstudio (called spacetime) exsists for windows mobile 6.5, an other way could be a porting from windows mobile. I wrote to the official developer but he said he won't realse a windows phone 7 version of his program.
Thank you for listening
Porting WinMo apps is technically possible (though hard unless they were written initially in .NET). Making an unmodified WinMo app run on WP7 is very hard and usually requires a custom ROM to run it (the stock ROMs have very restrictive permissions policies that most WinMo apps can't work with). Porting iOS or Android apps pretty much requires re-writing them, which is an expense that some app authors don't find worth doing.
There are a number of graphing calculator apps available for WP7, and the built-in calculator works pretty well for non-graphing functions, but I can understand wanting access to a specific tool. Unfortunately, since I've never used the app you describe, I can't tell you how well any of the WP7 alternatives compare.
I've got an HD7 and I've made on my own an Y-cable to downgrade it, so now I use the DFT's Deepshining ROM..I didn't know it was even possible to run some old WM6 apps on WP7, such a grat news I'll try to find out more about it Can you give me a list of alternative graphic calculators for windws phone 7? I wasn't able to find anywhere Thank's a lot!!!
I just did a search on the Marketplace for "graphing calculator" and got a number of hits.
If you look at the Opera apps for WP7 custom ROMs, those are actually wrappers around the WinMo Opera apps - the wrappers just put the files in the right places and then launch EXEs.
Thank you so much for the help , I had a look on the marketplace and I found different graphic calculators (Graphing calculator, PoketPi, Eval Graph, Grapher Calculator), but none of them can replace mathstudio for the following reasons: they are only in 2D, they don't support the CAS (computer algebra system, the same present in Matlab), you can't write and save scripts or even one algorythm. I will find out more about wrapping for the moment, but I hope it will come a better solution
Unfortunately, MathStudio will never ported on WP7 platform (according to this: http://www.mathstudio.net/forums/discussion/164/platform-requests , check the last post)
The only hope is upcoming Apollo. WinRT (Win8 API) will have C++ compiler and (probably) will support native code, so MathStudio developers can (also - possible, it's not too easy) port their app to Win8.