what do you think about using android in an industrial embedded environment?
I'm thinking, for example, about a vending machine with a touch screen monitor. I can think about many advantages:
It would increase the ease of making an advanced user interface
Android provides tuned libraries to handle task like low power internet connection or encrypted connections
Thanks to dalvik VM, it is easier to run on different HW platform (Arm9 - Arm11 - ....)
but there are also some cons like:
Android is not thought for a mission critical environment (like a device handling money)... at least not to some extent.
If not kept up to date, the software may have some bugs that compromise safety. Issue is worsen by widespread adoption.
Someone might regard Android as resource hungry compared to a real time implementation of linux, with code written in C rather than java.
On the internet you can find some resource on the subject, but most is out of date:
http://www.hsc.com/Portals/0/Uploads/Articles/Android-Porting-on-Embedded-Platform_v2_0633850602027036930.pdf
http://www.androidforembedded.com/whitepaper/android-for-embedded.pdf
anyone has direct experience on the matter or can link me to some resource? What do you think about it guys?
Cheers,
I know of a Swiss company - Noser Engineering AG, which provides development of Android Software for embedded devices. Also check-out their showcase android to market
Android can definitely be used in a non-cell phone device. There will be pros and cons that you can find all around the web, which could be discussed during weeks.
On our side, we have been playing with Android for a while now (from the port of the OS on custom ARM board to app dev) and we see real interest from customers. Regarding reliability, as in any embedded device, it is important to validate it by yourself against the use cases that your system will have to deal with.
Eventually, if cons make you decide not to move to Android, you can have other ways to develop interesting HMI such as QT which runs efficiently great HMIs.
Anyway, you can check out our website (http://www.adeneo-embedded.com) and contact us if you need some help.
Touch screens in anything industrial is pretty much out of the question, believe me. You'd just get laughed at and wouldn't be able to sell it. Luckily, a vending machine isn't an industrial application and there a touch screen would be more suitable.
If you just want a touch screen with some GUI pre-made, there are probably 1000 companies already making such products, no need to re-invent the wheel. It would need to be > IPx5 classed too, if you want to put it outdoors in the rain and snow.
The main challenge for this kind of application is the money transactions, not the user interface. You should start there. What good money transaction software is there already available on the market, and what hardware is most suitable for it? To handle the transactions will be the real software problem for this application. Anyone can make some GUI touch screen fluff and have it toggle some relays or drive a stepper motor.
Also, I reckon the market for this application will mainly need 1) reliability 2) reliability and 3) reliability. The design, user-friendliness, visual appeal and fluffiness may let you sell one machine to a customer, but reliability will make you sell several.
Related
Please don't tell me what a bad idea this is. I am not using it as an Android tablet. It is the interface for a propitiatory medical system my company is designing. It's only function ever will be to control the system we are building.
That being said, how can I remove everything from the tablet and only run my app until the tablet dies or the standard firmware is reinstalled?
The tablet is being used exclusively as an interface control panel and CPU to my program which controls the medical equipment externally. I don't want anything else on the tablet. I don't want the users to do anything other than run my program on my equipment.
How can I lock the users into only using my program for the life of the tablet?
(I am building a system that happens to use an Android tablet to control it. Basically, I thought it would be easier to use a tablet, rather than design from scratch a system based on one or more microprocessors and which uses a custom designed and built color interface panel. If the doctors want to use an Android tablet for their offices, they are welcome to buy one.)
Thank you in advance.
Thank you all for your advice.
You will have to build your own version of Android if you wish to do this. For several reasons it is not possible to make an application that will do what you want and have it work on consumer devices.
Exactly how you need to go about customizing the OS build is going to depend on your exact hardware. But the simplest modifications will be removing the unneeded apk files from system/app/ and data/app/
AOSP and XDA-Developers are two great resources for learning the ins and outs of building a custom ROM.
If the device has reasonable power to it, you shouldn't need to worry about background processes.
If this is a consumer product, then it probably has the Google Apps suite and other related items, in which case rooting it and not installing those would be the best route. AOSP only runs processes that it needs to run Android out of the box.
Edit: You might just write the apps a Launcher and not allow opening other apps as the best route to accomplishing your goals.
You might need a custom ROM. It really depends on what version of Android your device supports. Check out the last in the list below.
http://www.redmondpie.com/best-most-popular-custom-roms-for-android-and-why-you-should-try-them-out/
I'm facing similar obstacles utilizing my business tablets. I want to restrict all the pre-loaded applications & only allow the tablet to be utilized for certain applications. White listed websites & such. I wonder if a 3rd party service such as ZENPRISE might offer a mobile management system that would take care of this for me?
zenprise
This isn't a highly technical (or specific) question. I just want to know if it is possible to use an android app to control 12V relays.
I want to use this running android:
http://www.mini-box.com/pico-SAM9G45-X
with this touchscreen attached:
http://www.mini-box.com/INNOLUX-7-TFT-with-touchscreen
I want to mount this in my car and write a simple android application that can be used to control my lighting in the car (via several 12V relays). I have a lot of background programming in many different languages, so I am not worried about the application part. However, I have very little experience using software to control hardware.
Any ideas for this would be great. Thanks!
First you'll need to get Android running on your Pico board. There are several releases of Android ported to Pico for you to play with here: http://arm.mini-box.com/index.php?title=Releases
Once you accomplish this, I recommend wiring up an ADK board to the pico and using that to interface with your relays. http://developer.android.com/guide/topics/usb/adk.html The most popular and widely documented ADK board designs are based on Arduino or PIC chips so if you have experience with either I don't think it will be too much trouble. Writing the application would entail writing a program on the ADK which listens for input from an Android app which you also create and reacts accordingly. There's a handful of good information you can find with google searches to help you out and also some dedicated discussion groups.
Alternatively, it may be possible to use the remaining unused pins on the Pico to talk to your relays. I don't know for certain though if the Android ports support this or not.
It should be a fun project to keep you busy for a couple weeks. Good luck, and be sure to write up some information on it if you get it working!
you can find so many relay boards which come with wifi and they have their own app. which you can install in your Android phone or PC or iphone(you can find a ios app for same board). and you can also modify apps according to your choice and there are products which come with input pins also so you can control lights or anything else using those input. you can check this product check this Android control realy and there are so many products available.
Does anyone know of a cheap Android or programmable device that has wifi?
I need it for a project for a company that needs a Wi-Fi handheld device for the shop floor.
I'm not too fussed about the language the device uses though I'm not really interested in the iTouch as there's no intention to release the app in the app store and I don`t really want to jail break everybody's iTouch.
Ideally it would be small, iTouch size for example and relatively cheap $100 or less. Nothing fancy, just ability to write a simple UI and have Wi-Fi. Voice is not needed.
Not too fussed about touch or qwerty keyboard either.
How cheap is cheap? On the weekend I searched eBay for "android slate" and found a bunch at US $99. I bought one immediately. It may not have the world's fastest CPU or a heap o' RAM, but at that price, how can I complain?
Like you, I want to develop apps for use in an industrial situation. I'll list voice as a feature if I use handphones, but don't really need it.
Would you please publish your final purchase decision here and I will likewise if I find a "better" option.
Bear in mind that it's not all about the cheapness of the device and consider the development effort.
Android has at least 2 good things going for it.
1) Generally programmed in Java (although you can use C & C++ if you jump through a few hoops). I may be wrong but it seems that new grads these days only know java (no offence intended to anyone reading this) and even "old hands" with C++ can quickly pick it up.
2) Android was designed from the start for developers and has an excellent development environment and good tools.
I bought a bunch of Android books and really liked Unlocking Android: A Developer's Guide, but you might want to check Amazon for readers 5 star votes.
And I have just noticed Android Wireless Application Development which I will have to buy; I think that you might benefit from it too.
Oh, and if you want to outsource any development at competitive rates ... ;-)
There were some cheap Android devices at http://dealextreme.com
I'm currently developing a small non-commercial game for Android which is based on OpenGL ES. Except for some minor issues (slow as crap emulator being the biggest) I've really enjoyed it so far and would love to continue developing for it.
The question is: What are your thoughts on the future of Android as an environemnt for the game market? I read an article somewhere that said that the IPhone is the preferred platform for games, but since I don't own a Mac and won't bother with some complicated work around to get it to work on Windows I'm currently not interested in it.
So, what do you think? Is it worth spending alot of time (and potentially money) on a larger Android game project?
Short answer: it's too early to tell. Technically this platform is neither better nor worse for games developer than iPhone. Both have some support for 3d graphics, both have good support for multimedia - just the language differs ObjectiveC or Java.
The problem is not in the technical capabilities though, but in the popularity of the platform and purely business decision if Android is a good gaming platform. iPhone certainly is and many people are making money on it already. Will Android be as popular and will people be willing to buy the game for some money is a good question.
There is some difference Android and iPhone users and developers. Android is more open platform and more software is free (or even open source). For iPhone most apps cost 1$.
So the expectations in the audience is different. Android users expect more apps to be free and will (most likely) pay only when software you give them is really worth spending any money at all. iPhone users are willing to pay this $1 even to try an app out, after all they bought Apple product that was expensive to begin with.
Will that trend continue? Or will the audience types converge as more paid apps appear on Android market is an open question.
Finally -- there will be some millions of users of the Android platform eventually. So if you develop a kick ass game it will have its audience anyway. And if Android does not become a platform for games - that may even be beneficial for you, because you'll have no competition.
In my opinion it is worth it.
As #Marcin said, Android is more of a open platform then iPhone. And it's easier for developers to start with developing applications and putting them on the market.
But it means the market is populated with a lot of crap applications. And then, there are really shiny jewels too. They get good scores, are blogged/twitted about and are popular.
So, in my opinion, if you got an idea for a good game, go for it. If you put it on the market though, consider putting (at least a 'lite' version) in the free area (people in some countries are unable to even access the paid applications market).
the below part is completly my own opinion and you can simply skip it
There are some 'cool' games on mobile platforms that I love to play. As for me, there are few important things to watch for when developing such a game, that aren't this important in more 'traditional' gaming, on a console or PC:
it should be easy(fast!) to start and stop. If I play it at a bus, it could be just 1 stop. If it starts right away and then doesn't take 5 minutes to stop it, it's a +
one more thing about rapid start/stop. If I quit the game, then come back, give me a chance to continue where I stopped. No need to ask if I wanna save/load last game. Make it default, I can always start a new game if I want, can I?
controls - even that accelerometer-using games are fun at times, try to play it in a crowded place. like a bus. Touchscreen elements should be large enough so even the thick-fingers can use it. If they are - it's a +
for long time I was trying to realise why playing Bejeweled, or Puzzle Quest, was fun and enjoying, while many of their clones were simply irrytating. The diffrence was a tiny piece of user interface - in Bejeweled the pieces you got are both diffrent colors and shapes. They are much easier to "operate" (in a Bejeweled way) then, say, screen full of diffrent color triangles. If you make a game like this, make the diffrent pieces differ in many ways, not just one (diffrent shapes with same colors would suck even more; red triangles, yellow circles, blue squares and black skulls is a way to go - in my opinion)
it's a mobile device, connected to either WIFI or 3G network, you can use the internet to at least show/save highscores. But - remember - sometimes there's no network, we're in a diffrent country with roaming turned off or on the bottom of the ocean. Make the game work even there
Thanks for the replies!
I myself believe that the marketplace will gain momentum once there are more Android phones on the market, though my biggest fear is that it'll end up like Xbox Live Indie Games were 90% of the games are of below avarage quality, which of course affects it's reputation in the gamer community.
One thing I don't understand is why there isn't some kind of pre-approval before letting the application or game onto the market place. I understand that they want the people not the company to decide what should be allowed to be uploaded, but then they could let the users be the reviewers so that there is atleast some quality checks before release.
The iPhone has the advantage of a huge market (approximately 10x the android one at the moment) and even better most of those users have already given apple their credit card so they are ready to buy. Getting android users to spend .99 is hard. Depending on the game, you can make decent money (50-100/day) off of ads. The first is likely to change with more android phones and more android carriers(Verizon would be huge for the US market)
Technically Android is a bit slower (Java versus Object C) but with the NDK you can get decent performance. The iPhone has better opengl support (1.1 and 2.0 on the GS) while android is more of a 1.0.
There is an interesting article about Android as a games platform on Gamasutra.
Developing Games for Android
I'm wondering if is possible to install/use Android with other phones? Will be nice to have it on such a piece of hardware like the new SH004.
Mobile phones are generally very hardware independent of each other and require a serious amount of hacking in order to do any sort of "moding".
I can barely find any information on the SH004, but I think it will have to be out for a few months before you will even start to hear people of moding it, yet alone installing another Operating system.
Your best bet is to find specialised forums such as CellPhoneHacks, (There are better around, but not sure if I should link to).
Android is actually designed to be portable, and to provide source code for most of the generic pieces. However, the possibility of running it on a consumer device intended for a different operating system/framework depends on three things:
1) The hardware must have sufficient capability - likely meaning it was originally designed to have comparable capabilities under whatever OS it shipped with.
2) Sufficient low-level documentation must be published or reverse engineered to adapt a Linux kernel, flash memory driver, user I/O drivers (touchscreen, etc), and anything communication related (wifi, mobile, etc) and optionally any extras (accelerometer, gps, etc)
3) It must be possible, either by design or by finding an exploit, to run arbitrary code on the device - ie, boot an image which has not been signed by an approved party such as the OEM.