Moto-X - Programming the DSPs - Android Software/Hacking General [Developers Only]

As most people know, the new Moto-X as well as the new Droid series will include two DSPs in addition to the main ARM SoC CPU. One is a "contextual processor" that handles sensor input, the other is a "natural language processore" that handles voice commands. Motorola's VP of Engineering said that without these DSPs the phone would need two extra batteries to handle the functionality for always-on voice recognition, wrist flick camera, always on notifications, etc.
Question - Is there going to be some sort of abstraction layer over DSP functions with an API accessible to apps running in Dalvik? That's the key question IMO. If so, this could be really big. If you need to write native code in C/ASM that's specific to each particular piece of hardware, then it's a dismal failure. Has any info on this been released?

there's a system dump of moto_x over in Android software forum, would be worth checking out but knowing moto their not going to make it that easy..
Sent from my DROID BIONIC using Tapatalk 2

Related

What is HTC's problem with Camera APIs?

I'm quite pissed.
Before Windows Mobile 2005, HTC did not make their camera API public, so developers could not make use of the camera.
This all changed with WM2005 and the introduction of DirectShow. For devices released in the first year (since release of WM2005), this meant that one could "simply" use DirectShow to access the cameras.
But then HTC fell back to old habits again:
The HTC TyTN (Hermes) reports only a single video mode via DirectShow: 160x120 at 7.5 fps, which is a joke. Furthermore, trying to access the front camera via DirectShow fails too: It is simply not exposed (enumerated) at all.
The HTC Mteor (Breeze) goes even one step furher: It does report 160x120 and 320x240 (both at 15 fps), but actually both modes deliver pictures at 160x120. For the 320x240 mode, everything seems to work fine: IMediaSample tells that the picture is in that resolution. The memory buffer has the correct size (320x240x12bits), but the image in the buffer is really just 160x120.
Of course I tried several ROM versions (HTC, i-mate, etc.) but no chance.
So, I'm quite pissed. I already tried calling HTC but didn't get very far (which makes sense if these restrictions are on purpose...)
Daniel
No comments on this?
Nobody every using DirectShow?
I guess I also wouldn't do it if I wasn't force to...
Daniel
So with simple words if you want to use WM5 camera api in your application you can not do it in any HTC device
So how did the makers of CoolCamera go about? I was kinda under the impression that it used wm5s camera api, or am I wrong?
I think they've rewritten the interface from scratch. Look into the CPU developers' manuals. Not a small endevour!
V
CPU Developers' manual
Hi Vijay555,
Would you be so kind to post a link to where I can get this manual ?
Thanks in advance!
I don't think anyone wrote anything from scratch nor do I think this has much to do with a CPU manual... the devs at CoolCamera may have *somehow* managed to get their hands on the infamous HTC TyTN camera api... what exactly are you referring to when you mention the CPU manual?
Also, has anyone ever found a location where this api may be available or a means to get it? HTC developer support is non existant.
Eric, what makes you so sure that they didn't write it from scratch? Maybe they did acquire illegally or otherwise HTC's intellectual property, or maybe they just did what other manfacturers do and wrote some code.
Look at the device support - it's not a single device, it's many, across many different CPUs (Intel, Omap, Samsung), across many different camera sensors and support chips. However, implementation of a camera at software level is not impossible: how else do companies sell their sensors and chipsets?
http://www.ovt.com
Ask the sensor manufacturer, they'll give you chips specs, schematics, implementation code and draft driver code.
Then, look up the SC32442A developers' manual and you'll see that it encompasses a camera interface, again with necessary schematics and hardware IO information.
Sure it's hard to write a camera interface, but once you've written one, it gets easier to support others.
V
they need to continue writing then because my camera application frequently fails in that pictures are corrupt, can't be viewed, and the picture review is just black
Sure it's hard to write a camera interface, but once you've written one, it gets easier to support others.
V
Click to expand...
Click to collapse
What kind of effort are we talking about here? Days? Weeks? Do you think this would need to run in kernel space, or we could get away with user space?

[Q] a simple question about android...

I have a simple question about Android in which I have not found the simple answer to... (Although I think I know, I just want some clarification). I recently switched over to Windows Phone 7 because of various reasons, I will not name them here as that is an entirely different subject, however one of the reasons i switched was because of overall responsiveness of the OS. Why does Android's touch response feel sooo clunky? Yeah transitions and app launches are nice and quick, but I mean like pinch-to-zoom, and scrolling... I have played with the latest and greatest both rooted (with and without custom rom) and non rooted (with or without OEM UI), Motorola Xoom, Atrix 4G whatever is being claimed latest and greatest. But no matter what they all have the same touch response lag no matter what. This, believe it or not, is a major deal breaker for me, and before the majority of you speak, I'll speak for you; "why is something so simple and small, barely even considered a nuisance, be such a nuisance?" for me, i love fluidity, so, it just is. At this question however i do retort; if its such a "simple" or "small" nuisance, why can't it "simply" be coded to feel as fluid as Windows Phone 7, or iOS?
Luisraul924 said:
I have a simple question about Android in which I have not found the simple answer to... (Although I think I know, I just want some clarification). I recently switched over to Windows Phone 7 because of various reasons, I will not name them here as that is an entirely different subject, however one of the reasons i switched was because of overall responsiveness of the OS. Why does Android's touch response feel sooo clunky? Yeah transitions and app launches are nice and quick, but I mean like pinch-to-zoom, and scrolling... I have played with the latest and greatest both rooted (with and without custom rom) and non rooted (with or without OEM UI), Motorola Xoom, Atrix 4G whatever is being claimed latest and greatest. But no matter what they all have the same touch response lag no matter what. This, believe it or not, is a major deal breaker for me, and before the majority of you speak, I'll speak for you; "why is something so simple and small, barely even considered a nuisance, be such a nuisance?" for me, i love fluidity, so, it just is. At this question however i do retort; if its such a "simple" or "small" nuisance, why can't it "simply" be coded to feel as fluid as Windows Phone 7, or iOS?
Click to expand...
Click to collapse
I will try to answer since I've been using android before. android now as I believe is still in development stage. especially because it started from open source, where many developers get involved to participate in android development. unlike windows or the IOS platform. development is only done by the company itself through microsoft and apple. Except for third-party application development
android is a system (for run smoothly) with very powerful hardware. so that the source code would require a very complicated of encoding. Its a very difficult job to sync between the needs of software with hardware which is available. and vice versa. in an application such as pinching and scrolling there is more than one command which contains a lot of code. and should be remembered that this is a system. which are all related to each other for the overall operations to run smoothly based on the minimum demand of the hardware required. if there is one character in which is wrong of encoding or difference may cause the application not running properly.
for high-end android device such as Xoom, atrik 4G I'm sure the hardware is not an issue. I'm sure it was more caused by the complexity of encoding in one of the applications listed that is running inside in the whole operating system, making it not running smoothly. because so many commands which must be running at the same time is what make pinching and scrolling activity to be "clunky" like you said. you can differentiate by turning off the internet connection or turn off unnecessary applications running in the background. But I'm sure very soon android operating system will have a system which is more stable and efficient in encoding such as those held by the windows or apple.
My answer may be added by other members of the more expert in these matters. as a newbie, i am just trying to help based on the knowledge I had acquired over the years. CMIIW
Yeah I figured it would be something like that, I owned a Droid (1st gen.) and I had multiple setups from completely stock to my favorite, Cyanogenmod (always on the latest stable build, although I've already flashed CM7 RC2 and its probably the fastest its ever been at 800 MHz) everything was perfect except; scrolling and pinch-to-zoom. The scrolling is almost there, it actually lags for a bit but if I leave my finger on the page, it locks on to that position and stays there, but once I lift it to continue scrolling down or up it'll lag a bit again. The pinch zooming is just horrible no matter what. Unfortunately, given the nature of open source, and coding software in general, there is no such thing as "finished" software, so since this is open source, and the software is basically written to run on "nearly" whatever device you choose to flash it on, i don't think that problem will ever be solved. However, if Android does eventually reach that richness of responsiveness, then i will more than gladly switch back.
issues of a system running smoothly is different from one device to another device.
due to the wide variety of different android devices that causes the emergence of issues on the system stability. it was time to google as the main developer sets the standards for the development of next android os. while there is no standardization of hardware is set by google. it will be very difficult for other developers to write code/adjust performance in the operating system command. all this time writing code is must be adapted to the device from vendor itself. This will bring up the differences result of writing the code on other devices from another vendors (competitors). so if we running bencmark test or head to head test on both devices from different vendor the result will not be the same.
and if there will be a standarization set by google i believed it will not againts a spirit of an open source
I think the hardware that the WinCE (well...the shoe still fits) and Android phones are made on is essentially the same, in terms of the CPU power, the actual CPUs, the memory and the various other systems (graphics, etc.). Maybe not identical but overlapping classes and performance.
I haven't played with the new WinPhones but have noticed that every Android phone, no matter how fast and how "bare" factory, sometimes goes out to lunch. Apparently that's just the way the OS is written, it sometimes goes off to do other things internally (loading code? checking hardware states?) and you can't do anything except wait for it to come back.
But then again, almost every OS does that at times, including the main Windows OSes. That's just how they are done these days. If you had a cell phone fifteen year ago, you could turn it on and dial NOW. With any of the new cell phones? Can you do a cold power up and have a functioning phone in less than 30 seconds? Uh, no. But they call that progress, because you rarely have to power them off these days.
Every OS has tradeoffs, if the WinPhone makes you happier, by all means do it.
Rred said:
I think the hardware that the WinCE (well...the shoe still fits) and Android phones are made on is essentially the same, in terms of the CPU power, the actual CPUs, the memory and the various other systems (graphics, etc.). Maybe not identical but overlapping classes and performance.
I haven't played with the new WinPhones but have noticed that every Android phone, no matter how fast and how "bare" factory, sometimes goes out to lunch. Apparently that's just the way the OS is written, it sometimes goes off to do other things internally (loading code? checking hardware states?) and you can't do anything except wait for it to come back.
But then again, almost every OS does that at times, including the main Windows OSes. That's just how they are done these days. If you had a cell phone fifteen year ago, you could turn it on and dial NOW. With any of the new cell phones? Can you do a cold power up and have a functioning phone in less than 30 seconds? Uh, no. But they call that progress, because you rarely have to power them off these days.
Every OS has tradeoffs, if the WinPhone makes you happier, by all means do it.
Click to expand...
Click to collapse
I agree with you, I do like both OS's for their own benefits, currently I do like WP7 better than Android and keeps me "happy". However if you notice; that's not my prime motive in starting this thread, I didn't come here to say one is better than the other. I just want to know why those two simple things (scrolling and pinch zooming) are not fluid on Android. You can't use the excuse that it's different hardware because Microsoft is playing that trick too. You can't use the "its busy doing other things" excuse either, while WP7 doesn't have multi-tasking, iOS does (somewhat) so it can go "do" something else but will still feel fluid. In a multi-OEM environment it is up to the OEM to optimize it for the device it runs on, which is why it baffles me that even Sense and MotoBlur and others make performance decline a bit and still has the lag. Shouldn't it be the opposite?
Nothing? So no one can tell me why Android's responsiveness (scrolling, pinch-zooming) sucks?
Luisraul924 said:
Nothing? So no one can tell me why Android's responsiveness (scrolling, pinch-zooming) sucks?
Click to expand...
Click to collapse
The answer is quite simple (and the above replies are miles off the mark). Hardware acceleration.
WP7 has it, Android doesn't.
FloatingFatMan said:
The answer is quite simple (and the above replies are miles off the mark). Hardware acceleration.
WP7 has it, Android doesn't.
Click to expand...
Click to collapse
So the hardware acceleration runs throughout the entire OS? I thought it was mainly just the XNA and Silverlight stuff that was accelerated (I do believe those are different than native OS code, as Microsoft isnt allowing developers to write apps with native code. Future compatibility issues I guess)
Of course it's the entire OS. Why do you think MS's minimum spec stipulations are so high? This is what Windows Mobile was so plagued with, and how MS fixed that problem.
Luis-
"So the hardware acceleration runs throughout the entire OS?"
It isn't so much that the hardware acceleration runs in the OS, but that the hardware itself has certain routines built into it, on the firmware level, so the OS can just call those routines instead of trying to calculate them.
To oversimplify a bit, for instance, a hardware accelerator for "zoom in" might be programmed into the video chip system to automatically tell it "take the 50 pixels around this spot and blow up up to 250 pixels, refresh screen" where the OS would be saying "OK, let's take this spot, draw a square with a 50 pixel radius around it, now let's take each of those pixels and transpose it over twice the radius and go fill..." sending a long slow string of commands, each computed by the CPU.
When the CPU can offload all of that into a simple "zoom" command to the video chip, the CPU is now free to do other things. Like, respond to your next input, or push the next menu onto the display.
When you have ironclad control over the hardware--it can be a great way to make systems faster. And more stable.
Rred said:
Luis-
"So the hardware acceleration runs throughout the entire OS?"
It isn't so much that the hardware acceleration runs in the OS, but that the hardware itself has certain routines built into it, on the firmware level, so the OS can just call those routines instead of trying to calculate them.
To oversimplify a bit, for instance, a hardware accelerator for "zoom in" might be programmed into the video chip system to automatically tell it "take the 50 pixels around this spot and blow up up to 250 pixels, refresh screen" where the OS would be saying "OK, let's take this spot, draw a square with a 50 pixel radius around it, now let's take each of those pixels and transpose it over twice the radius and go fill..." sending a long slow string of commands, each computed by the CPU.
When the CPU can offload all of that into a simple "zoom" command to the video chip, the CPU is now free to do other things. Like, respond to your next input, or push the next menu onto the display.
When you have ironclad control over the hardware--it can be a great way to make systems faster. And more stable.
Click to expand...
Click to collapse
Great answer. Makes sense, thanks. Now given that this is an Android section lets talk more on that, will it ever be possible to have hardware acceleration on Android, Whether it be through custom ROMs or OEM devices?
"will it ever be possible to have hardware acceleration on Android,"
Possible? Sure, I've seen pigs on the wing.<G> Don't hold your breath for it though. Android is an unruly place where even ordinary hardware is often not supported by the OS and software breaks on every new phone. In order for hardware acceleration to work, the OS needs to have routines and drivers for standard hardware, which means locking down a hardware spec. Which is so very Undroid.
Can't see that happening, unless ten year from now someone invents a "standard universal Android cell phone chipset" and all the manufacturers get paid to exclusively use it. That's the ticket--use our chipset, we'll pay you to use it, and oh, yes, it will play one of "our" ads every time your screen turns on. Or you launch a new app. Or place a call.
(See? Things could get worse!<G>)
Here's an interesting discussion...
http://code.google.com/p/android/issues/detail?id=6914
burtcom said:
Here's an interesting discussion...
http://code.google.com/p/android/issues/detail?id=6914
Click to expand...
Click to collapse
Well as far as I read, it was just a bunch of "me too" and "I agree" lol I got bored reading that I still dont think Google has an official statement on the matter do they?

HDMI extended desktop/dual screen - beyond mirroring

Hello,
I'm desperately looking for a way to achieve an extended desktop on Android devices with TV-Out that almost resembles the extended desktop/dual screen experience known from traditional OS on laptops with an attached display.
In the end I want to be able to write Android programs that can decide whether a certain view shows on the mobile screen or on the second display, just like it is possible on the iPhone. This would allow apps to embrace both displays for unique interaction. Equally, by attaching a pico-projector, there can be private information handled on the display and public information on the projector.
What I know so far (please correct me on any false information):
There is analog TV-Out like on the Galaxy S, where mirroring the android screen to the attached display seems to be hardwired in the GPU, therefore not being an option.
Then we recently got HDMI-out on Android devices like on the LG Optimus Speed (2x), Samsung Galaxy S2 which mostly just mirror the mobile screen when attached to an HDMI display (except for HD video output).
And finally there are two devices from Motorola, the Atrix 4G with its Webtop application and the Droid X2 supporting Motorolas Dual Screen API.
The Atrix 4G uses a separate X11 server that knows of the mobile LCD Screen and the HDMI display (xorg.conf) and therefore can show two different desktops at the same time. Furthermore it shows a VNC-like view of the Android OS and its window manager. However, the environment is not Android anymore but embedded linux (Jaunty), therefore it would not be possible to write Android applications spawning multiple displays for this.
The Dual Screen API from Motorola supported on the Droid X2 allows exactly what I'm looking for, at least by means of OpenGL/EGL contexts. That's similar to what could be used as hidden API on iPhone prior to iOS 4 to enable an extended desktop (two separate views).
My Problem:
First the Droid X2 is not available in Europe (yet) and I already have an Optimus 2x and a Galaxy S2. I consider also buying a Motorola Atrix. All these have HDMI. Knowing all threads on hacking Webtop and HDMI mirroring, what would be the right way to go to achieve something similar to a Dual Screen API on other devices than the Droid X2?
Second, what would be the best way to integrate the second display with Android's Window Management that one could write something similar to
Code:
windowParams.output = WindowParams.HDMI;
updateWindowParams(window, windowParams);
Unfortunately, I don't have much knowledge about Android Window Management behind the scenes. I would be glad if anyone could shed some light on Android Window Management in the context of HDMI output.
ANY help or discussion GREATLY appreciated.
Chris
Is there really nobody out there with an answer to my first post on XDA-D?
I've found this https://groups.google.com/forum/#!topic/android-developers/Jxp_9ZtzL60
I have HTC Sensation and stock apps are able to do separate output. So there might be vendor specific apis...
Thx for your answer.
One of these APIs I learned recently about is the HDMI Dual Screen API by Motorola. Three of their Android devices already support it.
http:⁄⁄developer.motorola.com/docstools/library/motorola-hdmi-dual-screen-api/
Hi,
I've found this code by decompiling htc video player in Sensation rom:
Code:
import android.os.IDisplayService;
import android.os.IDisplayService.Stub;
import android.os.ServiceManager;
.....
IDisplayService localIDisplayService;
try
{
localIDisplayService = IDisplayService.Stub.asInterface(ServiceManager.getService("display"));
boolean bool1 = localIDisplayService.IsHDMIConnected();
boolean bool2 = localIDisplayService.IsHDMIEnable();
...
But! android.os.IDisplayService does not exists in android api and i was not able to find any jar which contains it.
Hello,
I am looking for something similar but for tablets and I have been with the same problem.
Some progress in the solution?
Thanks!
Try the iDisplay app. Maybe it is what you are looking for. ...it does mirroring to your cpu.
Sent from my PG86100 using XDA App
Dual Display API Deprecated
The Motorola dual display API is no longer supported past Gingerbread. There doesn't appear to be anything to replace it.
I'm also interested in the development of this feature. I own a GT-N8010 and would love to use the s pen combined with presentation of slides. Did you have any progress in your search?
???
Any news on this subject?
Is extendind android desktop to tv via hdmi possible?

what additional sensors could a super phone have?

Since the nexus s is googles flagship/developer product, shouldnt it have "everything"? that way programmers could test everything with it.
I wouldnt mind if the phone would be a bit fatter, if they added more cool
features.
Something that comes to mind immediately is Infrared to make it a universal
remote controller (and compete with the logitech harmony for example).
Also sensors, couldnt it also have a pressure sensor (crowdsource weather?)
etc etc...
So my question is, what additional sensors/hardware features could possibly
be added to make it the most complete super phoone? (not taking into
account size or battery).
Just curious.
-gk

A New Attempt At The Mesuit Case (Android running on an iPhone via a Case) [Requesting Help, Advice, and Thoughts]

Back in 2016, the first and only Android Case for iPhone was Launched. With all of the other android phone cases failing to fulfill their backer promises and with Mesuit Android Smart phone case not only being China-exclusive, not having the ability to unlock apps, and running very old software and hardware, I figured this would be the best place to start for gathering a team of like-minded people who would like to work on a project like this. What I want to do differently/ keep from their implementations.
No Crowdfunding - Unless the product is finished and just needs the order placed
Sacrifice Bulk to remove the bottom triangle from the Mesuit design.
Upgrade the internals. I want to use a Mediatek or Snapdragon processor with relatively low battery consumption such as the Snapdragon 770 to power this.
Stock Android with Slight Modifications
Maintain the android interface and communication through an App, with the Camera, GPS, Cellular (1) relying on the iPhone. while having a second sim for extra functionality.
Initial Plan for implementation -
1. Find a Manufacturer willing to provide a premade android PCB design
2. Work on the software to implement the hardware elements to communicate with the iPhone app i.e. Share Digitizer input and Screen Output, while sharing the camera, GPS, etc...
3. Integrate existing PCB design to a prototype iPhone case and refine from there
Please let me know any thoughts, roadblocks you may think exist, or if you are interested!

Categories

Resources