Related
Anyone know if CE6 can run on the wizard and if so where can we get a rom for it?
dragonedge said:
Anyone know if CE6 can run on the wizard and if so where can we get a rom for it?
Click to expand...
Click to collapse
Is this crossbow what u r talking about ?
M$ has Launched Windows CE6 Today, I was wondering if anyone has got their hands on it and been able to play around with device compatibility.
Here's a link to the article:
http://msmobiles.com/news.php/5716.html
And here's a link to the trial:
http://www.microsoft.com/windows/embedded/eval/trial.mspx
Thanks for the links. I'm going to download now
dragonedge,
Please post your results, I would be very interested to know if it will run on my wizard.
Thanks,
Clay
dude...
1) you cross posted
2) again, this is released to the manufactuers, it'll be at LEAST 4 to 6 months before we even hear of a device testing this OS
3) what you posted is an evaluation environment for Visual Studio... lol. You're not going to get your hands on something like that that easily.
Windows Embedded CE 6.0 (plug-in for Visual Studio 2005)
Click to expand...
Click to collapse
awwww too bad but shouldn't you be able to create some type of Rom with this? Or is this literally just a developer tool released for a software that hasn't been released or won't be for a long time?
Overview
Windows® Embedded CE 6.0 is a componentized operating system designed from the ground up to power small footprint devices and help developers get them to market fast. Choosing from a wide variety of technology components and pre-existing templates, you can quickly build hard real-time commercial and consumer electronics devices, such as:
Set-top boxes
Thin clients
Digital media adapters
Voice-over-IP (VoIP) phones
Navigation devices
Medical devices
Portable media players
Home gateways
Digital cameras
Networked digital televisions
PDAs
Features
Along with its portfolio of hundreds of carefully tested, easily selectable OS components, Windows Embedded CE 6.0 includes innovative features designed to help promote performance, security, compatibility, and flexibility.
Robust Architecture
Unified Kernel. The redesigned Windows Embedded CE 6.0 kernel now handles more than 32,000 simultaneous processes, each with 2 GB of virtual memory space. The new file system supports larger storage media and file sizes (up to 4 GB), and removable media encryption.
Drivers. Production-quality device drivers help decrease the amount of modification needed for drivers to work with custom hardware, and enhanced driver support in CE 6.0 helps ensure easy portability. Drivers can be run in kernel mode for performance or in user mode for robustness.
Security. The redesigned one-tier security model is SDL compliant and helps ensure that only trusted applications can run on your embedded device.
Compatibility. CE 6.0 works with key processor architectures (x86, ARM, SH4, and MIPS) and, through its compatibility testing tool, has features to help port existing Win32 applications.
Device Performance. Improvements to the kernel architecture have greatly reduced the overhead of system calls between base OS services, resulting in improved operating system performance.
New Media and Communication Components
Windows Embedded CE 6.0 opens up new opportunities to develop compelling products for home and business.
Network Media Devices. You now have the ability to build networked media devices that can consume pictures, videos, and music from a Windows PC via a home network.
Digital Video Recorders. The DVR engine in CE 6.0 empowers you to build devices that can record multiple video streams to a hard drive for later playback
Cellular Networks. The new Cellcore components help enable your CE 6.0 powered devices to easily make data connections and initiate voice calls through cellular networks.
Windows Network Projectors. Users can now connect their Windows Vista™ laptop to a CE 6.0-based projector wirelessly or over any IP network.
Powerful Development Environment
By adding Platform Builder to Visual Studio 2005, Windows Embedded CE 6.0 helps deliver a superior unified embedded developer experience. Developers can now use one common familiar environment to develop both application and operating system software. Development advantages include:
Visual Studio 2005. Platform Builder for Windows Embedded CE 6.0 has been created as a plug-in for Visual Studio 2005 and is customized for developing embedded operating systems and components.
Application Development Options. You can go native or managed by choosing your preferred Microsoft development technology—Win32, MFC, or the .NET Compact Framework (C#, VB).
Device Emulation. The new ARM-based device emulator included with Platform Builder makes it easy to configure, build, and test operating system images.
Editors. Coding and building are faster. Windows Embedded CE 6.0 editors now incorporate Intellisense technology, syntax highlighting, and graphical bib and registry file editors.
Improved Compilers. Based on Visual Studio 2005, the latest compilers increase C++ language conformance; provide better libraries; support CRT, ATL, and MFC; and offer improved run-time security checks (/GS).
Source Code Access. Access to CE 6.0 source code helps developers debug, test, and make changes to an OS image. It also allows you to modify the operating system software to create differentiated features while maintaining control over your intellectual property.
Price
Development Tools: $995.00 USD
Runtime License Cost: (per runtime shipped):
$3.00 USD for Core SKU*
(The Core SKU is a subset of the Windows Embedded CE Core operating system features.)
$16.00 USD for Professional SKU*
(The Professional SKU is a higher-end license that is ideal for devices that require rich multimedia and graphics.)
* Run-time pricing is based on purchase volume of one unit (except Windows CE Core based on 1000 units). Volume discounts are available. Local taxes, tariffs and other costs may apply. Contact a Windows Embedded Authorized Distributor for details.
A complete list of the components included in Windows Embedded CE Core and Windows Embedded CE Pro is available at the Microsoft Download Center.
Details on each component are available at the MSDN Library.
For complete pricing and licensing information, please contact a Microsoft Windows Embedded Authorized Distributor.
In conclusion, this is for manufacturers/developers only. It is of no use to us.
Sounds this is just for developers
Hi,
I am thinking about the sense behind UPX for mobile devices.
From what I understand about the mechanism in WM5/6, the following should be correct. I post this not as fact, but as my personal thesis on the effects of UPX, so please correct me if I am wrong.
The devices have a small pagepool, and rely on discarding and reloading of code segments.
So, the operating system needs to "forget" parts of a loaded executable if the place in the pagepool is small, and reload these parts if they are to be executed again. With UPX, this could be a real pain as these parts of the file are not stored in the rom in their real-time-executable form, but need some "decompression". So the device is either not able to discard parts of upxed files, resulting in less pagepool-space for other files, or needs to expand them at reloadtime, resulting in a lot of cpu-load as parts of large executables may need to be expanded several times over the execution span of a program.
Has anyone measured the effects of the use of a lot of UPX-ed executables in a device? I would be very interested in the effect upxing has on modules.
Regards,
TG.
I'm trying to understand the difference between a rom and a kernel. I read a post a while back that explained it but I forgot the answer and can't find it with search.
Am I understanding this? A kernel is like under the hood, ie the engine. The rom is how it looks and feels. Like putting a 400ci engine in a corvette or put the same engine into a impala. Kinda sorta same engine but different car. The corvette is built for speed and the impala is more for cruising and a lot heavier a car. Do I have this all wrong?
A ROM is a complete collection of the operating system (containing the kernel), support software, libraries, drivers, and any additional software. It's like a disk image, except that it is written to a device's flash memory.
A kernel is the operating system's core. It is what allows an operating system to provide core hardware services to software programs. Without this, software would need to be compiled for boostrapping and direct machine execution, and thus only one program could literally run at the same time. A kernel has hardware support as well as management for the CPU stacks and contexts, allowing multiple software components to operate concurrently. Modifying a kernel can often allow the modder to incorporate new features in terms of core driver support, the management of software, and other features. Primarily, it will be about driver/hardware support.
u got it right... its something like that, but same kernel can have a different effect in different ROMs.
HTC HD2 might not be the fastest running device out there but it is undoubtedly the most popular Hardware platform vis-a-vis the no of OSes (Winmo,WP7,Android,meamo/meego(partially) and several desktop linux distros) supported. The basic aim of using one OS or the other is to optimize the utilization of system resources or in other words, to get maximum performance/usability from the given hardware in this case the HD2.Now to find the best performing custom ROM (why do we still call it a ROM, its not read only anymore )we can resort to certain benchmarks and tests to come up with the best performing ROM of a certain platform. But If I were to find out based on a certain basic parameters what is the OS that best utilises my HD2 (or any other phone for that matter) sadly I'd be at a loss. To my mind a good way of getting there would be a cross platform benchmark which could test all the platforms based on some basic parameters (suggested below) and give out the result, as to which OS performs the best on a given phone. I suggested HD2 because it can test most of the platforms supported by XDA (and I happen to own one)
Parameters
call connection delay
call Audio quality
SMS/MMS sending/recieving efficiency
UI fps
WIFI reception/connection reliability
camera/camcorder result and performance
audio/ video playback quality
RAW CPU/GPU performance
battery life for a diverse set of tasks
(the list might need expansion but these I think are the basics)
Now a seasoned dev can approach the problem in any way possible but here are my suggestions for a means to get there.
1. One option would be to base this benchmark/tests on a cross platform emulator which works on a wide variety of OSes.
2. Java is said to be platform independent so in theory it can be used.
3. Make all the tests to run in the Browser.
Another advantage of this would be that devs would know the limits of a particular hardware and can develop accordingly. As an example, when devs found out that the HD2 can capture 720p video on WP7 they started porting this ability to android as well.
Need expert and non expert opinion on the practicality of this.
s8isfi said:
HTC HD2 might not be the fastest running device out there but it is undoubtedly the most popular Hardware platform vis-a-vis the no of OSes (Winmo,WP7,Android,meamo/meego(partially) and several desktop linux distros) supported. The basic aim of using one OS or the other is to optimize the utilization of system resources or in other words, to get maximum performance/usability from the given hardware in this case the HD2.Now to find the best performing custom ROM (why do we still call it a ROM, its not read only anymore )we can resort to certain benchmarks and tests to come up with the best performing ROM of a certain platform. But If I were to find out based on a certain basic parameters what is the OS that best utilises my HD2 (or any other phone for that matter) sadly I'd be at a loss. To my mind a good way of getting there would be a cross platform benchmark which could test all the platforms based on some basic parameters (suggested below) and give out the result, as to which OS performs the best on a given phone. I suggested HD2 because it can test most of the platforms supported by XDA (and I happen to own one)
Parameters
call connection delay
call Audio quality
SMS/MMS sending/recieving efficiency
UI fps
WIFI reception/connection reliability
camera/camcorder result and performance
audio/ video playback quality
RAW CPU/GPU performance
battery life for a diverse set of tasks
(the list might need expansion but these I think are the basics)
Now a seasoned dev can approach the problem in any way possible but here are my suggestions for a means to get there.
1. One option would be to base this benchmark/tests on a cross platform emulator which works on a wide variety of OSes.
2. Java is said to be platform independent so in theory it can be used.
3. Make all the tests to run in the Browser.
Another advantage of this would be that devs would know the limits of a particular hardware and can develop accordingly. As an example, when devs found out that the HD2 can capture 720p video on WP7 they started porting this ability to android as well.
Need expert and non expert opinion on the practicality of this.
Click to expand...
Click to collapse
This idea has quite a few major flaws,
1) All platforms are designed a certain way (atleast in embedded systems where resources are scarce) and hence even though one platform might outperform the other, it might not have the features necessary or required by the user, ie. I "LOVE" WP7, the UI is fluid and the design is awesome, it works wonderfully however it being a recent addition to the market means that there aren't many apps and also due to the restrictive nature of wp which forces me to either dualboot or stay with android, Dualbooting has it's own flaws as battery is still very bad in sd android and WP7 so that leaves me no choice but to either go to WM6.5 or Android since the Linux Distros aren't targeted for a phone, even though they might work, there are flaws such as having to open terminal and executing scripts for smallest of the work like switching bluetooth on/off, and absence of audio even after ALSA modules for evo based msm kernel were out.
2) Raw performance means nothing, you aren't going to crunch numbers or perform scientific calculations on your phone, it doesn't matter if it's of no use, what you should be looking for instead is "Productivity"
3) Windows Mobile was an awesome platform with countless apps and functionality but it was just too old for the market, ie. Look at the difference in UI of WP7/Android to WM6.5
4) Java is NOT platform independent, it is just ported to enough places that the code you write will work on most of the machines, ie. Try executing java code on windows phone, also it is not the same libraries of java used through out, microsoft uses their inhouse developed java version while android interprets java code into dalvik byte code before execution, Linux favors opensource libraries which are known to be much slower than the ones provided by Sun. Neither is the browser same in all, you also have choice of browsers in platforms themselves and all of them are generally specialized for different tasks such as firefox for android can run html5 code and is said to be the most compliant browser but is way slower than the stock one or the Dolphin HD where as the stock browser or Dolphin are incapable of CSS3 transitions and most of the html5 content.
*you cannot measure "fps" in UI, everything is not rendered the way you are thinking it is, try switching on forced screen refresh through development tools on an android phone and see, most of the time you'll notice that most of the parts on the screen remain static and it's only the new components that are blit over the older parts in framebuffer.
There are a few more flaws but since i'm running out of time, ill stop here.
As for me, nand android (cyanogenmod nightlies) are the best, Doesn't lag in normal use, enough eye candy, good enough battery life and is quite stable and soon with the new DSP code we will have 720p recording on Android too.
Thanks for the detailed reply. What I understand is that there is way too much diversification for a the same code to run.
HI, I saw some apps on play store and WP market. I found that many apps on WP are smaller in size as compared to the same app on Android.
Examples:
Official Twitter app: By Twitter
Android : 6 MB
WP : 2 MB
Facebook app:
Android (official) : 13 MB
WP ( by Microsoft) : 4 MB
LinkedIn app (Official)
Android : 5MB
WP : < 1 MB
NY Times (Official)
Android : 2.3 MB
WP : 1 MB
Whatsapp : By Whatsapp
Android : 8 MB
WP : < 1 MB
Foursquare (Official)
Android: 10MB
WP: 5 MB
Angry Birds Star Wars
Android: 38 MB
WP : 20 MB
Angry Birds Space
Android : 36 MB
WP : 15 MB
Anyone viewing this thread, please post apps sizes if you also find same thing for any other app.
So, how do will explain this small app sizes on WP compared to Android.
Is WP OS more CODE efficient than Android
Does this efficiency contribute to smoothness of apps. Please share your thoughts.
As a developer, I can say for certain several things
1) Yes, the OS is way, way more "code efficient" than Android
2) The code is downloaded and compiled only once. I will not get into details as to why this is happening, but on Android, as far as I am aware, JIT occurs everytime you run the application.
Also, Visual Studio is able to create far smaller binaries when compared to Eclipse.
Bytecode(android+eclipse) tends to produce really large "binaries" while the IL(WP+VS) tends to create very effective "binaries".
My game, which contains around 100 graphical assets only eats around 5.53 MB of space. So yes, C#/C++/VB handle assets and binary size better than Java.
There's been some talk lately about porting Android to use C# instead of Java. Some tests were done as far as performance is concerned. Really interesting results
http://www.cnx-software.com/2012/05...-massive-performance-improvement-over-dalvik/
http://www.koushikdutta.com/2009/01/dalvik-vs-mono.html
Then there is also the problem of hardware variety. Windows Phone basically runs on the same chipsets and only has a few supported resolutions, whereas on Android, there are great many chipsets, each with their own sets of hardware assets and many possible resolutions. Developers need to write more code to make sure their apps work fine on as many phones as possible.
mcosmin222 said:
As a developer, I can say for certain several things
1) Yes, the OS is way, way more "code efficient" than Android
2) The code is downloaded and compiled only once. I will not get into details as to why this is happening, but on Android, as far as I am aware, JIT occurs everytime you run the application.
Also, Visual Studio is able to create far smaller binaries when compared to Eclipse.
Bytecode(android+eclipse) tends to produce really large "binaries" while the IL(WP+VS) tends to create very effective "binaries".
My game, which contains around 100 graphical assets only eats around 5.53 MB of space. So yes, C#/C++/VB handle assets and binary size better than Java.
There's been some talk lately about porting Android to use C# instead of Java. Some tests were done as far as performance is concerned. Really interesting results
http://www.cnx-software.com/2012/05...-massive-performance-improvement-over-dalvik/
http://www.koushikdutta.com/2009/01/dalvik-vs-mono.html
Then there is also the problem of hardware variety. Windows Phone basically runs on the same chipsets and only has a few supported resolutions, whereas on Android, there are great many chipsets, each with their own sets of hardware assets and many possible resolutions. Developers need to write more code to make sure their apps work fine on as many phones as possible.
Click to expand...
Click to collapse
Oh boy. Where to start.
Firstly, the WP OS is not more efficient than Android. Android consists of Java in the form of the Davlik virtual machine running on linux. In no way is this less efficient than C# running on the WP8 virtual machine on the NT kernel.
Bytecode is not Android + eclipse. Eclipse is an IDE, like visual studio. Bytecode is the compiled output from the Java compiler in the form of .class files. You can use any IDE (or none) to develop Android applications.
The size of a binary bears very little relation to it's efficiency. It all depends on the environment it runs under. For example, a single API call may, in one environment, relate to, say, 20 calls into some framework that is bundled with the app - therefore making the binary bigger. In another environment the single call may result in a single call into a function provided by the virtual machine. The end result is that roughly the same amount of code is executed. Also, part of the reason why Android binaries are larger is because they contained a cached version of the app for quicker startup.
Besides code, a binary may contain other artefacts, like graphic files or different resolutions, which will make the binary bigger.
The idea of using C# on android is absurd. C# is not supported on Linux (by Microsoft). There is, however, the mono open source version of C# (always guaranteed to be out of date) but the android libraries provided by Google are written in Java and there is no way they will use a proprietary language, like C#, as it will require the use of Microsoft technologies to run and that means they will have to pay Microsoft a license fee.
Why on earth would the leader in smartphone abandon their existing technologies to adopt one that will require a complete redevelopment of Android and, in addition, pay a license fee to Microsoft? Answer == they won't. Ever.
Dr.Paul said:
Oh boy. Where to start.
Firstly, the WP OS is not more efficient than Android. Android consists of Java in the form of the Davlik virtual machine running on linux. In no way is this less efficient than C# running on the WP8 virtual machine on the NT kernel.
Bytecode is not Android + eclipse. Eclipse is an IDE, like visual studio. Bytecode is the compiled output from the Java compiler in the form of .class files. You can use any IDE (or none) to develop Android applications.
The size of a binary bears very little relation to it's efficiency. It all depends on the environment it runs under. For example, a single API call may, in one environment, relate to, say, 20 calls into some framework that is bundled with the app - therefore making the binary bigger. In another environment the single call may result in a single call into a function provided by the virtual machine. The end result is that roughly the same amount of code is executed. Also, part of the reason why Android binaries are larger is because they contained a cached version of the app for quicker startup.
Besides code, a binary may contain other artefacts, like graphic files or different resolutions, which will make the binary bigger.
The idea of using C# on android is absurd. C# is not supported on Linux (by Microsoft). There is, however, the mono open source version of C# (always guaranteed to be out of date) but the android libraries provided by Google are written in Java and there is no way they will use a proprietary language, like C#, as it will require the use of Microsoft technologies to run and that means they will have to pay Microsoft a license fee.
Why on earth would the leader in smartphone abandon their existing technologies to adopt one that will require a complete redevelopment of Android and, in addition, pay a license fee to Microsoft? Answer == they won't. Ever.
Click to expand...
Click to collapse
Uhh...
Where do I start?
I know bytecode is NOT android+eclipse, I only mentioned the IDE and System, just as IL si not visual studio.
The size of the binary is influenced by how good the compiler is. Although it is not the only the only thing to take into consideration, the compiler does have a role in this.
C# on Linux/Android/Mac/iOS IS supported by Microsoft under the community promise license, so everybody can port C# and .NET to any system as long as they don't use this on windows, WITHOUT having to pay Microsoft anything... I suggest you get some documentation on what Mono and Dalvik are.
C# is just as open source as C on any platform apart from Windows.
As a matter of fact, porting Android to C# would benefit the platform greatly, as google has some issues with Oracle regarding the usage of Dalvik and Java on Android.
Oh, did I mention android has to code MORE due to variety of code...hmm...
No. You cannot judge the efficency of the compiler based on the resultant code size unless you are comparing like for like. You cannot compare two languages running on two different platforms like this and come to the conclusion that because the bytecode is smaller it must be more efficient.
I expect you are too young to remember the CISC vs. RISC debate some 20 or so years ago. RISC processors generated far more instructions than a CISC processors to perform the same operation, and hence had far larger binaries. However, RISC machines were far faster. So the complete opposite of what you are saying.
Different compilers may well generate different size binary files if one were to compare compilers compiling the same language. But again this does not mean the code in the smaller file will run quicker. Indeed it may actually run slower.
Code size is no indicator of efficiency.
As far as c sharp is concerned, only the language is free to use. None of the frameworks are. And Microsoft do not provide a c sharp compiler on any system besides windows.
There is not a chance in hell that Google will adopt it. If they were to change from java they will either use one of the languages they have developed or develop something new
I used the appropriate quotation marks when writing "code efficient", as it is a very broad term and comparisons over who is code efficient and who is not.
The way I understand it, a code efficient system is a system that has very high performance, such as windows phone, not that it has anything to do with size of binaries, but the OP asked if WP is a "code efficient" system, so i answered xD
.Net framework is also free to reverse engineer. You still have to pay for compilers however.
Interesting sidebit: in internal Google E-Mails that got published during the Oracle vs. Google trial over Java it was actually mentioned that using C# instead of Java would have been an option due to the fact that there are less licensing hassles attached to it's core library (which actually is standardized with ECMA) as compared to Java. They decided not to go that route as it would have taken a year to adapt Android and instead risk getting sued by Sun (which was later acquired by Oracle). So: yes, C# would have been just as good an option. Using something like Google Go wouldn't have simply because there was no developer community and it's a lot easier to get people working on your platform if they don't have to learn a new language first.
That aside: most likely the binary size isn't all that much relevant for how big the downloaded files are. And I won't even go into the fact that some of those Apps aren't written in Java on Android but use the NDK (at least Facebook and the Angry Birds games do on Android, most likeley the later do it on WP8 too).
So in the end it's most likely down to the embedded Audio and Graphics resources. As was already mentioned Android devices have to support a lot more resolutions which makes it likely that LowRes graphics are included as well to not tax slower devices with high-res graphics for no reason (given that you won't see the difference on LowRes displays). Another reason for this with regular Apps is that WP takes a chromeless-design-approach so you rarely have graphics included that serve as UI chrome.
Another reason might be that Microsoft put quite some effort into driving home the point that resources should not be included or used in a higher resolution than what they are intended to be displayed at. The reason was that it might have led to troubles with the memory-constrained Tango-devices which only have 256 MB of RAM. At least for high-profile developers that work together with Microsoft it's likely that those optimized their Apps for it.
Lastly and also already mentioned: third party libraries. Historically Microsoft has always packed a lot of functionality directly into it's system frameworks. So it's entirely possible that WP devs use third party libraries less often. Case in point: database functionality: many Android Apps use SQLite and include their own binaries for it. WP provides SQLServer CE which can simply be used by any App that needs it. This might change though as for W8/WP8-cross platform Apps Microsoft themselves suggest including SQLite given that there is no SQL CE Support for WinRT-Apps.
And for the finishing lines something on compilers and code size. Intels C++ compilers regularly produce bigger binaries because of optimization techniques like loop unrolling, etc. They also normally outperform competing compilers in performance benchmarks. But it's not that easy if you look not at a single App's performance but at the whole system. Having an App take up more memory means that other Apps will have to be terminated sooner to avoid an out-of-memory scenario and it is more taxing on the memory controller, which depending on the chipset used might lead to additional performance problems down the road (the Nvidia Tegra 3 is said to be severely limited by its memory controller). But especially with Managed Code like C# or Java the code size of the IL does not really mean too much in that regard as the code is compiled anyway before being executed. So the memory actually taken up during execution is a lot different from what gets downloaded.
A more interesting comparison though would be wether the WP8 compiled XAPs are smaller than their WP7 counterparts, given that WP8 does precompile the IL in the cloud. Might be interesting to see which of those is smaller.
Just did some comparisons on size of binaries between 7.5 and 8
1) XAP compiled for 7.5 is 5.53 MB
2) XAP compiled for 8 is 5.76 MB
Seems the 8 version is actually bigger, although not by much.
I love this thread!
Sent from my RaZr on MIUI.
I know about the comparison between Android and Windows Phone 8 from users who have made the switch.