Editing Documentation/Maemo 5 Developer Guide/Development Environment/Maemo SDK

Warning: You are not logged in. Your IP address will be recorded in this page's edit history.

Warning: This page is 33 kilobytes long; some browsers may have problems editing pages approaching or longer than 32kb. Please consider breaking the page into smaller sections.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 13: Line 13:
== Maemo Software Development Kit ==
== Maemo Software Development Kit ==
-
The Maemo SDK creates a sandboxed Maemo development environment on a GNU/Linux desktop system largely built on a tool called [http://scratchbox.org/ Scratchbox]. In most ways, this environment behaves like the operating system on the device, but with added development tools. This means that the development process is very similar to a normal desktop GNU/Linux, and the links of embedded development, such as cross-compiling, are handled transparently by Scratchbox.
+
The Maemo SDK creates a sandboxed Maemo development environment on a GNU/Linux desktop system largely built on a tool called [http://scratchbox.org/ Scratchbox]. In most ways, this environment behaves like the operating system on the device, but with added development tools. This means that the development process is very similar to a normal desktop GNU/Linux, and the kinks of embedded development, such as cross-compiling, are handled transparently by Scratchbox.
=== Hardware architectures ===
=== Hardware architectures ===
Line 184: Line 184:
N.B. The <code>linux-gate.so.1</code> library is a so-called hack to support a certain way of doing system calls on the X86 architecture, and is not always present on newer systems.
N.B. The <code>linux-gate.so.1</code> library is a so-called hack to support a certain way of doing system calls on the X86 architecture, and is not always present on newer systems.
-
When comparing the version of libc used on the real system with <code>ls -l</code>, it will probably show a difference (in version numbers). This means that the executables that were built inside Scratchbox use libraries that are also inside Scratchbox. This also means we have a stable development platform, which is very important, especially when working on a team where each member has their own Linux installation which they may or may not have customized. This might not seem very important at this stage, but when encountering all the different tools that are used in free software development, this feature of Scratchbox will come in handy.
+
When comparing the version of libc used on the real system with <ocde>ls -l</code>, it will probably show a difference (in version numbers). This means that the executables that were built inside Scratchbox use libraries that are also inside Scratchbox. This also means we have a stable development platform, which is very important, especially when working on a team where each member has their own Linux installation which they may or may not have customized. This might not seem very important at this stage, but when encountering all the different tools that are used in free software development, this feature of Scratchbox will come in handy.
Scratchbox does not contain any logic to emulate the kernel (or to use a different kernel for running programs inside Scratchbox). The only easy possibility for this is using the sbrsh CPU-transparency option.  
Scratchbox does not contain any logic to emulate the kernel (or to use a different kernel for running programs inside Scratchbox). The only easy possibility for this is using the sbrsh CPU-transparency option.  
Line 442: Line 442:
  [sbox-FREMANTLE_X86: ~] &gt; ./gtk_helloworld-1
  [sbox-FREMANTLE_X86: ~] &gt; ./gtk_helloworld-1
  main: calling gtk_main
  main: calling gtk_main
-
  [Ctrl+c]
+
  [[Ctrl+c]]
Use Ctrl+C to terminate the program because it does not implement any graphical methods for closing.  
Use Ctrl+C to terminate the program because it does not implement any graphical methods for closing.  
Line 462: Line 462:
The start and stop parameters are used to start and stop the graphical environment. If everything works, it should show a screen resembling this one:
The start and stop parameters are used to start and stop the graphical environment. If everything works, it should show a screen resembling this one:
-
[[Image:UI-startup.png|frame|center|alt=Screenshot of SDK user interface|SDK UI]]
+
 
 +
[[Image:UI-startup.png|400px]]
=== Running Hello World in Application Framework ===
=== Running Hello World in Application Framework ===
Line 470: Line 471:
[sbox-FREMANTLE_X86: ~] >./gtk_helloworld-1
[sbox-FREMANTLE_X86: ~] >./gtk_helloworld-1
-
[[Image:helloworld-without-theme.png|frame|center|alt=Screenshot of test application showing ‘Hello World!’ in the centre of an unthemed window|Hello world]]
+
[[Image:helloworld-without-theme.png|400px]]
Because there now is a window manager running, the client gets much larger window to draw in. GTK+ scales the widget accordingly (there is only one widget in the program).  
Because there now is a window manager running, the client gets much larger window to draw in. GTK+ scales the widget accordingly (there is only one widget in the program).  
Line 480: Line 481:
  [sbox-FREMANTLE_X86: ~] >run-standalone.sh ./gtk_helloworld-1
  [sbox-FREMANTLE_X86: ~] >run-standalone.sh ./gtk_helloworld-1
-
[[Image:helloworld-with-theme.png|frame|center|alt=Screenshot of test application showing ‘Hello World!’ in the centre of a themed window|Themed Hello world]]
+
[[Image:helloworld-with-theme.png|400px]]
The screen is still a bit off (there are no borders around the main <code>GtkLabel</code> widget), but already looks better. The text is scaled to be more in sync with the other text sizes and the color is also in sync with the platform color (it is not gray anymore).
The screen is still a bit off (there are no borders around the main <code>GtkLabel</code> widget), but already looks better. The text is scaled to be more in sync with the other text sizes and the color is also in sync with the platform color (it is not gray anymore).
 +
[[Category:Development]]
[[Category:Documentation]]
[[Category:Documentation]]
[[Category:Fremantle]]
[[Category:Fremantle]]
[[Category:Scratchbox]]
[[Category:Scratchbox]]

Learn more about Contributing to the wiki.


Please note that all contributions to maemo.org wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see maemo.org wiki:Copyrights for details). Do not submit copyrighted work without permission!


Cancel | Editing help (opens in new window)