diff options
Diffstat (limited to 'files/de/archive/b2g_os')
51 files changed, 6766 insertions, 0 deletions
diff --git a/files/de/archive/b2g_os/anwendungsentwicklung/index.html b/files/de/archive/b2g_os/anwendungsentwicklung/index.html new file mode 100644 index 0000000000..0c09cc1103 --- /dev/null +++ b/files/de/archive/b2g_os/anwendungsentwicklung/index.html @@ -0,0 +1,12 @@ +--- +title: Firefox OS Anwendungsentwicklung +slug: Archive/B2G_OS/Anwendungsentwicklung +translation_of: Archive/B2G_OS/Firefox_OS_apps/Building_apps_for_Firefox_OS +--- +<p>Firefox OS apps sind nichts anderes als <a href="/en/Apps" title="https://developer.mozilla.org/en/Apps">Open Web apps</a>, die auf einem Smartphone mit Firefox OS installiert werden.</p> +<ul> + <li><a href="/en/Apps/Getting_Started" title="Getting started with making apps">Erste Schritte zur App Programmierung</a></li> + <li><a href="/en/Mozilla/Boot_to_Gecko/Writing_a_web_app_for_B2G" title="Writing a web app">Eine Web app für Boot2Gecko erstellen</a></li> +</ul> +<div class="note"> + <strong>Note:</strong> Firefox OS currently identifies using the same UA string as Firefox for Android, except without the "Android;" clause. For example: "Mozilla/5.0 (Mobile; rv:15.0) Gecko/15.0 Firefox/15.0a1".</div> diff --git a/files/de/archive/b2g_os/api/index.html b/files/de/archive/b2g_os/api/index.html new file mode 100644 index 0000000000..706080ff54 --- /dev/null +++ b/files/de/archive/b2g_os/api/index.html @@ -0,0 +1,156 @@ +--- +title: B2G OS APIs +slug: Archive/B2G_OS/API +tags: + - API + - B2G API + - NeedsTranslation + - TopicStub + - b2g os api's +translation_of: Archive/B2G_OS/API +--- +<p id="B2G_OS_uses_standard_Web_API's">List of B2G OS APIs </p> + +<p></p><div class="index"> +<span>A</span><ul> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/AudioChannelManager" title="The AudioChannelManager interface of the AudioChannels API includes features for managing your device's audio channels, including setting what channel's volume to affect when the volume buttons are pressed inside a particular app."><code>AudioChannelManager</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +</ul> +<span>B</span><ul> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/BluetoothAdapter" title="The BluetoothAdapter interface of the Web Bluetooth API is used to handle all the operations requested by Bluetooth networks. A Bluetooth adapter is the physical interface which is used to interact with local Bluetooth device."><code>BluetoothAdapter</code> (Firefox OS)</a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/BluetoothAdapterEvent" title="The BluetoothAdapterEvent interface of the Web Bluetooth API provides access to a BluetoothAdapter object and its address as the parameter of a adapteradded or adapterremoved event handler (see BluetoothManager.onadapteradded and BluetoothManager.onadapterremoved), when fired."><code>BluetoothAdapterEvent</code> (Firefox OS)</a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/BluetoothAttributeEvent" title="The BluetoothAttributeEvent interface of the Web Bluetooth API provides access to changed attributes and their new values as the parameter of attributechanged event handlers (including BluetoothManager.onattributechanged, BluetoothAdapter.onattributechanged, and BluetoothDevice.onattributechanged), when fired."><code>BluetoothAttributeEvent</code> (Firefox OS)</a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/BluetoothClassOfDevice" title="The BluetoothClassOfDevice interface of the Web Bluetooth API provides identifying/classification information about a given remote Bluetooth device, available at discovery stage."><code>BluetoothClassOfDevice</code> (Firefox OS)</a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/BluetoothDevice" title="The BluetoothDevice interface of the Web Bluetooth API provides information regarding a given Bluetooth device."><code>BluetoothDevice</code> (Firefox OS)</a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/BluetoothDeviceEvent" title="The BluetoothDeviceEvent interface of the Web Bluetooth API provides access to a found/paired device (BluetoothDevice) object or the address or an unpaired device as the parameter of a devicefound, devicepaired or deviceunpaired event handler (see BluetoothDiscoveryHandle.ondevicefound, BluetoothAdapter.ondevicepaired, and BluetoothAdapter.ondeviceunpaired), when fired."><code>BluetoothDeviceEvent</code> (Firefox OS)</a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/BluetoothDiscoveryHandle" title="The BluetoothDiscoveryHandle interface of the Web Bluetooth API is used to notify the current application about the discovery of a remote bluetooth device."><code>BluetoothDiscoveryHandle</code> (Firefox OS)</a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/BluetoothGatt" title="The BluetoothGatt interface of the Web Bluetooth API handles initial communications and connections with Gatt services."><code>BluetoothGatt</code> (Firefox OS)</a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/BluetoothGattCharacteristic" title="The BluetoothGattCharacteristic interface of the Web Bluetooth API represents a GATT service characteristic, which includes characteristic definition, value, properties and configuration info, and a list of descriptors that provide related information."><code>BluetoothGattCharacteristic</code> (Firefox OS)</a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/BluetoothGattCharacteristicEvent" title="The BluetoothGattCharacteristicEvent interface of the Web Bluetooth API provides access to an updated BluetoothGattCharacteristic object as the parameter of the BluetoothGatt.oncharacteristicchanged, handler, when the characteristicchanged event is fired."><code>BluetoothGattCharacteristicEvent</code> (Firefox OS)</a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/BluetoothGattDescriptor" title="The BluetoothGattDescriptor interface of the Web Bluetooth API represents a GATT descriptor, which contains related information about a characteristic value."><code>BluetoothGattDescriptor</code> (Firefox OS)</a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/BluetoothGattServer" title="The BluetoothGattServer interface of the Web Bluetooth API provides Bluetooth GATT server functionality to allow creation of Bluetooth Smart/LE services and characteristics."><code>BluetoothGattServer</code> (Firefox OS)</a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/BluetoothGattService" title="The BluetoothGattService interface of the Web Bluetooth API represents a service provided by a GATT server, including the service definition, a list of referenced services, and a list of the characteristics of this service."><code>BluetoothGattService</code> (Firefox OS)</a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/BluetoothLeDeviceEvent" title="The BluetoothLeDeviceEvent interface of the Web Bluetooth API provides access to an LE device BluetoothDevice object and its RSSI value and advertisement record, as the parameter of a devicefound event handler (see BluetoothDiscoveryHandle.ondevicefound), when fired."><code>BluetoothLeDeviceEvent</code> (Firefox OS)</a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/BluetoothManager" title="The BluetoothManager interface of the Web Bluetooth API allows to access all Bluetooth adapters available on the device. Adapters are the connection interface to connect a Bluetooth device to that device."><code>BluetoothManager</code> (Firefox OS)</a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/BluetoothPairingEvent" title="The BluetoothPairingEvent interface of the Web Bluetooth API provides access to a device's name and the BluetoothPairingHandle object required for pairing devices as the parameter of pairing-related handlers (for example including BluetoothPairingListener.ondisplaypasskeyreq and BluetoothPairingListener.onenterpincodereq), when fired."><code>BluetoothPairingEvent</code> (Firefox OS)</a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/BluetoothPairingHandle" title="The BluetoothPairingHandle interface of the Web Bluetooth API contains the functionality required for completing a device pairing operation, including passkeys, and mechanisms to reply to user-entered pin codes and confirm passkeys."><code>BluetoothPairingHandle</code> (Firefox OS)</a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/BluetoothPairingListener" title="The BluetoothPairingListener interface of the Web Bluetooth API defines event handlers triggered for different pairing operations."><code>BluetoothPairingListener</code> (Firefox OS)</a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +</ul> +<span>C</span><ul> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/CallEvent" title="The CallEvent interface of the Web Telephony API represents events related to telephone calls."><code>CallEvent</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/CameraCapabilities" title="The CameraControl.capabilities property returns a CameraCapabilities object, which describes all the camera's capabilities."><code>CameraCapabilities</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/CameraControl" title="When you use the CameraManager.getCamera() method to get a reference to a camera, you specify a callback function to be invoked on success. That function receives as a parameter a CameraControl object. You can use its methods and properties to manage and make use of the camera."><code>CameraControl</code></a></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/CameraManager" title="The CameraManager interface provides access to any cameras available on the device being used."><code>CameraManager</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/ContactManager" title="The ContactManager interface is used to access and manage the contact available on the device."><code>ContactManager</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +</ul> +<span>D</span><ul> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/DOMApplication" title="In the Open Web apps JavaScript API, an App object is a JavaScript object that represents an app that is or could be installed in the user's app repository."><code>DOMApplication</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/DOMCursor" title="A DOMCursor object represents an ongoing operation over a list of results. It is an enhanced DOMRequest that allows to iterate through a list of results asynchronously. Each time its continue() method is called, the DOMCursor tries to reach the next result in the list and calls its result's success or error accordingly."><code>DOMCursor</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/DOMRequest" title="A DOMRequest object represents an ongoing operation. It provides callbacks that are called when the operation completes, as well as a reference to the operation's result. A DOM method that initiates an ongoing operation may return a DOMRequest object that you can use to monitor the progress of that operation."><code>DOMRequest</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/DataStore" title="The DataStore interface of the Data Store API represents a retrieved set of data, and includes standard properties for accessing the store's name, owner, etc., methods for reading, modifying and syncing data, and the onchange event handler for reacting to changes to the data."><code>DataStore</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/DataStoreChangeEvent" title="The DataStoreChangeEvent interface of the Data Store API represents the event related to a record changed in the data store, i.e. this is returned once a change is made and the change event is fired (see DataStore.onchange for the handler)."><code>DataStoreChangeEvent</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/DataStoreCursor" title="The DataStoreCursor interface of the Data Store API represents a cursor that allows apps to iterate through a list of DataStoreTask objects representing the change history of the data store, for use when synchronizing the data."><code>DataStoreCursor</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/DataStoreTask" title="The DataStoreTask interface of the Data Store API represents a record changed in the data store when a DataStoreCursor is used to iterate through the data store's change history."><code>DataStoreTask</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/DeviceStorage" title="The DeviceStorage interface is used to access files on a specific storage area available on the device. A storage area is, in essence, a file system repository even if it hides the reality of the underlying file system."><code>DeviceStorage</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/DeviceStorageChangeEvent" title="The DeviceStorageChangeEvent provides information about any change made to a file inside a given storage area. It extends the Event interface."><code>DeviceStorageChangeEvent</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +</ul> + + +<span>F</span><ul> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/FMRadio" title="The WebFM API provides access to the device FM radio. This interface lets you turn the FM radio on and off and tune it to different stations. It is accessible through the navigator.mozFMRadio property."><code>FMRadio</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +</ul> + + +<span>H</span><ul> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/HTMLMediaElement" title=""><code>HTMLMediaElement</code> (Firefox OS extensions)</a></span></span></li> +</ul> + + + + + + + + +<span>M</span><ul> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/MMICall" title="The MMICall interface of the Web Telephony API represents an MMI call, allowing us to receive the result of the call."><code>MMICall</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/MozActivity" title="The MozActivity interface allows apps to delegate an activity to another app."><code>MozActivity</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/MozActivityOptions" title="The MozActivityOptions interface allows apps to declare the activity they want to create and also to access information of activities they want to handle."><code>MozActivityOptions</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/MozActivityRequestHandler" title="The MozActivityRequestHandler interface allows apps that handle activities to access and interact with the request made by a third party app that tries to delegate an activity."><code>MozActivityRequestHandler</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/MozAlarmsManager" title="The MozAlarmsManager API allows to schedule notifications or applications to be started at a specific time."><code>MozAlarmsManager</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/MozContact" title="The MozContact interface is used to describe a single contact in the device's contact database."><code>MozContact</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/MozContactChangeEvent" title="The MozContactChangeEvent interface provides information about the contact that has changed. It inherits from the Event interface."><code>MozContactChangeEvent</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/MozIccManager" title="The MozIccManager interface gives access to ICC related functionalities."><code>MozIccManager</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/MozMmsEvent" title="The DOM MozMmsEvent represents events related to WebSMS MMS messages."><code>MozMmsEvent</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/MozMmsMessage" title="The DOM MozMmsMessage object represents an MMS message and has all the information about sender, recipient, body content, attachements, and date of the message itself."><code>MozMmsMessage</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/MozMobileCFInfo" title="The MozMobileCFInfo interface defines options used to retrieve or define call forwarding settings."><code>MozMobileCFInfo</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/MozMobileCellInfo" title="The MozMobileCellInfo interface allow to access to cell location information."><code>MozMobileCellInfo</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/MozMobileConnection" title="This API is used to get information about the current mobile voice and data connection states of the device. It is accessible through navigator.mozMobileConnections, which returns an array of MozMobileConnection objects."><code>MozMobileConnection</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/MozMobileConnectionInfo" title="The MozMobileConnectionInfo interface allows to access connection information for voice or data. The navigator.mozMobileConnection uses it through its voice and data properties."><code>MozMobileConnectionInfo</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/MozMobileCCInfo" title="The MozMobileICCInfo interface allow to access access to information stored in the device's ICC card. The navigator.mozMobileConnection uses it through its iccInfo property."><code>MozMobileICCInfo</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/MozMobileMessageManager" title="Provides support for sending and managing both MMS and SMS messages on a device with WebSMS."><code>MozMobileMessageManager</code></a></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/MozMobileMessageThread" title="The DOM MozMobileMessageThread object represents a thread of messages."><code>MozMobileMessageThread</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/MozMobileNetworkInfo" title="The MozMobileNetworkInfo interface allows access to information related to the network carrier. The navigator.mozMobileConnection uses it through its voice.network and data.network properties."><code>MozMobileNetworkInfo</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/MozNDEFRecord" title="MozNDEFRecord is a data structure that implements the NFC Data Exchange Format (NDEF). It is a standard common format for NFC-related data communication between applications, NFC tags, and devices."><code>MozNDEFRecord</code></a></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/MozNFC" title="MozNFC is the top level API for operating in NFC Reader/Writer mode, NFC P2P mode and NFC Card Emulation mode."><code>MozNFC</code></a></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/MozNFCPeer" title="The NFC implementation in Gecko follows the NFC Forum specifications."><code>MozNFCPeer</code></a></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/MozNFCTag" title="MozNFCTag contains the basic functions needed to read, write, and inspect NDEF-compatible NFC Tags."><code>MozNFCTag</code></a></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/MozNetworkStats" title="The MozNetworkStats object gives access to statistics about the data usage for a given network."><code>MozNetworkStats</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/MozNetworkStatsData" title="The MozNetworkStatsData objects represent a chunk of data usage statistics."><code>MozNetworkStatsData</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/MozNetworkStatsManager" title="The MozNetworkStatsManager interface provides methods and properties to monitor data usage."><code>MozNetworkStatsManager</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/MozPowerManager" title="The MozPowerManager interface allows to explicitly control the part of the device that uses power."><code>MozPowerManager</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/MozSettingsEvent" title="The MozSettingsEvent represents a settingchange event, providing information about a change to the value of a setting on the device. It extends the DOM Event interface."><code>MozSettingsEvent</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/MozSmsEvent" title="The DOM MozSmsEvent represents events related to WebSMS text messages."><code>MozSmsEvent</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/MozSmsFilter" title="The MozSmsFilter interface provides a way to filter out MozSmsMessage or MozMmsMessage objects through the MozMobileMessageManager.getMessages() method."><code>MozSmsFilter</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/MozSmsManager" title="Provides support for sending and managing SMS messages on a device with WebSMS."><code>MozSmsManager</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span> <span title="This is an obsolete API and is no longer guaranteed to work."><i class="icon-trash"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/MozSmsMessage" title="The DOM MozSmsMessage object represents an SMS text message and has all the information about sender, recipient, body text and date of the message itself."><code>MozSmsMessage</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/MozSmsSegmentInfo" title="The DOM MozSmsSegmentInfo interface provides information about how a string of text will be automatically split into segments. Each segment represents a single SMS of a multi-part SMS message."><code>MozSmsSegmentInfo</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/MozTimeManager" title="The MozTimeManager interface is used to set the system time on a device."><code>MozTimeManager</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/MozVoicemail" title="The MozVoicemail interface allows access to the information regarding the voicemail features available through the RIL of a Firefox OS device."><code>MozVoicemail</code></a></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/MozVoicemailEvent" title="The MozVoicemailEvent API provides access to the event information when a statuschange event is triggered."><code>MozVoicemailEvent</code></a></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/MozVoicemailStatus" title="The MozVoicemailStatus API provides access to a voicemail status."><code>MozVoicemailStatus</code></a></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/MozWakeLock" title="The MozWakeLock interface of the Wake Lock API tracks a wake lock set on any resource set on the device."><code>MozWakeLock</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/MozWifiConnectionInfoEvent" title="The MozWifiConnectionInfoEvent interface provides developers with information regarding the state of the current Wifi connection."><code>MozWifiConnectionInfoEvent</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/MozWifiP2pGroupOwner" title="The MozWifiP2pGroupOwner is an interface that represents the group owner of WiFi Direct connection."><code>MozWifiP2pGroupOwner</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/MozWifiP2pManager" title="The MozWifiP2pManager is an interface that allows to control Wi-Fi connection with other computers using Wi-Fi Direct."><code>MozWifiP2pManager</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/MozWifiStatusChangeEvent" title="The MozWifiStatusChangeEvent interface provides developers with information regarding the current status of the Wifi connection."><code>MozWifiStatusChangeEvent</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +</ul> +<span>N</span><ul> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/Navigator" title="The Navigator interface represents the state and the identity of the user agent. It allows scripts to query it and to register themselves to carry on some activities. This page represents the list of properties and methods added to Navigator on Firefox OS devices. For the list of properties and methods available to any Web sites, consult Navigator."><code>Navigator</code> (Firefox OS extensions)</a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +</ul> + + +<span>P</span><ul> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/PermissionSettings" title="The PermissionSettings interface provides ways to let the user manage all the permissions requested by all apps on a Firefox OS device."><code>PermissionSettings</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +</ul> + + + + +<span>S</span><ul> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/SettingsLock" title="The SettingsLock interface represents a lock on settings. it allows a script to modify settings asynchronously, but in a safe way: ordering is guaranteed and the no other script will modify the settings until the modification are done (the next lock objects will start processing after it has been closed)."><code>SettingsLock</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/SettingsManager" title="Provides access to the device's settings."><code>SettingsManager</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +</ul> +<span>T</span><ul> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/TCPServerSocket" title="The TCPServerSocket interface provides an API to handle a persistent server that will listen for incoming connections on a given port."><code>TCPServerSocket</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/TCPSocket" title="The TCPSocket interface provides access to a raw TCP socket."><code>TCPSocket</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/Telephony" title="The Telephony interface of the Web Telephony API provides support for dialing, answering, and managing phone calls on a device with telephony support."><code>Telephony</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/TelephonyCall" title="The TelephonyCall interface of the Web Telephony API represents one telephone call, providing information about the call and offering mechanisms for controlling it and detecting changes to its status."><code>TelephonyCall</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/TelephonyCallGroup" title="The TelephonyCallGroup interface of the Web Telephony API represents a multi-person/conference call, providing functions to allow callers to be added and removed from the conference call, hanging up of the entire call, and more."><code>TelephonyCallGroup</code></a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +</ul> +<span>U</span><ul> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/UDPSocket" title=""><code>UDPSocket</code></a></span></span></li> +</ul> + + +<span>W</span><ul> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/WifiManager" title="The WifiManager API provides access to the wifi device capability."><code>WifiManager</code></a></span></span></li> +<li><span class="indexListRow"><span class="indexListTerm"><a href="/en-US/docs/Archive/B2G_OS/API/Window" title="The Window interface represents a window containing a DOM document. This page represents the list of properties and methods added to Window on Firefox OS devices. For the list of properties and methods available to any Web sites, consult Window."><code>Window</code> (Firefox OS extensions)</a></span><span class="indexListBadges"> <span title="This API has not been standardized."><i class="icon-warning-sign"> </i></span></span></span></li> +</ul> + + + + + + + +</div><p></p> diff --git a/files/de/archive/b2g_os/api/navigator/index.html b/files/de/archive/b2g_os/api/navigator/index.html new file mode 100644 index 0000000000..553b9dd513 --- /dev/null +++ b/files/de/archive/b2g_os/api/navigator/index.html @@ -0,0 +1,19 @@ +--- +title: Navigator (Firefox OS extensions) +slug: Archive/B2G_OS/API/Navigator +tags: + - API + - Firefox OS + - Interface + - Navigator + - Non-standard + - Reference +translation_of: Archive/B2G_OS/API/Navigator +--- +<p>{{APIRef("Firefox OS")}}{{Draft}}{{Non-standard_Header}}</p> + +<p>The <code><strong>Navigator</strong></code> interface represents the state and the identity of the user agent. It allows scripts to query it and to register themselves to carry on some activities. This page represents the list of properties and methods added to <code>Navigator</code> on Firefox OS devices. For the list of properties and methods available to any Web sites, consult <a href="/en-US/docs/Web/API/Navigator" title="The Navigator interface represents the state and the identity of the user agent. It allows scripts to query it and to register themselves to carry on some activities."><code>Navigator</code></a>.</p> + +<p>A <code>Navigator</code> object can be retrieved using the read-only <a href="/en-US/docs/Web/API/Window/navigator" title="The Window.navigator read-only property returns a reference to the Navigator object, which can be queried for information about the application running the script."><code>Window.navigator</code></a> property.</p> + +<p>{{SubpagesWithSummaries}}</p> diff --git a/files/de/archive/b2g_os/api/navigator/requestwakelock/index.html b/files/de/archive/b2g_os/api/navigator/requestwakelock/index.html new file mode 100644 index 0000000000..49d5275686 --- /dev/null +++ b/files/de/archive/b2g_os/api/navigator/requestwakelock/index.html @@ -0,0 +1,37 @@ +--- +title: Navigator.requestWakeLock() +slug: Archive/B2G_OS/API/Navigator/requestWakeLock +translation_of: Archive/B2G_OS/API/Navigator/requestWakeLock +--- +<p>{{APIRef("Wake Lock API")}}{{ non-standard_header() }}</p> + +<p>This <code><strong>Navigator.requestWakeLock()</strong></code> method of the <a href="/en-US/docs/Web/API/Wake_Lock_API">Wake Lock API</a> is used to request a {{ domxref("MozWakeLock") }} on any resource of the device. This means that you can prevent that resource from becoming unavailable as long as your app holds a lock for that resource. For example, a voice recording app can obtain a lock to keep the screen on during recording so that it can give prover visual feedback to the user that recording is progressing.</p> + +<div class="note"> +<p><strong>Note:</strong> When the window that requested one or more wake locks is closed or destroyed, any wake locks it acquired are implicitly released; no manual release is necessary.</p> +</div> + +<h2 id="Syntax" name="Syntax">Syntax</h2> + +<pre class="syntaxbox"><em>lock</em> = window.navigator.requestWakeLock(<em>resourceName</em>);</pre> + +<h3 id="Parameters">Parameters</h3> + +<dl> + <dt>resourceName</dt> + <dd>A string representing the name of the resource to lock. <a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Gaia" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Gaia">Gaia</a> uses four basic resources names: <code>screen</code>, <code>cpu</code>, <code>wifi</code>, and <a href="/en-US/docs/Web/API/Wake_Lock_API/Keeping_the_geolocation_on_when_the_application_is_invisible">gps</a>, but any certified application can expose new resources.</dd> +</dl> + +<h3 id="Value" name="Value">Return value</h3> + +<p>Returns a {{domxref("MozWakeLock")}} object you can use to keep track of or release the lock..</p> + +<h2 id="Specification" name="Specification">Specification</h2> + +<p>W3C tracks <a href="https://www.w3.org/TR/2014/NOTE-wake-lock-use-cases-20140814">Wake Lock: Use cases</a> and is working on the Editor's traft <a href="https://w3c.github.io/wake-lock">API</a>.</p> + +<h2 id="See_also">See also</h2> + +<ul> + <li>{{domxref("Navigator.mozPower")}}</li> +</ul> diff --git a/files/de/archive/b2g_os/apps/eine_app_für_firefox_os_schreiben/index.html b/files/de/archive/b2g_os/apps/eine_app_für_firefox_os_schreiben/index.html new file mode 100644 index 0000000000..915a3be22d --- /dev/null +++ b/files/de/archive/b2g_os/apps/eine_app_für_firefox_os_schreiben/index.html @@ -0,0 +1,48 @@ +--- +title: Eine App für Firefox OS schreiben +slug: Archive/B2G_OS/Apps/eine_app_für_firefox_os_schreiben +tags: + - Apps + - Firefox OS + - Handy +translation_of: Web/Apps/Fundamentals/Quickstart +--- +<p>Firefox OS Apps sind Web-Apps, die in HTML, CSS und JavaScript geschrieben sind. Die App wird im Internet publiziert, wie Sie es mit jeder anderen Website auch tun. Um die Website als installierbare Web-App auf dem Gerät zu erstellen, müssen Sie die App mit einem <span id="cke_bm_77S" style="display: none;"> </span><em>manifest</em><span id="cke_bm_77E" style="display: none;"> </span> und einem <em>hock up</em>, einem Installations-Button, wie nachfolgend erläutert, versehen.<span id="cke_bm_78E" style="display: none;"> </span></p> +<p>Die folgenden Themen können als Ausgangspunkt genutzt werden:</p> +<ul> + <li><a href="/en-US/docs/Web/Apps/Getting_Started">Starten Web-Apps zu schreiben (en)</a></li> + <li><a href="/en-US/docs/Web/Apps/Manifest">App manifest (en)</a></li> +</ul> +<p>Natürlich können Sie auch tiefer in die Technologie von Web-Apps eintauchen.</p> +<h2 id="Die_Web-App_installieren">Die Web-App installieren</h2> +<p>Mit der App und dem <em>manifest</em> im Internet, müssen Sie es Gecko bekannt machen. Während der Installationsphase schaut Gecko nach dem <em>manifest </em>und fügt die wichtigsten Einträge dem HomeScreen u.a. hinzu.</p> +<p>Um die App zu installieren, müssen sie die <a href="/en-US/docs/Web/API/Apps.install"><code>navigator.mozApps.install</code> API</a> aufrufen. Hier finden Sie ein Beispiel für einen Installations-Button, den Sie in ihre App einbinden können, wenn Sie sie selbst hosten.</p> +<pre class="brush: html"><button id="install"> + Installieren Sie diese App auf Ihrem HomeScreen! +</button> + +<script> +(function(){ + function install(ev) { + ev.preventDefault(); + // Definierung der Manifest URL + var manifest_url = "http://my.webapp.com/manifest.webapp"; + // App installieren + var myapp = navigator.mozApps.install(manifest_url); + myapp.onsuccess = function(data) { + // App ist installiert, Entfernen-Button + this.parentNode.removeChild(this); + }; + myapp.onerror = function() { + // App war noch nicht installiert, Info ist in this.error.name definiert + console.log('Es ist ein Fehler bei der Installation aufgetreten., error: ' + this.error.name); + }; + }; + // Ein Verweis auf den Button und Aufruf von install() beim betätigen. + var button = document.getElementById('install'); + button.addEventListener('click', install, false); +})(); +</script> +</pre> +<p>Tipp: DenInstallations-Button können Sie auch in App-Stores, wie zum Beispiel dem <a href="/en-US/docs/Web/Apps/Publishing/Submitting_an_app">Firefox Marketplace</a>, einbinden, aber es ist oft sehr praktisch den Installations-Button auf der Startseite des Projekts zu haben.</p> +<p>Nun besuchen Sie Ihre Website mit der Firefox OS Browser App und benutzen Sie den Installations-Button.</p> diff --git a/files/de/archive/b2g_os/apps/index.html b/files/de/archive/b2g_os/apps/index.html new file mode 100644 index 0000000000..6846cbffe7 --- /dev/null +++ b/files/de/archive/b2g_os/apps/index.html @@ -0,0 +1,50 @@ +--- +title: Apps entwickeln für Firefox OS +slug: Archive/B2G_OS/Apps +translation_of: Web/Apps/Fundamentals +--- +<p>Applikationen für Firefox OS Geräte sind einfach offene Web Apps die komplett auf offenen Web Technologien basieren, wie etwa Javascript, HTML oder CSS. Unsere hauptsächliche Dokumentation erklärt Dir alles grundlegende was Du wissen musst und es gibt speziellere Artikel über das Entwickeln und das Testen von Apps für Firefox OS.</p> +<div class="row topicpage-table"> + <div class="section"> + <h2 class="Documentation" id="Documentation" name="Documentation">DoKumentation und Anleitungen</h2> + <dl> + <dt> + <a href="/en-US/docs/Mozilla/Firefox_OS/Apps/Writing_a_web_app_for_Firefox_OS">Eine App für Firefox OS schreiben</a></dt> + <dd> + Anleitung wie Du deine eigene erste Web Applikation für Firefox OS entwickelst.</dd> + <dt> + <a href="/en-US/docs/Mozilla/Firefox_OS/UX" title="/en-US/docs/Mozilla/Firefox_OS/UX">Benutzererlebnis</a></dt> + <dd> + Leitfaden der Dir helfen soll deine Apps mit einem aufgeräumten und attraktiven Erlebnis für den Benutzer auszustatten inklusive Codebeispielen und Templates.</dd> + <dt> + <a href="/en-US/docs/Mozilla/Firefox_OS/Apps/Tips_and_techniques">Tipps und Techniken</a></dt> + <dd> + Ein Sortiment mit Tipps und Tricks (wie auch möglichen Problemlösungen) die unsere Entwickler für Dich ausgewählt haben!</dd> + </dl> + <p><span class="alllinks"><a href="/en-US/docs/tag/Apps">Alle anzeigen...</a></span></p> + </div> + <div class="section"> + <h2 class="Community" id="Community" name="Community">Hol dir Hilfe von der Community</h2> + <p>Du brauchst Hilfe bei einem Problem mit deiner App und kannst keine Lösung in der Dokumentation finden?</p> + <ul> + <li>Konsultiere das Web Apps Forum: {{DiscussionList("dev-webapps", "mozilla.dev.webapps")}}</li> + <li>Konsultiere das Layout Forum, welches sich mit HTML und CSS beschätigt: {{ DiscussionList("dev-tech-css", "mozilla.dev.tech.layout") }} + <ul> + <li>Frage im Mozilla IRC Channel nach: <a class="link-irc" href="irc://irc.mozilla.org/openwebapps">#openwebapps</a></li> + </ul> + </li> + </ul> + <p><span class="alllinks"><a class="external" href="http://www.catb.org/~esr/faqs/smart-questions.html">Vergiss die Netiquette nicht...</a></span></p> + <h2 class="Tools" id="Tools" name="Tools">Werkzeuge</h2> + <ul> + <li><span class="external">Der Firefox <a href="/en-US/docs/Tools/Debugger">Debugger</a> liefert dir Möglichkeiten deine Firefox OS Apps aus der Ferne zu debuggen</span></li> + <li><span class="external">Andere <a href="/en-US/docs/Tools">Entwickler Werkzeuge</a></span></li> + </ul> + <p><span class="alllinks"><a href="/en-US/docs/tag/Tools">Alle anzeigen...</a></span></p> + <h2 class="Related_Topics" id="Related_Topics" name="Related_Topics">Weitere Themen</h2> + <ul> + <li><a href="/en-US/docs/Apps">Apps</a></li> + </ul> + </div> +</div> +<p> </p> diff --git a/files/de/archive/b2g_os/arbeiten_mit_dem_b2g_desktop_client/index.html b/files/de/archive/b2g_os/arbeiten_mit_dem_b2g_desktop_client/index.html new file mode 100644 index 0000000000..14e53a827e --- /dev/null +++ b/files/de/archive/b2g_os/arbeiten_mit_dem_b2g_desktop_client/index.html @@ -0,0 +1,135 @@ +--- +title: Arbeiten mit dem B2G Desktop-Client +slug: Archive/B2G_OS/Arbeiten_mit_dem_B2G_Desktop_Client +translation_of: Archive/B2G_OS/Building_the_B2G_OS_simulator +--- +<p>Der Firefox OS desktop client, auch bekannt als <em>B2G desktop client</em>, bietet die Möglichkeit an Gaia and Web apps in einer Gecko-basierten Umgebung auf dem Desktop laufen zu lassen. Dabei wird die Geräte-Hardware jedoch nicht emuliert, sodass es zum Testen von Geräte-Api nicht taugt. Auch ist es kein Ersatz um auf einem Gerät zu testen. Dennoch, hat es einige aktivierte APIs, welche nicht im Firefox verfügbar sind, wie z.B. Kontakt- und Einstellungs-API. Es kann also durchaus nützlich sein, wenn man eine Anwendung entwickelt oder während man am Gaia-Inteface direkt arbeitet. Dieser Artikel behandelt das Downloaden bzw. zusammenbauen des Firefox OS Desktop Clients, jedoch auch wie man ihn benutzt.</p> +<div class="note"> + <p><strong>Note:</strong> The easiest way to use the Firefox OS desktop client is to use the <a href="/en-US/docs/Mozilla/Boot_to_Gecko/Using_Firefox_OS_simulator" title="/en-US/docs/Mozilla/Boot_to_Gecko/Using_Firefox_OS_simulator">Firefox OS Simulator</a>. It does not require you to build the desktop client yourself.</p> +</div> +<h2 id="Download_a_nightly_build">Download a nightly build</h2> +<div class="note"> + <p><strong>Note:</strong> Firefox OS version 1.0 is based on a branch of Gecko 18. There are also nightly builds based on <code>mozilla-central</code> here:<br> + <a href="http://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/latest-mozilla-central/" title="http://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/latest-mozilla-central/">http://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/latest-mozilla-central/</a></p> +</div> +<p>Just like <a href="http://nightly.mozilla.org" title="http://nightly.mozilla.org">Firefox Nightlies</a>, the Firefox OS desktop client is built every day from the latest source code. The latest build is <a href="http://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/latest-mozilla-central/" title="http://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/latest-mozilla-central/">available from the Mozilla FTP server</a>. Be sure to pick the latest version and the right archive for your operating system. This lets you bypass having to build it yourself. In addition, you don't have to download Gaia on your own either.</p> +<p>Be sure to install the application in a writeable location; the application needs to be able to update included the Gaia profile.</p> +<p>You can now skip ahead to <a href="#Running_the_desktop_client" title="#Running_the_desktop_client">Running the desktop client</a>, unless you actually want to build it for yourself.</p> +<h2 id="Building_the_desktop_client">Building the desktop client</h2> +<p>The first thing we need to do is set up a <a href="/En/Developer_Guide/Build_Instructions#Build_prerequisites" title="En/Developer_Guide/Build_Instructions#Build_prerequisites">standard Mozilla build environment</a>. Once we have that, we can pull down the code we'll need and configure to build the Firefox OS desktop client.</p> +<h3 id="Downloading_the_code_for_the_first_time">Downloading the code for the first time</h3> +<p>In a directory where we'd like the source code to go, let's clone the <code>mozilla-central</code> repository that contains all of Gecko:</p> +<pre> hg clone http://hg.mozilla.org/mozilla-central +</pre> +<h3 id="Updating_the_code">Updating the code</h3> +<p>When we do subsequent builds later, we'll want to make sure we have the latest code. Here's how to pull the latest changes:</p> +<pre>cd mozilla-central +hg pull -u +</pre> +<h3 id="Create_a_mozconfig">Create a mozconfig</h3> +<p>Next, we need to create a <code>mozconfig</code> file in the <code>mozilla-central</code> directory to configure the build system to build the Boot to Gecko client instead of Firefox:</p> +<pre>. "$topsrcdir/b2g/config/mozconfigs/common" + +mk_add_options MOZ_OBJDIR=../build +mk_add_options MOZ_MAKE_FLAGS="-j9 -s" + +ac_add_options --enable-application=b2g +ac_add_options --disable-libjpeg-turbo + +# This option is required if you want to be able to run Gaia's tests +ac_add_options --enable-tests + +# turn on mozTelephony/mozSms interfaces +# Only turn this line on if you actually have a dev phone +# you want to forward to. If you get crashes at startup, +# make sure this line is commented. +#ac_add_options --enable-b2g-ril</pre> +<h3 id="Building">Building</h3> +<p>Now we're ready to build the desktop client with the following command issued from the <code>mozilla-central</code> directory:</p> +<pre>make -f client.mk +</pre> +<p>The built client will be placed in the <code>../build/dist</code> directory (based on the value you specify for <code>MOZ_OBJDIR</code> in the <code>mozconfig</code> file).</p> +<h2 id="Downloading_Gaia">Downloading Gaia</h2> +<p>By default the desktop client will show an empty screen because it doesn't know which Web app to load initially as the system app. The collection of system apps and default apps that come with Firefox OS is called Gaia.</p> +<p>To download Gaia for the first time, let's clone the source code repository on GitHub:</p> +<pre>git clone https://github.com/mozilla-b2g/gaia +cd gaia</pre> +<p>To update an already existing clone of Gaia, we can pull in the latest changes from GitHub:</p> +<pre>cd gaia +git pull +</pre> +<h3 id="Generating_a_profile">Generating a profile</h3> +<p>Next we need to set up Gaia's apps for the desktop client. This includes packaging the Gaia apps in the same way like they would be installed on the device, as well as setting up the permissions for the privileged system apps. We do this by generating a profile. The following command (run in the <code>gaia</code> directory) will take care of that:</p> +<pre>DEBUG=1 make +</pre> +<p>This should create a <code>profile-debug</code> directory below the <code>gaia</code> directory. The new profile contains a customized extension and other configuration needed to make B2G run properly.</p> +<h2 id="Running_the_desktop_client">Running the desktop client</h2> +<p>Once you've built the client and downloaded Gaia (or downloaded and installed the nightly desktop application), you're ready to fire up the Firefox OS desktop client.</p> +<h3 id="Running_on_Linux">Running on Linux</h3> +<p>To run the desktop client on Linux using the embedded Gaia profile, just run the <code>b2g</code> executable. If you want to specify a different Gaia profile, you need to bypass the <code>b2g</code> wrapper program and run the <code>b2g-bin</code> binary. The binary is in the archive you downloaded earlier or in the <code>../build/dist/bin</code> directory if you built the client yourself.</p> +<pre>.../b2g-bin -profile gaia/profile-debug +</pre> +<p>You may experience annoying rendering problems. To avoid them, add the following line to your <code>gaia/profile/user.js</code> file:</p> +<pre>user_pref("layers.acceleration.disabled", true); +</pre> +<h3 id="Running_on_Mac">Running on Mac</h3> +<p>If you downloaded the nightly build, you can simply launch it from the Finder as usual. Any console output is visible by running the standard Console utility program included with your Mac.</p> +<p>If you want to specify a different Gaia profile, you need to bypass the <code>b2g</code> wrapper program and run the <code>b2g-bin</code> binary. The command line is slightly more complicated due to the location of the <code>b2g-bin</code> binary and the need for absolute paths when specifying the profile directory:</p> +<pre>.../B2G.app/Contents/MacOS/b2g-bin -profile /full/path/to/gaia/profile-debug +</pre> +<h3 id="Running_on_Windows">Running on Windows</h3> +<p>Running the nightly build on Windows is as simple as launching <code>b2g.exe</code>. If you want to customize the execution, you can do so by running the <code>b2g-bin.exe</code> executable instead; this bypasses the wrapper program that automatically uses the bundled Gaia.</p> +<h2 id="Command_line_options">Command line options</h2> +<p>There are a number of command line options you can use to adjust the runtime experience while using the desktop client. You can get a list by using the <code>-help</code> option. This section covers some of the particularly interesting ones.</p> +<h3 id="option-screen" name="option-screen">Specifying the screen size</h3> +<p>You can specify the screen size of the device you want to simulate using the <code>--screen</code> option:</p> +<pre>b2g --screen=<em><width></em>x<em><height></em>[@<em><dpi></em>]</pre> +<p>Where <em><width></em>, <em><height></em>, and <em><dpi></em> are fairly self-explanatory parameters: the width and height of the device's screen in pixels and the device resolution in DPI. For example:</p> +<pre>b2g --screen=320x480 +b2g --screen=320x480@160 +</pre> +<p>Optionally, you can specify certain devices by name to simulate their screen size and resolution:</p> +<ul> + <li><code>iphone</code></li> + <li><code>ipad</code></li> + <li><code>nexus_s</code></li> + <li><code>galaxy_nexus</code></li> + <li><code>galaxy_tab</code></li> + <li><code>wildfire</code></li> + <li><code>tattoo</code></li> + <li><code>salsa</code></li> + <li><code>chacha</code></li> +</ul> +<h3 id="option-console" name="option-console">Opening the JavaScript console</h3> +<p>You can open the JavaScript console when launching the desktop B2G client by launching it from the command line with the <code>-jsconsole</code> flag. After building, just do:</p> +<pre>.../b2g -jsconsole -profile <em>/path/to/your/profile</em></pre> +<p>If you've installed the nightly build on a Mac, you can do the following:</p> +<pre>/Applications/B2G.app/Contents/MacOS/b2g-bin -jsconsole -profile <em>/path/to/your/profile-debug</em></pre> +<div class="note"> + <p><strong>Note:</strong> On production builds of Firefox OS, console logging (such as by {{domxref("console.log()")}}) is disabled by default. In order to enable it, open the Settings app and navigate down through Device Information->More Information->Developer, then toggle on the "Console Enabled" preference.</p> +</div> +<h3 id="option-runapp" name="option-runapp">Launching a specific application at startup</h3> +<p>You can now specify an application to be launched automatically when b2g starts up in the desktop client. This is done as soon as the rest of the system is done loading up. To do this, just use the <code>--runapp</code> option, which takes as a parameter the name of the application to run. For example:</p> +<pre> .../b2g-bin -profile <em>/path/to/your/gaia/profile-debug</em> --runapp email</pre> +<p>Before looking for an app to launch, the specified name is normalized by converting it to all lower case and removing all dashes and spaces. This normalized name is then compared to similarly normalized names from the manifests of available apps' manifests.</p> +<p>For example, the name of the email app is currently "E-mail", but <code>--runapp email</code> will work because of this normalization.</p> +<p>If you specify the <code>--runapp</code> option without an argument, or with an empty argument, the b2g client will output to your terminal a list of the known applications as well as a brief usage message.</p> +<div class="note"> + <p><strong>Note:</strong> Using the <code>--runapp</code> option disables the lock screen as a side effect and does not re-enable it. It's assumed that you won't use this command on a profile on which you will be testing the lock screen, or you will turn it back on manually in Settings application. Feel free to contribute a patch to change this behavior if it's a problem.</p> +</div> +<h2 id="Usage_tips">Usage tips</h2> +<p>This section provides a few helpful tips to using the B2G desktop client.</p> +<ul> + <li>ESC key performs the same function as the "back" button.</li> + <li>Home key performs the same function as the "home" button; if you're on a Mac, Home key is available as Fn+← (Fn + Left Arrow).</li> + <li>End key performs the same function as the "power" button; if you're on a Mac, End key is available as Fn+→ (Fn + Right Arrow).</li> + <li>Page Up and Page Down keys perform the same function as "Volume Up" and "Volume Down" buttons respectively; if you're on a Mac, Page Up key is available as Fn+↑ (Fn + Up Arrow) and Page Down key is available as Fn+↓ (Fn + Down Arrow).</li> + <li>Long press to Home key opens the "Card View"; if you're on Mac, Cmd+Fn+← (Cmd + Fn + Left Arrow) opens the "Card View".</li> +</ul> +<h2 id="Next_steps">Next steps</h2> +<p>Now that you have a desktop build of Boot to Gecko running, you can do testing, development, and other work in it:</p> +<ul> + <li><a href="/en/Mozilla/Boot_to_Gecko/Debugging_on_Boot_to_Gecko" title="en/Mozilla/Boot_to_Gecko/Debugging_on_Boot_to_Gecko">Debugging on Boot to Gecko</a></li> + <li><a href="/en/Mozilla/Boot_to_Gecko/Testing_Boot_to_Gecko" title="en/Mozilla/Boot_to_Gecko/Testing_Boot_to_Gecko">Testing Boot to Gecko</a></li> + <li><a href="http://blog.johnford.org/desktop-b2g-include-gaia/" title="http://blog.johnford.org/desktop-b2g-include-gaia/">Desktop B2G builds now include Gaia</a></li> +</ul> diff --git a/files/de/archive/b2g_os/benutzung_des_app_managers/index.html b/files/de/archive/b2g_os/benutzung_des_app_managers/index.html new file mode 100644 index 0000000000..5a03b1fb3b --- /dev/null +++ b/files/de/archive/b2g_os/benutzung_des_app_managers/index.html @@ -0,0 +1,264 @@ +--- +title: Benutzung des App Managers +slug: Archive/B2G_OS/Benutzung_des_App_Managers +translation_of: Archive/B2G_OS/Using_the_App_Manager +--- +<div class="summary"> +<p>Der App Manager ist ein neues Tool, das in Firefox für Desktop integriert wurde. Es stellt einige nützliche Werkzeuge zum Testen, Verteilen und Debuggen von HTML5-Webapps mit Firefox OS Smartphones und dem Firefox OS Simulator bereit, welche direkt im Browser benutzt werden können.</p> + +<p>Der App Manager ist an Entwickler, die Firefox OS Version 1.2 oder später entwickeln, gerichtet. Wenn Sie Apps für Firefox OS 1.1 entwickeln, werfen Sie stattdessen einen Blick auf die Dokumentation für den <a href="/de/docs/Tools/Firefox_OS_1.1_Simulator">Firefox OS Simulator 1.1</a>.</p> +</div> + +<p style="text-align: center;">{{EmbedYouTube("z1Bxg1UJVf0")}}</p> + +<p>Der App Manager besteht aus folgenden Komponenten:</p> + +<ul> + <li>Ein <a href="#Apps_panel"><em>Apps-Panel</em></a> zur Verwaltung von lokalen Apps (Source Code ist auf dem eigenen Computer gespeichert) und Apps, die extern gehostet sind. Diese können paketiert, auf einem Gerät oder im Simulator installiert und mit Toolboxes getestet werden.</li> + <li>Ein <a href="#Device_panel"><em>Device-Panel</em></a>, welches Informationen über das verbundene Gerät, wie installierte Firefox OS Version, benötigte Rechte für die Benutzung der APIs auf dem Gerät und installierte Apps anzeigt.</li> + <li><a href="/en-US/docs/Tools_Toolbox"><em>Toolboxes</em></a>, die sich aus Komponenten der Entwickler-Werkzeuge zusammensetzen (Web-Konsole, Inspektor, Debugger, etc.) und über das Apps-Panel mit einer laufenden App verbunden werden können, um Debugging zu betreiben.</li> +</ul> + +<h2 id="Schnelleinstieg"><a name="Configuring_device">Schnelleinstieg:</a></h2> + +<p>Dieser Abschnitt soll einen möglichst schnellen Einstieg ermöglichen. Falls genauere Erklärungen benötigt werden, überspringen Sie bitte diesen Abschnitt und lesen Sie {{ anch("Device and system configuration") }}. Bei Problemen könnte außerdem der Abschnitt {{ anch("Troubleshooting") }} weiterhelfen.</p> + +<ol> + <li>Stellen Sie sicher, dass Firefox Desktop 26+ installiert ist.</li> + <li>Öffnen Sie den App Manager (tippen Sie <code>about:app-manager</code> in die URL-Leiste).</li> + <li>Falls kein echtes Gerät mit Firefox OS zur Verfügung steht: + <ol> + <li><a href="https://ftp.mozilla.org/pub/mozilla.org/labs/fxos-simulator/">Installieren Sie den Firefox OS Simulator</a></li> + <li>Klicken Sie auf <em>Start Simulator</em> in der unteren Werkzeugleiste des App Managers und anschließend auf den Namen des installierten Simulators.</li> + </ol> + </li> + <li>Falls Sie ein echtes Gerät besitzen: + <ol> + <li>Stellen Sie sicher, dass auf dem Gerät Firefox OS 1.2+ läuft.</li> + <li>Wenn Sie unter Windows arbeiten, stellen Sie sicher, dass Sie die bereitgestellten Treiber Ihres Handys installiert haben.</li> + <li>Deaktivieren Sie die Bildschirmsperre in den Einstellungen des Geräts (<code>Settings > <code>Screen Lock) </code></code>und aktivieren Sie Remote Debugging (<code>Settings > Device information > More information > Developer</code>).</li> + <li><a href="https://ftp.mozilla.org/pub/mozilla.org/labs/fxos-simulator/">Installieren Sie das ADB Helper Add-on</a> in Firefox Desktop.</li> + <li>Verbinden Sie ihr Gerät über ein USB-Kabel mit dem Computer.</li> + <li>Der Name des Geräts sollte nun in der unteren Leiste des App Managers erscheinen. Klicken Sie den Namen an.</li> + </ol> + </li> + <li>Die untere Leiste sollte anzeigen "Connected to: xxx".</li> + <li>Klicken Sie auf das <em>Apps-Panel</em> und fügen Sie eine App hinzu (paketiert oder gehostet).</li> + <li>Der <em>Refresh</em>-Button validiert Ihre App und installiert sie auf dem Simulator/Gerät.</li> + <li>Der <em>Debug</em>-Button verbindet die Entwickler-Tools mit der laufenden App.</li> +</ol> + +<h2 id="Geräte-_und_System-Konfiguration">Geräte- und System-Konfiguration</h2> + +<p>Bei der Benutzung des App Manager sollte man zuerst sicherstellen, dass System und Gerät korrekt konfiguriert sind. Dieser Abschnitt beschreibt alle dafür nötigen Schritte.</p> + +<h3 id="Firefox_1.2_wird_benötigt">Firefox 1.2+ wird benötigt</h3> + +<p>Stellen Sie sicher, dass auf Ihrem Gerät Firefox OS 1.2/Boot2Gecko 1.2 oder höher läuft. Die Versionsnummer von Firefox OS wird unter <code>Settings > Device Information > Software</code> angezeigt.</p> + +<p>Falls die installierte Version nicht hoch genug ist, muss je nachdem welches Gerät Sie verwenden, eine der verfügbaren Nightly-Builds von Firefox 1.2+ installiert oder eine Version selbst kompiliert werden.</p> + +<p>Verfügbare Builds:</p> + +<ul> + <li><a href="http://downloads.geeksphone.com/">Geeksphone Keon/Peak Builds</a> (für mehr Informationen lesen Sie <a href="/en-US/docs/Mozilla/Firefox_OS/Developer_phone_guide/Updating_and_Tweaking_Geeksphone">Updating and Tweaking your Firefox OS Developer Preview phone/Geeksphone</a>).</li> + <li>Weitere Builds folgen später.</li> +</ul> + +<div class="note"> +<p>Hinweis: Für die Erstellung eines eigenen Builds von Firefox OS 1.2+, folgen Sie den Anweisungen unter <a href="/en-US/docs/Mozilla/Firefox_OS/Building_and_installing_Firefox_OS">Building and installing Firefox OS</a> und starten Sie mit <a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_build_prerequisites">Firefox OS build prerequisites</a>.</p> +</div> + +<h3 id="Remote-Debugging">Remote-Debugging</h3> + +<p>Als nächstes muss Remote Debugging in Firefox OS aktiviert werden. Navigieren Sie zu <code>Settings > Device information > More information > Developer</code> und aktivieren Sie die Checkbox bei Remote Debugging.</p> + +<h3 id="Adb_Helper_Add-on" name="Adb_Helper_Add-on">ADB oder ADB Helper</h3> + +<p>Über die Android Debug Bridge (ADB) wird die Verbindung und Kommunikation zwischen Gerät und Computer geregelt. Es gibt zwei Möglichkeiten ADB einzusetzen:</p> + +<ul> + <li> + <p>Lassen Sie Firefox die Kontrolle über ADB übernehmen (empfohlen). <a href="https://ftp.mozilla.org/pub/mozilla.org/labs/fxos-simulator/">Installieren Sie das ADB Helper Add-on</a>, welches den Vorgang vereinfacht. Auf diese Weise brauchen Sie weder ADB installieren noch den Befehl <code>adb forward</code> ausführen - alles wird automatisch vom Add-on erledigt.</p> + <a href="https://ftp.mozilla.org/pub/mozilla.org/labs/fxos-simulator/" style="margin-bottom: 20px; padding: 10px; text-align: center; border-radius: 4px; display: inline-block; background-color: #81BC2E; white-space: nowrap; color: white; text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.25); box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.2), 0px -1px 0px 0px rgba(0, 0, 0, 0.3) inset;" title="https://addons.mozilla.org">Download ADB Helper Add-on</a></li> + <li>Benutzen Sie ADB manuell. Hierfür muss ADB auf dem Computer installiert sein - downloaden und installieren Sie <code>adb</code> (genauer erläutert unter: <a href="/de/Firefox_OS/Debugging/Installing_ADB">Installieren von ADB</a>). Damit die Verbindung funktioniert, muss die Port-Weiterleitung mit folgendem Terminal-Befehl aktiviert werden: + <pre>adb forward tcp:6000 localfilesystem:/data/local/debugger-socket</pre> + Der Befehl muss nach jedem Neustart des Telefons oder Aus- und wieder Einstecken erneut ausgeführt werden.</li> +</ul> + +<div class="note"> +<p>Achtung: Es ist nicht nötig diesen Befehl auszuführen, wenn Sie das ADB Helper Add-on installiert haben.</p> +</div> + +<h2 id="Verbinden_des_Geräts_mit_dem_App_Manager">Verbinden des Geräts mit dem App Manager</h2> + +<p>Nachdem alles konfiguriert wurde, ist es nun an der Zeit, das Gerät mit dem Computer zu verbinden und den App Manager zu starten:</p> + +<ol> + <li>Verbinden Sie das Gerät via USB mit dem Computer.</li> + <li>Deaktivieren Sie Screen lock auf dem Gerät, indem Sie zu <code>Settings > Screen Lock</code> navigieren und die Checkbox bei <code>Lock Screen</code> deaktivieren. Dieses Vorgehen ist sehr ratsam, da die Verbindung abbricht, sobald sich die Bildschirmsperre aktiviert.</li> + <li>Starten Sie den App Manager — klicken Sie in der Menüleiste von Firefox Desktop <code>Extras > Web-Entwickler > App Manager</code> an oder tippen Sie <code>about:app-manager</code> in die URL-Leiste.</li> + <li>An der Unterseite des App Manager Tabs sehen Sie nun eine Anzeige für den Verbindungsstatus (siehe Screenshot unten). Es sollte nun möglich sein das Gerät durch einen Klick auf den "Connect to localhost:6000" Button zu verbinden.</li> + <li>Falls die Verbindung erfolgreich hergestellt wurde, erscheint eine Frage auf dem Gerät: "An incoming request to permit remote debugging connection was detected. Allow connection?". Bestätigen Sie mit dem OK-Button (evtl. müssen Sie den Power-Button am Gerät betätigen, damit Sie die Frage sehen können). Der Verbindungsstatus in der Leiste sollte dann "Connected to B2G" und einen Disconnect-Button zum Abbruch der Verbindung anzeigen.</li> +</ol> + +<p><img alt="" src="https://mdn.mozillademos.org/files/6263/connection-status.png" style="display: block; height: 30px; margin: 0px auto; width: 600px;"></p> + +<div class="note"> +<p>Die anderen Bedienelemente in der Verbindungstatus-Leiste ermöglichen die Verbindung eines Simulators mit dem App Manager. Dies wird im nächsten Abschnitt behandelt, wobei der Port für die Verbindung geändert wird. Wenn der Port gewechselt wird, muss auch Portweiterleitung für diesen Port aktiviert werden, wie unter {{anch("Enable port forwarding")}} beschrieben.</p> +</div> + +<h2 id="Firefox_OS_Simulator_Add-on"><a name="Simulator">Firefox OS Simulator Add-on</a></h2> + +<p>Steht kein echtes Gerät zur Verfügung, das mit dem App Manager benutzt werden kann, kann es dennoch zusammen einem Firefox OS Simulator Add-on ausprobiert werden. Installieren Sie hierzu einen Simulator, passend für Ihr Betriebssystem (mehrere Versionen verfügbar, es ist ratsam alle zu installieren, für maximale Flexibilität):</p> + +<p><a class="download-button external ignore-external" href="https://ftp.mozilla.org/pub/mozilla.org/labs/fxos-simulator/" rel="noopener">Simulator installieren</a></p> + + +<p>Nach der Installation des Simulators/der Simulatoren gehen Sie auf about:app-manager und klicken Sie in der Verbindungsstatus-Leiste unten den "Start Simulator"-Button. Daraufhin erscheinen drei weitere Buttons:</p> + +<ul> + <li>"Firefox OS 1.2" ... etc (oder ähnliches): Der Button ganz links zeigt den Namen der installieten Version des Simulators an. Klicken Sie hier, um die Verbindung mit dem Simulator aufzubauen.</li> + <li>"Add": der mittlere Button verweist auf die Links zur Installation der Simulatoren in diesem Artikel zum Hinzufügen neuer Simulatoren (Firefox OS 1.2, Firefox OS 1.3, ...).</li> + <li>"Cancel": Der Button mit der rechten Hand bricht die Verbindung ab.</li> +</ul> + +<h2 id="Apps-Panel"><a name="Apps_panel">Apps-Panel</a></h2> + +<p>Da nun alles soweit funktionert, wird nun die Funktionalität des App Managers beschrieben, beginnend mit dem Apps Panel. Von hier aus können Sie eine bereits existierende App importieren, auf Ihr Gerät übertragen und debuggen:</p> + +<ul> + <li>Für die Installation einer lokalen App, klicken Sie auf das Plus neben "Add Packaged App"-Label und wählen Sie über den Datei-Auswahldialog den Ordner aus, in dem die App gespeichert ist.</li> + <li>Um eine extern gehostete App zu installieren, geben Sie die vollständige URL zur Manifest-Datei der App in das Textfeld in der "Add Hosted App" Box ein und klicken Sie den Plus-Button.</li> +</ul> + +<p>Ist dieser Schritt gelungen, sollten auf der rechten Seite des Fensters Informationen über die App angezeigt werden:</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/6261/apps-panel.png" style="display: block; height: 375px; margin: 0px auto; width: 600px;"></p> + +<h3 id="Manifest_Editor">Manifest Editor</h3> + +<p>Mit Firefox 28 und später findet sich im Apps Panel ein Editor für das App-Manifest:</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/6613/apps-panel-fx-28.png" style="display: block; margin: 0px auto; width: 600px;"></p> + +<h3 id="Debugging">Debugging</h3> + +<p>Ein Klick auf <em>"Update"</em> überträgt (installiert) die App auf das Gerät. Mit einem Klick auf <em>"Debug"</em> wird eine Toolbox mit der App verbunden, womit die App getestet werden kann:</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/6265/debug.png" style="display: block; height: 375px; margin: 0px auto; width: 600px;"></p> + +<div class="note"> +<p>Anmerkung: Es wird Ihnen gefallen mit der Toolbox herumzuspielen - ändern Sie den DOM, CSS etc. und Sie werden sehen, dass die Änderung in Echtzeit auf dem Gerät ablaufen. Die Änderungen werden im Code der installierten App gespeichert und beim nächsten Öffnen der App auf dem Gerät wieder angezeigt.</p> +</div> + +<p>Before Firefox 28, the tools are launched in a separate window. From Firefox 28 onwards, the tools are launched in a separate tab in the App Manager itself, alongside the Apps and Device tabs. The tab is given your app's icon so it's easy to find:</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/6615/toolbox-fx-28.png" style="display: block; height: 375px; margin: 0px auto; width: 600px;"></p> + +<h3 id="Fehler">Fehler</h3> + +<p>Falls eine App nicht erfolgreich hinzugefügt werden konnte - zum Beispiel weil die angegebene URL nicht korrekt ist oder ein gepackter App-Ordner ausgewählt wurde - wird dennoch ein Eintrag für die App hinzugefügt, dieser enthält jedoch Fehlermeldungen.</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/6259/apps-error.png" style="display: block; height: 375px; margin: 0px auto; width: 600px;"></p> + +<p>Bei dieser Ansicht ist es auch möglich, eine installierte App zu deinstallieren. Halten Sie hierfür den Mauszeiger über den Namen oder die Beschreibung der jeweiligen App auf der linken Seite und klicken Sie den X-Button an. Die App wird dadurch jedoch nicht vom Gerät entfernt. Um dies zu tun, muss das Gerät selbst benutzt werden.</p> + +<h2 id="Device-Panel"><a name="Device_panel">Device-Panel</a></h2> + +<p>Im Tab unter <em>Device</em> werden Informationen zum verbundenen Gerät angezeigt. Von dem Fenster "Installed Apps" aus können die Apps auf dem Gerät gestartet und gedebuggt werden.</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/6267/device-tab.png" style="display: block; height: 375px; margin: 0px auto; width: 600px;"></p> + +<div class="note"> +<p>Anmerkung: Zertifizierte Apps werden standardmäßig nicht aufgelistet. <a href="#Debugging_Certified_Apps">Weitere Informationen zum Debuggen von zertifizierten Apps</a>.</p> +</div> + +<p>Das Fenster "Permissions" zeigt die benötigten Rechte für verschiedene <a href="/en-US/docs/WebAPI">Web-APIs</a> des Geräts:</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/6269/permissions.png" style="display: block; height: 375px; margin: 0px auto; width: 600px;"></p> + +<p>Abschließend können Sie einen Screenshot mit dem Bildschirminhalt des Geräts erstellen, indem Sie den Screenshot-Button anklicken. Der Screenshot wird dann in einem neuen Tab in Firefox geöffnet und kann von dort aus gespeichert oder verworfen werden.</p> + +<h2 id="Debuggen_von_zertifizierten_Apps"><a name="Debugging_Certified_Apps">Debuggen von zertifizierten Apps</a></h2> + +<p>Bis dato können nur Geräte, welche mit einem Development-Build von Firefox OS 1.2 laufen, für das Debuggen von zertifizierten Apps benutzt werden. Falls auf ihrem Gerät ein Development-Build installiert ist, können Sie das Debuggen von zertifzierten Apps erlauben, indem Sie die Einstellung <code>devtools.debugger.forbid-certified-apps</code> in ihrem Firefox-Profil auf <code>false</code> setzen. Gehen sie hierfür wie folgt vor:</p> + +<ol> + <li> + <p>Geben Sie auf ihrem Computer den folgenden Befehl in ein Terminal/Konsole ein, um über die Shell auf das Dateisystem des Geräts zuzugreifen:</p> + + <pre class="brush: bash">adb shell</pre> + + <p>Daraufhin sollte sich der Prompt zu <code>root@android </code>ändern.</p> + </li> + <li> + <p>Als nächstes stoppen sie B2G mit dem Befehl:</p> + + <pre class="brush: bash">stop b2g</pre> + </li> + <li> + <p>Wechseln Sie mit folgenden Befehl zum Profilordner:</p> + + <pre>cd /data/b2g/mozilla/*.default/</pre> + </li> + <li> + <p>Und fügen Sie mit folgendem Befehl eine Zeile für die Einstellung in die Datei prefs.js ein:</p> + + <pre class="brush: js">echo 'user_pref("devtools.debugger.forbid-certified-apps", false);' >> prefs.js</pre> + </li> + <li> + <p>Nachdem die Datei bearbeitet und gespeichert wurde, starten Sie B2G erneut:</p> + + <pre class="brush: bash">start b2g</pre> + </li> + <li> + <p>Verlassen Sie das Android-Dateisystem mit der Eingabe des Befehls <code>exit</code>. Damit kehren Sie zum normalen Terminal-Prompt zurück.</p> + </li> + <li> + <p>Stellen Sie nun eine Verbindung mit dem App Manger her. Die zertifizierten Apps sollten nun angezeigt werden.</p> + </li> +</ol> + +<div class="note"> +<p>Anmerkung: Falls Sie diese Einstellung ihrem Gaia build hinzufügen möchten, sodass sie aktiv ist auch wenn ihr Telefon zurückgesetzt wird, fügen Sie die Einstellung in der Datei <code>build/custom-prefs.js</code> hinzu und führen Sie <code>make reset-gaia</code> aus.</p> +</div> + +<h2 id="Running_custom_builds_in_the_App_Manager">Running custom builds in the App Manager</h2> + +<p>You can run custom B2G Desktop and Gaia builds in the App Manager via the simulator. Read <a href="https://developer.mozilla.org/en-US/Firefox_OS/Running_custom_builds_in_the_App_Manager">Running custom Firefox OS/Gaia builds in the App Manager</a> for more details.</p> + +<h2 id="Fehlerbehandlung"><a name="Troubleshooting">Fehlerbehandlung</a></h2> + +<p id="My_device_is_not_recognized">Falls das Gerät nicht gefunden wird:</p> + +<ul> + <li>Lesen Sie den Abschnitt <a href="#Configuring_device">Device and system configuration</a> sorgfältig und überprüfen Sie, ob alle Schritte korrekt durchgeführt wurden:</li> + <li>Läuft auf dem Gerät mindestens Firefox OS 1.2?</li> + <li>Fehlen Apps? Ist <a href="https://developer.mozilla.org/de/docs/Mozilla/Firefox_OS/Benutzung_des_App_Managers#Debugging_Certified_Apps">Debuggen von zertifizierten Apps</a> aktiviert?</li> + <li>Ist "Remote Debugging" in den Einstellungen des Telefons aktiviert?</li> + <li>Falls Sie das <a href="#Adb_Helper_Add-on">ADB Helper add-on</a> nicht verwenden: + <ul> + <li>Wurde der Befehl <code>adb forward</code> erfolgreich ausgeführt?</li> + </ul> + </li> + <li>Falls Sie das <a href="#Adb_Helper_Add-on">ADB Helper add-on</a> verwenden und das Gerät in der unteren Leiste nicht angezeigt wird: + <ul> + <li>Falls Sie Linux als Betriebssystem einsetzen, vergewissern Sie sich<a href="http://developer.android.com/tools/device.html#setting-up"> dass udev korrekt konfiguriert ist.</a></li> + <li>Falls Sie Windows als Betriebssystem einsetzen, <a href="http://developer.android.com/tools/device.html#setting-up">stellen Sie sicher, dass die benötigten Treiber installiert sind.</a></li> + </ul> + </li> + <li>You can also enable verbose logging to gather diagnostics: + <ul> + <li>Use about:config to set the pref "<span class="message"><span class="content"><span class="email">extensions.adbhelper@mozilla.org.sdk</span>.console.logLevel"</span></span> to the string value "all"</li> + <li>Disable and re-enable the ADB Helper add-on from the add-ons manager, or restart Firefox</li> + <li>Open the App Manager again</li> + <li>In the <a href="https://developer.mozilla.org/docs/Tools/Browser_Console">Browser Console</a>, you should now see additional output lines that mention "adbhelper"</li> + <li>If you see them but aren't sure what they mean, stop by the <a href="https://wiki.mozilla.org/DevTools/GetInvolved#Communication">#devtools room on IRC</a> or <a href="https://bugzilla.mozilla.org/enter_bug.cgi?alias=&assigned_to=nobody%40mozilla.org&attach_text=&blocked=&bug_file_loc=http%3A%2F%2F&bug_ignored=0&bug_severity=normal&bug_status=NEW&cf_blocking_b2g=---&cf_crash_signature=&cf_status_b2g18=---&cf_status_b2g_1_1_hd=---&cf_status_b2g_1_2=---&cf_status_firefox24=---&cf_status_firefox25=---&cf_status_firefox26=---&cf_status_firefox27=---&cf_status_firefox_esr17=---&cf_status_firefox_esr24=---&cf_tracking_b2g18=---&cf_tracking_firefox24=---&cf_tracking_firefox25=---&cf_tracking_firefox26=---&cf_tracking_firefox27=---&cf_tracking_firefox_esr17=---&cf_tracking_firefox_esr24=---&cf_tracking_firefox_relnote=---&cf_tracking_relnote_b2g=---&comment=&component=Developer%20Tools%3A%20App%20Manager&contenttypeentry=&contenttypemethod=autodetect&contenttypeselection=text%2Fplain&data=&defined_groups=1&dependson=&description=&flag_type-203=X&flag_type-37=X&flag_type-41=X&flag_type-5=X&flag_type-607=X&flag_type-720=X&flag_type-721=X&flag_type-737=X&flag_type-748=X&flag_type-781=X&flag_type-787=X&flag_type-791=X&flag_type-799=X&flag_type-800=X&flag_type-802=X&flag_type-803=X&flag_type-809=X&flag_type-825=X&form_name=enter_bug&keywords=&maketemplate=Remember%20values%20as%20bookmarkable%20template&op_sys=All&priority=--&product=Firefox&qa_contact=developer.tools%40firefox.bugs&rep_platform=x86&requestee_type-203=&requestee_type-41=&requestee_type-5=&requestee_type-607=&requestee_type-748=&requestee_type-781=&requestee_type-787=&requestee_type-791=&requestee_type-800=&short_desc=&status_whiteboard=&target_milestone=---&version=Trunk">file a bug</a> with the log output</li> + </ul> + </li> + <li>See <strong>"???????"</strong> instead of the device name on Linux? You have permissions issues. <a href="http://developer.android.com/tools/device.html#setting-up">Make sure to setup udev correctly</a>.</li> + <li>Ist die Bildschirmsperre deaktiviert?</li> +</ul> + +<p>Die Verbindung des Geräts mit dem App Manager funktioniert nicht oder der Simulator kann nicht gestartet werden? <a href="https://wiki.mozilla.org/DevTools/GetInvolved#Communication">Lassen Sie es uns wissen </a>oder <a href="https://bugzilla.mozilla.org/enter_bug.cgi?alias=&assigned_to=nobody%40mozilla.org&attach_text=&blocked=&bug_file_loc=http%3A%2F%2F&bug_ignored=0&bug_severity=normal&bug_status=NEW&cf_blocking_b2g=---&cf_crash_signature=&cf_status_b2g18=---&cf_status_b2g_1_1_hd=---&cf_status_b2g_1_2=---&cf_status_firefox24=---&cf_status_firefox25=---&cf_status_firefox26=---&cf_status_firefox27=---&cf_status_firefox_esr17=---&cf_status_firefox_esr24=---&cf_tracking_b2g18=---&cf_tracking_firefox24=---&cf_tracking_firefox25=---&cf_tracking_firefox26=---&cf_tracking_firefox27=---&cf_tracking_firefox_esr17=---&cf_tracking_firefox_esr24=---&cf_tracking_firefox_relnote=---&cf_tracking_relnote_b2g=---&comment=&component=Developer%20Tools%3A%20App%20Manager&contenttypeentry=&contenttypemethod=autodetect&contenttypeselection=text%2Fplain&data=&defined_groups=1&dependson=&description=&flag_type-203=X&flag_type-37=X&flag_type-41=X&flag_type-5=X&flag_type-607=X&flag_type-720=X&flag_type-721=X&flag_type-737=X&flag_type-748=X&flag_type-781=X&flag_type-787=X&flag_type-791=X&flag_type-799=X&flag_type-800=X&flag_type-802=X&flag_type-803=X&flag_type-809=X&flag_type-825=X&form_name=enter_bug&keywords=&maketemplate=Remember%20values%20as%20bookmarkable%20template&op_sys=All&priority=--&product=Firefox&qa_contact=developer.tools%40firefox.bugs&rep_platform=x86&requestee_type-203=&requestee_type-41=&requestee_type-5=&requestee_type-607=&requestee_type-748=&requestee_type-781=&requestee_type-787=&requestee_type-791=&requestee_type-800=&short_desc=&status_whiteboard=&target_milestone=---&version=Trunk">schreiben Sie einen Bugreport</a>.</p> diff --git a/files/de/archive/b2g_os/building/index.html b/files/de/archive/b2g_os/building/index.html new file mode 100644 index 0000000000..3b0c91142b --- /dev/null +++ b/files/de/archive/b2g_os/building/index.html @@ -0,0 +1,268 @@ +--- +title: Building Firefox OS +slug: Archive/B2G_OS/Building +translation_of: Archive/B2G_OS/Building +--- +<div> + </div> +<div class="summary"> + <p>Once you've <a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_build_prerequisites" title="Mozilla/Firefox_OS/Firefox_OS_build_prerequisites">set up your build system</a> and performed your <a href="/en-US/docs/Mozilla/Firefox_OS/Preparing_for_your_first_B2G_build" title="Mozilla/Firefox_OS/Preparing_for_your_first_B2G_build">initial pull and configure</a> of the code, you can build Boot to Gecko. This guide explains how.</p> +</div> +<h2 id="Updating_your_code">Updating your code</h2> +<p>If this isn't your very first time building B2G, you might want to pull the latest code before you start to build. To do that, you should update both the B2G tools and the dependencies, using the following two commands:</p> +<pre>git pull +./repo sync -d +</pre> +<p>The -d option switches the various projects HEAD back to their Android manifest revision (i.e the default mainstream repository version). It is helpful if you made modifications to the repos (and have associated source changes) but you want to revert back to the master version temporarily. It will indeed leave your staged or working directory changes untouched (see <a href="http://stackoverflow.com/questions/11448864/what-is-the-usage-for-repo-sync-d-in-android-source-repository">the following SO question</a> for the full explanation). If you did not touch the source code, you can use the normal command:</p> +<pre>git pull +./repo sync</pre> +<p>You can update a specific make target's repository by specifying its name:</p> +<pre>./repo sync gaia +</pre> +<p>The repo command has other options available that might be interesting; <code>repo help</code> will give you a lot of information.</p> +<h2 id="Building">Building</h2> +<div class="note"> + <p><strong>Note:</strong> Before building, you may want to set up a <code>.userconfig</code> file to customize the build. See <a href="/en-US/docs/Mozilla/Firefox_OS/Customization_with_the_.userconfig_file" title="Mozilla/Firefox_OS/Customization_with_the_.userconfig_file">Customization with the .userconfig file</a> for details.</p> +</div> +<p>To build Boot to Gecko, simply use the <code>build.sh</code> tool:</p> +<pre>cd B2G +./build.sh +</pre> +<p>Time for another coffee break, or possibly a nap (especially if this is your first build, it takes about 30 min on a Core i7 with 8GB of RAM). As in the configure step on the previous page, if you are using a directory of previously-extracted Android system files, you should set <code>ANDROIDFS_DIR</code> before running <code>build.sh</code>.</p> +<div class="note"> + <p><strong>Note</strong>: For more instructions on flashing your new build to a phone, read <a href="/en-US/Firefox_OS/Installing_on_a_mobile_device">Installing Firefox OS on a mobile device</a>.</p> +</div> +<h3 id="Building_specific_modules">Building specific modules</h3> +<p>If you want to build just a particular module, such as Gecko, you can specify it by name:</p> +<pre>./build.sh gecko +</pre> +<p>In order to refresh only one application, you can build only <code>gaia</code> module by using the <code>BUILD_APP_NAME</code> environment variable:</p> +<pre>BUILD_APP_NAME=calendar ./build.sh gaia</pre> +<p>To get a list of the modules you can build, you can do:</p> +<pre>./build.sh modules +</pre> +<h3 id="Setting_the_number_of_processor_cores_to_use">Setting the number of processor cores to use</h3> +<p>By default, the B2G build scripts use the number of cores your system has plus two as the number of parallel tasks to run. You can change this by specifying the <code>-j</code> parameter when running <code>build.sh</code>. This can be handy if you're using your system for other things while building in the background and need to reduce CPU load a bit. It's also handy when you're having build problems, as it can make reading error output from the build process easier if you have just one task going at a time!</p> +<p>For example, to build using just two parallel tasks:</p> +<pre>./build.sh -j2 +</pre> +<p>The most common use case for this, however, is to prevent builds from running in parallel at all. This makes the output of the process much easier to read, making it easier to sort out build problems. To do this:</p> +<pre>./build.sh -j1 +</pre> +<h3 id="Building_multilocale">Building multilocale</h3> +<p>To create a multilocale build, do the following:</p> +<h4 id="Gaia">Gaia</h4> +<ol> + <li>Determine which Gaia languages file to use. We're currently using <a href="https://github.com/mozilla-b2g/gaia/blob/master/locales/languages_dev.json"><code>locales/languages_dev.json</code></a> and <a href="https://github.com/mozilla-b2g/gaia/blob/master/locales/languages_all.json"><code>locales/languages_all.json</code></a> as our Gaia languages files.</li> + <li>Clone the appropriate locales from <a href="http://hg.mozilla.org/gaia-l10n">http://hg.mozilla.org/gaia-l10n</a> into a directory; we use <code>gaia-l10n/</code>. You could use the <code>locales/</code> directory . You'll need to clone a repo for each locale listed in the languages file.</li> + <li>In your environment, set <code>LOCALE_BASEDIR</code> to the absolute path of the directory in step 2. Set <code>LOCALES_FILE</code> to the absolute path of the file in step 1.</li> + <li>Also, you can set a <code>GAIA_DEFAULT_LOCALE</code> if you want to set a default locale.</li> +</ol> +<pre style="font-size: 12px;">cd gaia/locales/ +hg clone https://hg.mozilla.org/releases/gaia-l10n/v1_2/es</pre> +<div> + Set your environment variables:</div> +<div> + </div> +<pre>export LOCALE_BASEDIR=$PWD/locales +export LOCALES_FILE=$PWD/locales/languages_dev.json +export GAIA_DEFAULT_LOCALE=es +</pre> +<p>And the <code>languages-dev.json</code> could be replaced by your own <code>languages-own.json</code> path, which could formed like this. <span style="line-height: 1.5;">You would need to add an entry per each repo cloned in your locales directory.</span><span style="line-height: 1.5;">:</span></p> +<pre>{ + "en-US" : "English (US)", + "es" : "Español" +} +</pre> +<div> + <p>Since bug 884752 landed (November 2013), to add keyboard layouts (if available in Gaia), you can use parameter GAIA_KEYBOARD_LAYOUTS. </p> + <p>Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=884752</p> + <p>Layouts: https://github.com/mozilla-b2g/gaia/tree/v1.2/keyboard/layouts</p> + <p>For example, to add Spanish and Italian keyboard layout, run the previous command adding</p> + <pre> GAIA_KEYBOARD_LAYOUTS=en,es,it</pre> + <p><span style="line-height: 1.5;">At this point you're ready to flash Gaia to the phone for the first time. Connect the phone and make sure Remote Debugging is checked in Settings > Device Information > More Information > Developer. You only need to do this once, for your own build of Gaia will have that pref turned on thanks to REMOTE_DEBUGGER=1:</span></p> + <pre> make clean && make production LOCALES_FILE=locales/languages-own.json</pre> + <div class="note"> + <p>If you want to clone and/or update all supported locales for a particular branch, you can use <a href="https://gist.github.com/TheoChevalier/254461892d8bf118e1bc">this script</a></p> + </div> + <h4 id="Gecko">Gecko</h4> + <ol> + <li>Determine which Gecko languages file to use. We're currently using <a href="http://hg.mozilla.org/releases/mozilla-b2g18/file/default/b2g/locales/all-locales">b2g/locales/all-locales</a> as our Gecko languages file.</li> + <li>Clone the appropriate locales into a directory; this can be <code>gecko-l10n/</code> . + <ul> + <li>For mozilla-central, use <a href="http://hg.mozilla.org/l10n-central/">http://hg.mozilla.org/l10n-central/</a></li> + <li>For mozilla-aurora, use <a href="http://hg.mozilla.org/releases/l10n/mozilla-aurora/">http://hg.mozilla.org/releases/l10n/mozilla-aurora/</a></li> + <li>For mozilla-beta or mozilla-b2g18 or mozilla-b2g26_v1_2, use <a href="http://hg.mozilla.org/releases/l10n/mozilla-beta/">http://hg.mozilla.org/releases/l10n/mozilla-beta/</a></li> + </ul> + </li> + <li>Clone <a href="http://hg.mozilla.org/build/compare-locales">compare-locales</a>.</li> + <li> + <p>In your environment, set <code>L10NBASEDIR</code> to the absolute path of the directory in step 2. Set <code>MOZ_CHROME_MULTILOCALE</code> to a string of space-delimited locales from step 1.</p> + <p>Add the <code>compare-locales/scripts</code> dir to your <code>PATH</code>, and <code>compare-locales/lib</code> to your <code>PYTHONPATH</code>.</p> + For instance, + <pre>export L10NBASEDIR=$PWD/gecko-l10n +export MOZ_CHROME_MULTILOCALE="ja zh-TW" +export PATH="$PATH:$PWD/compare-locales/scripts" +export PYTHONPATH="$PWD/compare-locales/lib" +</pre> + <p>Once you have the above set up, you can run build.sh.</p> + <p>You can <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=818560#c9/">use .userconfig</a> as well:</p> + <pre>## Gaia +export GAIA_DEFAULT_LOCALE=es +export LOCALE_BASEDIR=/b2g/gaia-l10n-transifex-v1.2/ +export LOCALES_FILE=/b2g/languages_propio.json + +## Gecko +export L10NBASEDIR='/b2g/gecko-l10n-v1.2' +export MOZ_CHROME_MULTILOCALE="es-ES eu ca gl pt-BR" +export PATH="$PATH:/b2g/compare-locales/scripts" +export PYTHONPATH="/b2g/compare-locales/lib" + </pre> + </li> + </ol> + <div class="note"> + <p>There are some mappings between Gaia languages and Gecko ones. For example, in Gaia, Spanish is "es", but on Gecko is tranlated to "Spanish of Spain" (es-ES)</p> + </div> + <p>These instructions may change as we smooth things out.</p> + <h2 id="Known_errors">Known errors</h2> + <h3 id="Build_failed!">"Build failed!"</h3> + <p><span id="cke_bm_81S" style="display: none;"> </span>If you get a general "Build failed" message, you should always try reconnecting your phone to your computer; sometimes the phone can become unmounted for a variety of reasons.</p> + <div class="note"> + <p><strong>Note that configuring and building B2G for Keon DOESN'T WORK on Mac</strong>. You'll need to use Linux to build for this device.<span id="cke_bm_81E" style="display: none;"> </span></p> + </div> + <h3 id="Mountain_Lion-specific_build_errors">Mountain Lion-specific build errors</h3> + <div> + <p>1. If you are building on OS X 10.8 "Mountain Lion" (Xcode 4.4.1 or later) and encounter the following error:</p> + <pre style="font-size: 14px;">external/qemu/android/skin/trackball.c:130:25: error: 'M_PI' undeclared (first use in this function)</pre> + Edit the file: <code style="font-size: 14px;">B2G/external/qemu/Makefile.android</code> and add in line 78:<br> + <pre style="font-size: 14px;">MY_CFLAGS += -DM_PI=3.14159265358979323846264338327950288 #/* B2G_fix: not finding M_PI constant */ +</pre> + </div> + <div> + 2. If you are on Mountain Lion and you receive an error during ./build.sh like:</div> + <div> + <pre>/System/Library/Frameworks/IOKit.framework/Headers/usb/USB.h:797:9: error: too many #pragma options align=reset</pre> + <p>Replace all instances of '#pragma options align=reset' with '#pragma pack()' inside /System/Library/Frameworks/IOKit.framework/Headers/usb/USB.h</p> + </div> + <h3 id="Undefined_symbols__sqlite3_androidopt_handle_pragma_and__sqlite3_androidopt_open">Undefined symbols "_sqlite3_androidopt_handle_pragma" and "_sqlite3_androidopt_open"</h3> + <p>This error appears if you are building on OS X 10.7 or newer with Xcode 4.5 or newer. To fix this, apply the patch at <a href="https://groups.google.com/forum/#!msg/android-building/yAfPyUqCsiQ/7zvICk4GWjYJ">https://groups.google.com/forum/#!msg/android-building/yAfPyUqCsiQ/7zvICk4GWjYJ</a> to the external/sqlite/dist/Android.mk file.</p> + <h3 id="KeyedVector.h19331_error_indexOfKey_was_not_declared_in_this_scope">KeyedVector.h:193:31: error: indexOfKey was not declared in this scope</h3> + <p>This error appears when your gcc version is too recent. Install gcc/g++/g++-multilib 4.6.x versions. See <a href="/en-US/docs/Mozilla/Firefox_OS/Customization_with_the_.userconfig_file" title="Mozilla/Firefox_OS/Customization_with_the_.userconfig_file">Customizing with the .userconfig file</a> for more information.</p> + <div class="note"> + <p><strong>Community Note:</strong> It is possible to use gcc 4.7.x with slight modifications to the B2G code (gcc will guide you) but you won't get any help! Neither with modifying the code nor with bugs you encounter.</p> + </div> + <h3 id="arm-linux-androideabi-g_Internal_error_Killed_program_cc1plus">arm-linux-androideabi-g++: Internal error: Killed (program cc1plus)</h3> + <p>If you see this message, it most likely means that free memory is lacking. Ensure there is enough free memory before running <code>./build.sh</code>. It should run fine if your system has 4GB of RAM.</p> + <h3 id="...is_referenced_by_DSO_error">"...is referenced by DSO" error</h3> + <p>While building the emulator, if you get /usr/bin/ld: out/host/linux-x86/obj/EXECUTABLES/triangleCM_intermediates/triangleCM: hidden symbol `_XGetRequest' in out/host/linux-x86/obj/STATIC_LIBRARIES/libSDL_intermediates/libSDL.a(SDL_x11dyn.o) is referenced by DSO.</p> + <p>You can get this with some versions in binutils. If you run Debian Stable, you can use the <em>gold</em> linker by installing the package <code>binutils-gold</code>. Note that the <em>gold</em> linker is already installed by <code>binutils</code>, but it's not used by default; <code>binutils-gold</code> does just that.</p> + <h3 id="If_you_get_build_errors_while_the_build_system_is_running_tests">If you get build errors while the build system is running tests</h3> + <p>Sometimes (especially after build tool or operating system updates) you'll get weird errors like this when the build system runs its post-build tests:</p> + <pre>Generating permissions.sqlite... +test -d profile || mkdir -p profile +run-js-command permissions +WARNING: permission unknown:offline-app +WARNING: permission unknown:indexedDB-unlimited +build/permissions.js:122: NS_ERROR_UNEXPECTED: Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIPermissionManager.add] +make[1]: *** [permissions] Error 3 +make: *** [gaia/profile.tar.gz] Error 2</pre> + <p>In this situation, try deleting the <code>gaia/xulrunner-sdk</code> directory and re-pulling the code:</p> + <pre>rm -r gaia/xulrunner-sdk +</pre> + <p>This deletes the downloaded, precompiled copy of <a href="/en-US/docs/XULRunner" title="/en-US/docs/XULRunner">XULRunner</a> that the build system retrieves automatically; on your next build, a new copy of XULRunner will be automatically retrieved.</p> + <h3 id="Cannot_fetch_platformlibcore">Cannot fetch platform/libcore</h3> + <p>If you tried to configure your B2G build for Nexus S (<code>./config.sh nexus-s</code>) and got an error related to libcore, it is because of a problem with the linaro git that feeds into this. To fix this, checkout the B2G manifest like so:</p> + <pre class="brush: bash">git clone https://github.com/mozilla-b2g/b2g-manifest.git</pre> + <p>Edit the <code>nexus-s.xml</code> file in this repo, replacing the linaro git entry with a reference to the aosp entry, which should read like so:</p> + <pre class="brush: xml"><default revision="refs/tags/android-4.0.4_r1.2" + remote="aosp" + sync-j="4" /></pre> + <p>Commit these changes (<code>git commit -a</code>) and then change the <code>config.sh</code> file in the master branch of the main B2G repo that you checked out to point to your modified local manifest instead of the Mozilla one:</p> + <pre class="brush: bash">GITREPO=${GITREPO:-"file:///home/path/to/my/b2g-manifest"}</pre> + <h3 id="clang_errors_when_building_with_Xcode_5_on_Mac">clang errors when building with Xcode 5 on Mac</h3> + <p>If you are building on Mac OS X 10.8 with Xcode 5, you will likely see errors like the following:</p> + <pre class="brush: bash">clang: error: argument unused during compilation: '-include system/core/include/arch/darwin-x86/AndroidConfig.h' +clang: error: argument unused during compilation: '-U DEBUG' +clang: error: argument unused during compilation: '-U DEBUG' +clang: error: argument unused during compilation: '-MF out/host/darwin-x86/obj/EXECUTABLES/obbtool_intermediates/Main.d' +make: *** [out/host/darwin-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o] Error 1</pre> + <p>This is because Xcode 5 changes the g++ compiler in <code>/usr/bin</code>, which breaks the build process if you try to use it to compile. In order to work around the problem, edit the following line in <code>build/core/combo/HOST_darwin-x86.mk:</code></p> + <pre class="brush: bash">HOST_CXX := g++</pre> + <p>to</p> + <pre class="brush: bash">HOST_CXX := g++-4.6 +ifeq (,$(wildcard /usr/local/bin/g++-4.6)) + HOST_CXX := g++ +endif</pre> + <p>Next, you'll want to uninstall gcc, using brew (this assumes you've run the <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_build_prerequisites#Run_Firefox_OS_Mac_Bootstrap">Mac OS bootstrap script</a> — if not, you'll need to complete that step before continuing):</p> + <pre class="brush: bash">brew uninstall gcc-4.6</pre> + <p>Now reinstall gcc with multilib and c++ support:</p> + <pre class="brush: bash">brew install --enable-cxx https://gist.github.com/artlogic/6988658/raw/aeb9d1ea098274ad3f3fe2637b9df7f308a8a120/gcc-4.6.rb</pre> + <p>Make sure /usr/local/bin is on your PATH. You can do this temporarily by typing the following into the command prompt:</p> + <pre class="brush: bash">export PATH=/usr/local/bin:$PATH</pre> + <p>You can make the above change permanent by adding it to the <code>.bash_profile</code> file in your home directory.</p> + <p>After you've set your PATH, make sure you can run both of the following commands:</p> + <pre class="brush: bash">gcc-4.6 -v + +g++-4.6 -v</pre> + <p>If either of these commands fail, you may need to relink your gcc using brew with the following command:</p> + <pre class="brush: bash">brew link --overwrite gcc-4.6</pre> + <p>It's also possible that <code>/usr/bin/c++</code> is not pointing at clang++ as it should be with Xcode 5 installed. You can determine if it is by typing the following:</p> + <pre class="brush: bash">ls -l /usr/bin/c++</pre> + <p>It should return something that looks like this:</p> + <pre class="brush: bash">lrwxr-xr-x 1 root admin 7 Sep 19 11:40 /usr/bin/c++ -> clang++ +</pre> + <p>If c++ is pointing at something other than clang++, update it with the following commands:</p> + <pre class="brush: bash">sudo rm /usr/bin/c++ + +sudo ln -s /usr/bin/clang++ /usr/bin/c++</pre> + <h3 id="Cannot_pull_files_from_backup_directory">Cannot pull files from backup directory</h3> + <p>This could happen when the USB connection is broken while the script pulls data from device to computer.</p> + <p>When you run the script again, you'll probably get the following (the example is for the Peak device):</p> + <pre class="brush: bash"><code>Pulling files from ../../../backup-peak +cat: ../../../backup-peak/system/build.prop: No such file or directory +Found firmware with build ID +Pulling "libaudioeq.so" +cp: cannot stat `../../../backup-peak/system/lib/libaudioeq.so': No such file or directory +Failed to pull libaudioeq.so. Giving up. + +> Build failed! < + +Build with |./build.sh -j1| for better messages +If all else fails, use |rm -rf objdir-gecko| to clobber gecko and |rm -rf out| to clobber everything else.</code></pre> + <p>To solve this, it is not necessary to remove the whole objdir-gecko or out directories. Just remove the backup directory, like this (for the example above):</p> + <pre class="brush: bash"><code class="brush: bash">$rm -rf backup-peak</code></pre> + <h3 id="Emulator_build_issues"><strong>Emulator build issues</strong></h3> + <p>If you are making an <strong>emulator</strong> build, you need to pay attention to these issues:</p> + <div class="note"> + <p><strong>First, note that you shouldn't use the x86 emulator — it is hard to install and not well supported.</strong></p> + </div> + <p>Next, the build-system for the emulator builds both 32bit and 64bit versions of the emulator. As the emulator depends on OpenGL, this means that you need to have both 32bit and 64bit versions of OpenGL libraries installed on your system. See the discussion in <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=897727" title="https://bugzilla.mozilla.org/show_bug.cgi?id=897727">bug 897727</a>.</p> + <p>There are two ways that you can solve this problem:</p> + <h4 id="Solution_1_have_both_32bit_and_64bit_OpenGL_libs_installed_with_the_right_symlinks">Solution #1: have both 32bit and 64bit OpenGL libs installed, with the right symlinks</h4> + <p>If your linux distro has multilib packages for OpenGL libraries, you can attempt installing them. You might then have to manually create some symlinks.</p> + <p>For example, here is the situation on Ubuntu 12.04 LTS x86-64. On this distribution, the <code>libgl1-mesa-dev</code> package cannot be installed simultaneously in x86-64 and i386 versions, but you can have the following combination of packages simultaneously installed:</p> + <pre class="bz_comment_text" id="comment_text_12">sudo apt-get install libgl1-mesa-dev libglapi-mesa:i386 libgl1-mesa-glx:i386</pre> + <p>After having run this command, you will still have to manually create some symlinks for the emulator build to succeed:</p> + <pre class="note">sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so +sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so</pre> + <h4 id="Solution_2_just_patch_the_emulator_so_it_only_builds_64bit">Solution #2: just patch the emulator so it only builds 64bit</h4> + <p>Just apply <a href="https://bug897727.bugzilla.mozilla.org/attachment.cgi?id=786280" title="https://bug897727.bugzilla.mozilla.org/attachment.cgi?id=786280">this patch</a> to the sdk/ git repository under the B2G repo. This will cause the B2G emulator to only attempt to build the 64bit emulator if you're on a 64bit system, thus avoiding any multilib issues. The 32bit emulator is unused anyway on a 64bit system. This is the simplest solution, until this patch eventually bit-rots.</p> + <h2 id="Next_steps">Next steps</h2> + <p>After building, your next step depends on whether you built Boot to Gecko for the emulator or for a real mobile device; see the following articles for details:</p> + <ul> + <li><a href="/en-US/docs/Mozilla/Firefox_OS/Using_the_B2G_emulators" title="Mozilla/Firefox_OS/Using_the_B2G_emulators">Using the B2G emulators</a></li> + <li><a href="/en-US/docs/Mozilla/Firefox_OS/Using_the_B2G_desktop_client" title="Mozilla/Firefox_OS/Using_the_B2G_desktop_client">Using the B2G desktop client</a></li> + <li><a href="/en-US/docs/Mozilla/Firefox_OS/Installing_on_a_mobile_device" title="Mozilla/Firefox_OS/Installing_on_a_mobile_device">Installing Boot to Gecko on a mobile device</a></li> + <li><a href="/en-US/docs/Mozilla/Firefox_OS/Pandaboard" title="Mozilla/Firefox_OS/Pandaboard">Installing Boot to Gecko on a pandaboard</a></li> + </ul> +</div> +<h3 id="Submitting_bugs_on_B2GFirefox_OSGaia">Submitting bugs on B2G/Firefox OS/Gaia</h3> +<p>Once you've got a B2G/Firefox OS build running, you'll probably want to start to file bugs against this specific version, so the Firefox OS community can improve things as effectively as possible. You'll want to <a href="https://bugzilla.mozilla.org/enter_bug.cgi?product=Firefox%20OS">file the bug on Bugzilla</a>, under the "Firefox OS" project, but you should include version specifics:</p> +<ol> + <li>To start with, tell us the major version number, e.g. <em>1.4.0.0-prerelease</em>. This can be found on the device under <em>Settings > Device Information</em>.</li> + <li>You can provide more specific version identifiers by returning the current hashes from the gaia and gecko repositories. This can be done like so: + <pre class="brush: bash">#!/bin/bash +(cd gaia; echo "gaia $(git rev-parse HEAD)") +(cd gecko; echo "gecko $(git rev-parse HEAD)")</pre> + </li> +</ol> diff --git a/files/de/archive/b2g_os/building_and_installing_firefox_os/compatible_devices/index.html b/files/de/archive/b2g_os/building_and_installing_firefox_os/compatible_devices/index.html new file mode 100644 index 0000000000..ea95805479 --- /dev/null +++ b/files/de/archive/b2g_os/building_and_installing_firefox_os/compatible_devices/index.html @@ -0,0 +1,357 @@ +--- +title: Kompatible Geräte +slug: Archive/B2G_OS/Building_and_installing_Firefox_OS/Compatible_Devices +translation_of: Archive/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices +--- +<div class="note"> +<p><strong>Install B2G OS in you device easily</strong> with <a href="/en-US/docs/Mozilla/Firefox_OS/Building_and_installing_Firefox_OS/B2G_installer_add-on">B2G installer </a>- a Firefox Add-on.</p> +</div> + +<div class="note"> +<p><strong>Note</strong>: All devices have the <strong>recommended build target below its name</strong> (see <strong>nickname or codenames</strong>). For example to build for Nexus 6 do <code>./build.sh nexus-6-l</code>.<span class="rendered_qtext"> Device codenames where given directly by manufacturers. You can find it in <code>build.prop</code> file of a stock ROM.</span></p> +</div> + +<h2 id="Development_Devices">Development Devices</h2> + +<p>These devices are official reference devices for developing B2G OS.</p> + +<table class="standard-table" style="height: 380px; width: 680px;"> + <tbody> + <tr> + <td style="text-align: center;"><strong>Image</strong></td> + <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/13384/Z3C_B2G.png" style="height: 154px; width: 133px;"></td> + <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12039/generic.png" style="max-width: 133px;"></td> + <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12039/generic.png" style="max-width: 133px;"></td> + </tr> + <tr> + <td style="text-align: center;"><strong>Name<br> + (Android version)</strong></td> + <td style="text-align: center;"><strong>Z3 Compact (Kitkat)</strong><br> + Sony Shinano platform</td> + <td style="text-align: center;"><strong>Z3</strong> <strong>(Kitkat)</strong><br> + Sony Shinano platform</td> + <td style="text-align: center;"><strong>Flame (Kitkat)</strong></td> + </tr> + <tr> + <td style="text-align: center;"><strong>Nickname</strong></td> + <td style="text-align: center;">aries-kk</td> + <td style="text-align: center;">leo-kk</td> + <td style="text-align: center;">flame-kk</td> + </tr> + <tr> + <td style="text-align: center;"><strong>Build and installation information</strong></td> + <td style="text-align: center;"><a href="https://discourse.mozilla-community.org/t/building-b2g-os-for-aries-z3c/8082">https://discourse.mozilla-community.org/t/building-b2g-os-for-aries-z3c/8082</a></td> + <td style="text-align: center;"> </td> + <td style="text-align: center;"><a href="https://discourse.mozilla-community.org/t/flame-builds/8548">https://discourse.mozilla-community.org/t/flame-builds/8548</a></td> + </tr> + <tr> + <td style="text-align: center;"><strong>Available in B2G Installer</strong></td> + <td style="text-align: center;">Yes</td> + <td style="text-align: center;">No</td> + <td style="text-align: center;">Yes</td> + </tr> + </tbody> +</table> + +<h2 id="Community_Supported_Devices">Community Supported Devices</h2> + +<p>Those devices are supported by community efforts. Feel free to help them !</p> + +<div class="note"> +<p><strong>Builds distribution frequency may vary</strong> depending of maintainers number and time available.</p> +</div> + +<h3 id="Working_devices">Working devices</h3> + +<p>These devices have builds available running B2G OS :</p> + +<table class="standard-table" style="height: 380px; width: 355px;"> + <tbody> + <tr> + <td style="text-align: center;"><strong>Image</strong></td> + <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12039/generic.png" style="max-width: 133px;"></td> + <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12035/nexus5.png" style="max-width: 133px;"></td> + <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/13665/WileyFoxSwift_B2G.png" style="height: 157px; width: 79px;"></td> + <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12039/generic.png" style="max-width: 133px;"></td> + </tr> + <tr> + <td style="text-align: center;"><strong>Name<br> + (Android version)</strong></td> + <td style="text-align: center;"><strong>ZTE Open C</strong></td> + <td style="text-align: center;"><strong>Nexus 5</strong></td> + <td style="text-align: center;"><strong>WileyFox Swift</strong></td> + <td style="text-align: center;"><strong>Fairphone 2</strong></td> + </tr> + <tr> + <td style="text-align: center;"><strong>Nickname</strong></td> + <td style="text-align: center;">openc-fr / openc-ebay</td> + <td style="text-align: center;"> </td> + <td style="text-align: center;"> </td> + <td style="text-align: center;"> </td> + </tr> + <tr> + <td style="text-align: center;"><strong>Build and installation information</strong></td> + <td style="text-align: center;"><a href="https://discourse.mozilla-community.org/t/zte-open-c/8402/">https://discourse.mozilla-community.org/t/zte-open-c/8402/</a></td> + <td style="text-align: center;"> + <p><a href="https://discourse.mozilla-community.org/t/test-b2gos-on-nexus-5/9405/1">https://discourse.mozilla-community.org/t/test-b2gos-on-nexus-5/9405/1</a></p> + </td> + <td style="text-align: center;"> </td> + <td style="text-align: center;"> + <p><a href="https://discourse.mozilla-community.org/t/fairphone-2-build/8641/">https://discourse.mozilla-community.org/t/fairphone-2-build/8641/</a><br> + <a href="https://discourse.mozilla-community.org/t/fairphone-2-support-for-b2g-installer-landed/8334">https://discourse.mozilla-community.org/t/fairphone-2-support-for-b2g-installer-landed/8334</a></p> + </td> + </tr> + <tr> + <td style="text-align: center;"><strong>Available in B2G Installer</strong></td> + <td style="text-align: center;"> + <p>No</p> + + <p>(but a buildbot is available)</p> + </td> + <td style="text-align: center;">Yes</td> + <td style="text-align: center;">Yes</td> + <td style="text-align: center;">Not yet, but almost done. Blobfull build working.</td> + </tr> + </tbody> +</table> + +<h3 id="Work_in_progress">Work in progress</h3> + +<p>Work is going on to support these devices :</p> + +<table class="standard-table" style="height: 380px; width: 680px;"> + <tbody> + <tr> + <td style="text-align: center;"><strong>Image</strong></td> + <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12025/flamingo.png" style="max-width: 133px;"></td> + <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12017/amami.png" style="max-width: 133px;"></td> + <td style="text-align: center;"> </td> + </tr> + <tr> + <td style="text-align: center;"><strong>Name<br> + (Android version)</strong></td> + <td style="text-align: center;"><strong>E3</strong><br> + Sony Yukon platform</td> + <td style="text-align: center;"><strong>Z1 Compact (Lollipop)</strong><br> + Sony Rhine platform</td> + <td style="text-align: center;"><strong>Xiaomi Redmi 1S</strong></td> + </tr> + <tr> + <td style="text-align: center;"><strong>Nickname</strong></td> + <td style="text-align: center;">flamingo-l</td> + <td style="text-align: center;">amami-l</td> + <td style="text-align: center;">armani</td> + </tr> + <tr> + <td style="text-align: center;"><strong>Build and installation information</strong></td> + <td style="text-align: center;"><a href="https://discourse.mozilla-community.org/t/b2g-os-flamingo-sony-xperia-e3-builds/8361">https://discourse.mozilla-community.org/t/b2g-os-flamingo-sony-xperia-e3-builds/8361</a></td> + <td style="text-align: center;"><a href="https://discourse.mozilla-community.org/t/support-for-amami-xperia-z1c-building-debugging-providing-builds/8348">https://discourse.mozilla-community.org/t/support-for-amami-xperia-z1c-building-debugging-providing-builds/8348</a></td> + <td style="text-align: center;"><a href="https://discourse.mozilla-community.org/t/wip-xiaomi-redmi-1s-hongmi-1s/10273">https://discourse.mozilla-community.org/t/wip-xiaomi-redmi-1s-hongmi-1s/10273</a></td> + </tr> + <tr> + <td style="text-align: center;"><strong>Support status</strong></td> + <td style="text-align: center;">Blocked, problem with flashing tools</td> + <td style="text-align: center;">Early building tests</td> + <td style="text-align: center;">Early building tests</td> + </tr> + </tbody> +</table> + +<h2 id="Devices_with_porting_possibilities">Devices with porting possibilities</h2> + +<p>This is a (<em>non-exhaustive</em>) list of devices with porting <em>potential</em>, thanks to available AOSP or Cyanogen Mod version, or because they supported Firefox OS until version 2.6.</p> + +<div class="note"> +<p><strong>Note:</strong> There aren't currently any ports for these phones, but it is possible to build B2G OS. See<a href="/en-US/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS"> how to build</a> section for more info. You are welcome to maintain these builds.</p> +</div> + +<h3 id="Nexus_Devices">Nexus Devices</h3> + +<p>These devices are (almost) automatically supported by B2G OS because they are Google's reference devices for AOSP.</p> + +<table class="standard-table" style="height: 282px; line-height: 1.5; width: 451px;"> + <tbody> + <tr> + <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12037/nexus6.png" style="max-width: 133px;"></td> + <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12033/nexus4.png" style="max-width: 133px;"></td> + </tr> + <tr> + <td style="text-align: center;"><strong>Nexus 6</strong></td> + <td style="text-align: center;"><strong>Nexus 4</strong></td> + </tr> + <tr> + <td style="text-align: center;"> </td> + <td style="text-align: center;"> </td> + </tr> + </tbody> +</table> + +<h3 id="Sony_Devices">Sony Devices</h3> + +<p>These devices use Sony Mobile's Open Devices initiative, which aims to support all modern Xperia devices in AOSP.</p> + +<p>These devices are built on a Lollipop AOSP base.</p> + +<div class="note"> +<p>Right now most of the Sony devices are missing camera support. This depends on work in progress by Sony developers.<br> + Also, we need contributors to maintain these ports.</p> +</div> + +<p>Devices where support for B2G OS is ongoing are not listed here.</p> + +<h4 id="Sony_Shinano_Platform">Sony Shinano Platform</h4> + +<table class="standard-table"> + <tbody> + <tr> + <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12007/leo.png" style="max-width: 133px;"></td> + <td style="text-align: center;"> </td> + <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12011/scorpion.png" style="max-width: 133px;"></td> + <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12013/sirius.png" style="max-width: 133px;"></td> + </tr> + <tr> + <td style="text-align: center;"><strong>Z3</strong></td> + <td style="text-align: center;"> </td> + <td style="text-align: center;"><strong>Z3 Tablet Compact</strong></td> + <td style="text-align: center;"><strong>Z2</strong></td> + </tr> + <tr> + <td style="text-align: center;">leo-l</td> + <td style="text-align: center;"> </td> + <td style="text-align: center;">scorpion-l</td> + <td style="text-align: center;">sirius-l</td> + </tr> + </tbody> +</table> + +<dl> +</dl> + +<h4 id="Sony_Rhine_Platform">Sony Rhine Platform</h4> + +<div class="note"> +<p>Rhine devices use a legacy NFC chip so this feature is currently missing. See <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1226720">bug 1226720 </a>We need contributors to maintain these ports.</p> +</div> + +<table class="standard-table"> + <tbody> + <tr> + <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12015/honami.png" style="max-width: 133px;"></td> + </tr> + <tr> + <td style="text-align: center;"><strong>Z1</strong></td> + </tr> + <tr> + <td style="text-align: center;">honami-l</td> + </tr> + </tbody> +</table> + +<h4 id="Sony_Yukon_Platform">Sony Yukon Platform</h4> + +<table class="standard-table"> + <tbody> + <tr> + <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12019/tianchi.png" style="max-width: 133px;"></td> + <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12021/seagull.png" style="max-width: 133px;"></td> + <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12023/eagle.png" style="max-width: 133px;"></td> + </tr> + <tr> + <td style="text-align: center;"><strong>T2 Ultra</strong></td> + <td style="text-align: center;"><strong>T3</strong></td> + <td style="text-align: center;"><strong>M2</strong></td> + </tr> + <tr> + <td style="text-align: center;">tianchi-l</td> + <td style="text-align: center;">seagull-l</td> + <td style="text-align: center;">eagle-l</td> + </tr> + </tbody> +</table> + +<h3 id="CyanogenMod_Supported_Devices"><strong>CyanogenMod Supported Devices</strong></h3> + +<p>Here be dragons! (To be completed)</p> + +<h2 id="Legacy_Devices">Legacy Devices</h2> + +<p>Some old devices are no longer maintained by the community, but it is still possible for volunteers to keep them alive (Yay Open-Source!). Feel free to contact the team previously working on these devices to get some help.</p> + +<p>No device here right now.</p> + +<h2 id="Obsolete_Devices">Obsolete Devices</h2> + +<div class="warning"> +<p>Forget about these device's support if you have one.</p> +</div> + +<p>Several old devices are no longer maintained for B2G OS , and we do not have a community to keep them alive. The current status of these devices is unknown, which probably means they cannot be built on B2G OS master branches.</p> + +<table class="standard-table"> + <tbody> + <tr> + <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12069/peak.png" style="max-width: 133px;"></td> + <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12067/keon.png" style="max-width: 133px;"></td> + <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12071/inari.png" style="max-width: 133px;"></td> + <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12077/hamachi.png" style="max-width: 133px;"></td> + </tr> + <tr> + <td style="text-align: center;"><strong>Geeksphone Peak</strong></td> + <td style="text-align: center;"><strong>Geeksphone Keon</strong></td> + <td style="text-align: center;"><strong>ZTE Open</strong></td> + <td style="text-align: center;"><strong>TCL Fire</strong></td> + </tr> + <tr> + <td style="text-align: center;">peak</td> + <td style="text-align: center;">keon</td> + <td style="text-align: center;">inari</td> + <td style="text-align: center;">hamachi</td> + </tr> + </tbody> +</table> + +<table class="standard-table"> + <tbody> + <tr> + <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12083/galaxy-s2.png" style="max-width: 133px;"></td> + <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12085/galaxy-nexus.png" style="max-width: 133px;"></td> + <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12087/nexus-s.png" style="max-width: 133px;"></td> + <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12087/nexus-s.png" style="max-width: 133px;"></td> + </tr> + <tr> + <td style="text-align: center;"><strong>Samsung Galaxy S2</strong></td> + <td style="text-align: center;"><strong>Galaxy Nexus</strong></td> + <td style="text-align: center;"><strong><a href="/en-US/docs/Mozilla/Firefox_OS/Samsung_Nexus_S">Nexus S</a></strong></td> + <td style="text-align: center;"><strong><a href="/en-US/docs/Mozilla/Firefox_OS/Samsung_Nexus_S">Nexus S 4G</a></strong></td> + </tr> + <tr> + <td style="text-align: center;">galaxy-s2</td> + <td style="text-align: center;">galaxy-nexus</td> + <td style="text-align: center;">nexus-s</td> + <td style="text-align: center;">nexus-s-4g</td> + </tr> + </tbody> +</table> + +<table class="standard-table"> + <tbody> + <tr> + <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12073/flatfish.png" style="max-width: 133px;"></td> + <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12075/vixen.png" style="max-width: 133px;"></td> + <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12079/pandaboard.png" style="max-width: 133px;"></td> + <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12081/rpi.png" style="max-width: 133px;"></td> + </tr> + <tr> + <td style="text-align: center;"><strong>Foxconn InFocus</strong></td> + <td style="text-align: center;"><strong>Via Vixen</strong></td> + <td style="text-align: center;"><strong><a href="/en-US/Firefox_OS/Pandaboard">Pandaboard</a></strong></td> + <td style="text-align: center;"><strong>Raspberry Pi</strong></td> + </tr> + <tr> + <td style="text-align: center;">flatfish</td> + <td style="text-align: center;">vixen</td> + <td style="text-align: center;">pandaboard</td> + <td style="text-align: center;">rpi</td> + </tr> + </tbody> +</table> diff --git a/files/de/archive/b2g_os/building_and_installing_firefox_os/firefox_os_build_overview/index.html b/files/de/archive/b2g_os/building_and_installing_firefox_os/firefox_os_build_overview/index.html new file mode 100644 index 0000000000..56422c4cf6 --- /dev/null +++ b/files/de/archive/b2g_os/building_and_installing_firefox_os/firefox_os_build_overview/index.html @@ -0,0 +1,155 @@ +--- +title: 'Firefox OS Build Prozess: Übersicht' +slug: Archive/B2G_OS/Building_and_installing_Firefox_OS/Firefox_OS_build_overview +tags: + - Firefox OS + - build + - install +translation_of: Archive/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary +--- +<div class="summary"> +<p>Firefox OS zu kompilieren und zu installieren erfordert eine erhebliche Menge Zeit, Netzwerkbandbreite und Rechenleistung. Leider können auch Dinge schiefgehen. Dieser Artikel beschreibt die Ziele und Schritte des Build-Prozesses, um Benutzern während der Firefox OS Installation zu helfen. Details der einzelnen Schritte werden in den verlinkten Seiten erläutert.</p> +</div> + +<div class="note"> +<p><strong style="font-weight: bold;">Anmerkung:</strong> Der Firefox OS Build Prozess ist voll von Bezügen zu 'B2G' oder 'Boot2Gecko'. 'Boot2Gecko' war der ursprüngliche Codename des Firefox OS Projekts.</p> +</div> + +<h2 id="Das_Ziel_vier_'image'-Dateien">Das Ziel: vier 'image'-Dateien</h2> + +<p>Der grundsätzliche Zweck des Build Prozesses ist es vier Dateien zu erzeugen, die auf das Firefox OS-Gerät kopiert werden können.</p> + +<table style="margin: 4px auto; vertical-align: top; width: 90%;"> + <tbody> + <tr> + <td><strong>boot.img</strong></td> + <td>Der Linux-Kernel und ein Image des root-Dateisystems, wobei letzteres ein Set von grundlegenden UNIX-Tools zur Verfügung stellt.</td> + </tr> + <tr> + <td><strong>system.img</strong></td> + <td>Der Kern von Firefox OS inklusive einiger Teile von Gonk, der Portierung von Gecko, und dem ausführbaren Programm b2g.</td> + </tr> + <tr> + <td><strong>userdata.img</strong></td> + <td>Das Gecko-Profil des Benutzers und die Gaia Web-Anwendungen für das Gerät.</td> + </tr> + <tr> + <td><strong>recovery.img</strong></td> + <td>Ein Linux-Kernel und ein Image des root-Dateisystems zusammen mit einem einfachen Werkzeug, um eine defekte Installation zu reparieren.</td> + </tr> + </tbody> +</table> + + +<p>Wenn diese 4 Images erzeugt wurden, können sie auf das Gerät übertragen werden.</p> + +<p>Firefox OS setzt auf dem Android Open Source Project (AOSP) auf. Die AOSP-Werkzeuge <code>adb</code> und <code>fastboot</code> bieten Möglichkeiten auf ein Gerät zuzugreifen und es zu verändern. Insbesondere kann das Kommando <code>adb reboot-bootloader</code> ein angeschlossenes Gerät dazu bringen, neu zu starten und in einem frühen Bootloaderstadium zu pausieren, während das Kommando <code>fastboot flash $partition $image</code> dazu benutzt werden kann, ein Image auf das Gerät zu kopieren.</p> + +<h3 id="Das_Boot-Image">Das Boot-Image</h3> + +<p>Das Boot-Image (<code>boot.img</code>) ist eine Kombination aus dem Linux-Kernel und einer initialen root Partition, die die grundlegenden Werkzeuge und Initialisierungs-Skripte bereit stellt. Letzteres wird für eine effektive Nutzung durch das Gerät in den Gerätespeicher kopiert und wird deshalb als "ramdisk" (RAM-Disk) bezeichnet. Das Boot-Image wird in die boot Partition des Gerätes kopiert und die Inhalte der RAM-Disk erscheinen unter dem root-Verzeichnis, wenn zur Laufzeit auf das Geräte-Dateisystem zugegriffen wird; zum Beispiel beim Ausführen von <code>adb shell</code>.</p> + +<p>Das Boot-Image richtet auch die Berechtigungen des root-Benutzers in der Datei <code>default.prop</code> im root-Verzeichnis ein.</p> + +<p>Es ist auch möglich vorhandene Boot-Images zu verändern, indem man die Datei untersucht, sie in Kernel und RAM-Disk trennt, die Inhalte der RAM-Disk extrahiert, diese ändert, das RAM-Disk-Image neu zusammenstetzt und daraus eine funktionierende boot.img-Datei erzeugt. Ein Beispiel findet man auf der <a href="http://k.japko.eu/alcatel-otf-hackers-guide-1.html">Alcatel One Touch Fire Hacking (Mini) Guide</a>-Seite.</p> + +<p>Boot-Images können vor der Installation getestet werden, indem man sie dem Gerät "unterschiebt" (sideload). Der Geräte-Start kann im Bootloader angehalten werden. Im Bootloader-Modus kann man dann mit <code>fastboot</code> von einem eigenen Boot-Image booten, indem man das Kommando <code>fastboot boot /some/path/to/boot.img</code> verwendet.</p> + +<h3 id="Das_System-Image">Das System-Image</h3> + +<p>Das System-image (<code>system.img</code>) stellt die Grundfunktionen von Firefox OS bereit:</p> + +<ul> + <li><strong>Gonk</strong>: systemnahe Komponenten des Betriebssystems</li> + <li><strong>Gecko</strong>: Laufzeitumgebung für HTML, CSS und JavaScript</li> + <li><strong>B2G</strong>: Laufzeitkomponenten des Betriebssystems</li> + <li><strong>Gaia</strong>: User Interface (UI) für Apps</li> +</ul> + +<div class="note"> +<p>Siehe <a href="https://developer.mozilla.org/de/Firefox_OS/Platform">Firefox OS platform guide</a> für nähere Informationen zur System-Architektur.</p> +</div> + +<p>Das System-Image wird in die <code>system</code> Partition des Geräts kopiert und ist im laufenden Betrieb im Verzeichnis <code>/system/</code> zu sehen wenn das Dateisystem gemountet wurde.</p> + +<div class="note"> +<p><strong>Hinweis</strong>: Das System-Image stellt zudem vom Gerät genutze Binär-Programme zur Verfügung, insbesondere den RIL (Radio Interface Layer) für die Funk-Verbindungen.</p> +</div> + +<h3 id="Das_User_Data_Image">Das User Data Image</h3> + +<p>Das User Data Image (<code>userdata.img</code>) enthält die Gaia Apps des Anwenders.</p> + +<p>Das User Data Image wird in die <code>userdata</code> Partition des Gerätes kopiert. Der Inhalt ist im laufenden Betrieb im Verzeichnis <code>/data/</code> zu sehen wenn das Dateisystem gemountet wurde. Das Verzeichnis <code>/data/b2g/</code> enthält das Mozilla Gecko Profil des Anwenders, das Verzeichnis <code>/data/local/webapps/</code> enthält die verfügbaren Apps.</p> + +<h3 id="Das_Recovery_Image">Das Recovery Image</h3> + +<p>Das Recovery Image (<code>recovery.img</code>) enthält denselben Kernel und eine vergleichbare RAM-Disk wie die Boot Image Partition. Das Recovery Image verwendet allerdings ein anderes Initialisierungs-Skript, welches dem Anwender verschiedene Recovery-Funktionen zur Verfügung stellt die mit den Tasten des Gerätes bedient werden können.</p> + +<p>Das Recovery Image wird in die <code>recovery</code> Partition des Gerätes kopiert, welche im Normalbetrieb nicht ins Dateisystem gemountet wird.</p> + +<h2 id="Der_Build_Prozess_setup_configure_build_install">Der Build Prozess: setup, configure, build, install</h2> + +<p>Build Prozess und Installation von Firefox OS bestehen aus 4 Schritten:</p> + +<table style="margin: 4px auto; vertical-align: top; width: 90%;"> + <tbody> + <tr> + <td><strong>Setup</strong></td> + <td>Bereitstellen aller für den Build Prozess benötigten Programme wie z.B. Compiler und Bibliotheken.</td> + </tr> + <tr> + <td><strong>Configure</strong></td> + <td>Download des Quellcodes und Erzeugen einer <code>configure</code> Datei welche Umgebungsvariablen definiert in denen die benötigten Pfade und Parameter gespeichert werden.</td> + </tr> + <tr> + <td><strong>Build</strong></td> + <td>Erzeugen des Gecko Anwender-Profils und der Gaia Anwendungen des Gerätes.</td> + </tr> + <tr> + <td><strong>Install</strong></td> + <td>Installieren der Dateien auf dem Gerät.</td> + </tr> + </tbody> +</table> + + +<p> </p> + +<h3 id="Setup">Setup</h3> + +<p>Die Setup-Phase ist notwendig um sicher zu stellen dass sämtliche für den Build Prozess benötigte Software zur Verfügung steht, z.B. Compiler und Build Tools.</p> + +<p>Dieser Schritt kann manuell oder per Skript durchgeführt werden. Details hierzu findest Du auf <a href="/de/Firefox_OS/Firefox_OS_build_prerequisites" title="Firefox OS build prerequisites">Firefox OS build prerequisites</a>.</p> + +<div class="note"> +<p><strong>Hinweis</strong>: Auf UNIX und UNIX-artigen Computern kann man mit dem Kommando which prüfen, ob ein für den Build Prozess benötigtes Programm vorhanden ist. Als Parameter erwartet which den Namen des benötigten Programms.</p> +</div> + +<h3 id="Configuration">Configuration</h3> + +<p>Der eigentliche Build Prozess startet mit dem Erstellen einer Kopie der Firefox OS (bzw. B2G) Software, gewöhnlich wird ein Git Clone des <code>B2G</code> Projekts erstellt. Der Schritt Configuration kopiert den gesamten benötigten Quellcode und erzeugt eine <code>config</code> Datei, welche die benötigten Installations-Parameter enthält.</p> + +<p>Ausgeführt wird dieser Schritt mit dem <code>config.sh</code> Skript. Details findest Du auf der <a href="/en-US/Firefox_OS/Preparing_for_your_first_B2G_build" title="Preparing for your first B2G build">Preparing for your first B2G build</a> Seite.</p> + +<p>Das Configure Skript benötigt einen Parameter mit dem der Gerätetyp spezifiziert wird. Diese sogenannten Code Names fliessen in den Build Namen ein und stehen für eine bestimmte CPU Architektur und nicht für ein spezielles Gerät. Momentan kann man also nicht anhand des Build Names bestimmen ob ein Build auf einem bestimmten Gerät lauffähig ist. Eine Liste der verfügbaren Code Names findest Du <a href="/de/Firefox_OS/Phone_guide/Phone_specs">hier</a>.</p> + +<p>Der Schritt Configure nutzt <code>repo</code>, ein Tool des Android Open Source Projekts, für den Download der für den Build benötigten Software. Die Software wird gespeichert im Verzeichnis <code>repo/projects</code>. Aufgrund der herunter zu ladenden Datenmenge und der durchzuführenden Schritte kann der Schritt Configure länger dauern.</p> + +<h3 id="Build">Build</h3> + +<p>Im Schritt Build wird der Quellcode kompiliert und die Image-Dateien werden erzeugt.</p> + +<p>Hierzu wurd das <code>build.sh</code> Skript ausgeführt. Details hierzu findest Du in <a href="/de/Firefox_OS/Building" title="Building">Building Firefox OS</a>.</p> + +<p>Das Skript versucht alle Quellcodes in einem Schritt zu kompilieren: Die Android Open Source Project Tools, den Linux Kernel und die Gaia Web Anwendungen. Wenn dieser Schritt fehl schlägt ist nicht immer klar, an welcher Stelle der Build ein Problem hatte.</p> + +<p>Es ist möglich, nur einzelne Komponenten des Gesamtpakets zu kompilieren. Z.B. kann Gecko einzeln kompiliert werden, indem das Build Skript mit dem <code>gecko</code> Parameter aufgerufen wird. Das gleiche gilt für Gaia, wo das Build Skript mit dem <code>gaia</code> Parameter gestartet wird. Diese Pakete können einzeln installiert werden,wie im folgenden beschrieben Abschnitt wird.</p> + +<p>Ebenso ist es möglich die oben beschriebenen Image-Dateien zu erzeugen. Z.B. kann man das System-Image mit <code>./build.sh out/platform/$target/system.img</code> erzeugen, wobei der Parameter <code>$target</code> derselbe ist wie im Schritt Configuration.</p> + +<h3 id="Install">Install</h3> + +<p>Im Schritt Install wird der neu kompilierte Code auf das Gerät kopiert. Hierzu wird das Skript <code>flash.sh</code> ausgeführt.</p> + +<p>Es können auch gezielt einzelne Komponenten des neu erstellten Build-Pakets installiert werden, indem das Flash Skript mit den entsprechenden Parametern gestartet wird . Zum Beispiel können die Gaia Web Anwendungen durch <code>./flash.sh gaia</code> installiert werden.</p> diff --git a/files/de/archive/b2g_os/building_and_installing_firefox_os/index.html b/files/de/archive/b2g_os/building_and_installing_firefox_os/index.html new file mode 100644 index 0000000000..51b1e0f6d4 --- /dev/null +++ b/files/de/archive/b2g_os/building_and_installing_firefox_os/index.html @@ -0,0 +1,45 @@ +--- +title: Erstellen und Installieren von Firefox OS +slug: Archive/B2G_OS/Building_and_installing_Firefox_OS +translation_of: Archive/B2G_OS/Building_and_installing_B2G_OS +--- +<p>B2GOS befindet sich derzeit in aktiver Entwicklung und ist daher im Status einer Vorveröffentlichung. Um sicher die aktuellste Version zu benutzen empfiehlt es sich B2GOS selbst zu erstellen und zu installieren. Die Artikel auf dieser Seite führen dich durch die Prozesse um B2GOS für den Emulator, ein kompatibles Endgerät, oder das <a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Gaia/Introduction_to_Gaia" title="Mozilla/Firefox_OS/Platform/Gaia/Introduction to Gaia">Gaia</a> Benutzer Interface im Firefox Browser, zu erstellen.</p> + +<table class="topicpage-table"> + <tbody> + <tr> + <td> + <h2 class="Documentation" id="Beschaffen_und_Erstellen_von_B2GOS">Beschaffen und Erstellen von B2GOS</h2> + + <dl> + <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_build_prerequisites" title="Mozilla/Firefox_OS/Firefox OS build prerequisites">Voraussetzungen zum Erstellen von B2GOS</a></dt> + <dd>Was du vor der Ersterstellung von B2GOS brauchst und tun musst.</dd> + <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Preparing_for_your_first_B2G_build" title="Mozilla/Firefox_OS/Preparing for your first B2G build">Vorbereitungen zum Erstellen von B2GOS</a></dt> + <dd>Um B2GOS zu erstellen müssen zuerst die Quelldaten heruntergeladen werden. Was du dazu tun musst und wie es funktioniert wird in diesem Artikel erklärt. </dd> + <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Building" title="Mozilla/Firefox_OS/Building">Erstellen von B2GOS</a></dt> + <dd>Erstellen von B2GOS für die Zielplattform.</dd> + </dl> + + <p><span class="alllinks"><a href="/en-US/docs/tag/B2G" title="tag/B2G">View All...</a></span></p> + </td> + <td> + <h2 class="Community" id="Installieren_von_B2GOS_undoder_Gaia">Installieren von B2GOS und/oder Gaia</h2> + + <dl> + <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Choosing_how_to_run_Gaia_or_B2G" title="Mozilla/Firefox_OS/Choosing how to run Gaia or B2G">Möglichkeiten B2GOS zu testen</a></dt> + <dd>Hier wird erklärt welche verschiedenen Möglichkeiten es gibt B2GOS zu testen. Ob direkt im Browser mittels Gaia, auf dem Mobiltelefon oder im Emulator? Hier kannst du dir einen Überblick über die Möglichkeiten verschaffen.</dd> + <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Using_Gaia_in_Firefox" title="Mozilla/Firefox_OS/Using Gaia in Firefox">Gaia im Browser</a></dt> + <dd>Wie man Gaia im Webbrowser testet.</dd> + <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Using_the_B2G_desktop_client" title="Mozilla/Firefox_OS/Using the B2G desktop client">B2GOS als Desktop Anwendung</a></dt> + <dd>Firefox OS kannst du in einer Desktop Anwendung die die Gaia Umgebung simuliert testen. Damit erzielst du bessere Ergebnisse als im Browser, es ist aber noch nicht so akkurat wie im Emulator.</dd> + <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Using_the_B2G_emulators" title="Mozilla/Firefox_OS/Using the B2G emulators">B2GOS im Emulator</a></dt> + <dd>Eine Anleitung zur Benutzung von B2GOS im Emulator, und eine Einführung in die Auswahl des richtigen Emulators zur entsprechenden Aufgabe.</dd> + <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Installing_on_a_mobile_device" title="Mozilla/Firefox_OS/Installing on a mobile device">B2GOS auf deinem Gerät</a></dt> + <dd>Anleitung zur Installation von B2GOS auf Mobiltelefonen.</dd> + </dl> + </td> + </tr> + </tbody> +</table> + +<p> </p> diff --git a/files/de/archive/b2g_os/debugging/developer_settings/index.html b/files/de/archive/b2g_os/debugging/developer_settings/index.html new file mode 100644 index 0000000000..1a614927b3 --- /dev/null +++ b/files/de/archive/b2g_os/debugging/developer_settings/index.html @@ -0,0 +1,197 @@ +--- +title: Developer settings for Firefox OS +slug: Archive/B2G_OS/Debugging/Developer_settings +translation_of: Archive/B2G_OS/Debugging/Developer_settings +--- +<div class="summary"> + <p><span class="seoSummary">Die Entwicklereistellungen befinden sich in den Firefox OS Einstellungen. Dieses Panel bietet eine Vielzahl an Optionen, die das Debugging deiner Open Web Anwendung für Firefox OS erleichtern.</span> Dieser Artikel beschreibt die verfügbaren Optionen und erklärt wie diese benutzt werden können.</p> +</div> +<p>Der Einstellungsbereich für die Entwickler-Optionen wurde bewusst in einem Untermenüpunkt versteckt, um ein versehentliches Aktivieren durch unerfahrene Benutzer zu vermeiden, was eine Beeinträchtigung der Performance oder Auswirkungen auf die visuelle Darstellung von Firefox haben kann. Das Entwicklermenü sieht ähnlich aus wie auf der folgenden Darstellung gezeigt (dieses Bild wurde mit einem Geeksphone Keon mit einer im April 2014 erzeugten Version von Firefox OS 2.0 erstellt):</p> +<p><img alt="" src="https://mdn.mozillademos.org/files/7801/developermenu-short.png" style="width: 320px; height: 480px; display: block; margin: 0px auto;"></p> +<p>Das Entwicklermenü kann folgendermaßen erreicht werden:</p> +<ul> + <li>In Firefox OS < 1.4 befindet sich das Entwicklermenü unter <em>Settings > Device information > More Information > Developer</em>.</li> + <li>In Firefox > 1.4 befindet sich das Entwicklermenü unter <em>Settings > Device information > More Information > Check the Developer Menu checkbox</em>. Sobald das Menü aktiviert wurde, kann es direkt unter <em>Settings > Developer</em> aufgerufen werden.</li> +</ul> +<p>Im folgenden Abschnitt werden alle Optionen einzeln vorgestellt und erklärt wie diese verwendet werden können.</p> +<div class="warning"> + <p><strong>Wichtig</strong>: Diese Tools sind hilfreich, aber können Probleme im normalen Gebrauch des Telefons versursachen. Einstellungen, die dafür bekannt sind, dass sie Probleme verursachen können, sind per default abgeschaltet. Falls du Probleme mit den Funktionen feststellen solltes, versuche die entsprechenden Funktionen wieder zu deaktivieren.</p> +</div> +<h2 id="Einstellungen_der_Developer_Tools">Einstellungen der Developer Tools</h2> +<h3 id="Debugging_via_USB">Debugging via USB</h3> +<p>Die "Remote debugging" Option aktiviert das <a href="/en-US/docs/Tools/Debugger" title="/en-US/docs/Tools/Debugger">ferngesteuerte debugging</a> deines Firefox OS Gerätes. Außerdem wird die <a href="/en-US/Firefox_OS/Debugging/Installing_ADB">ADB</a> Kommando-Eingabe aktiviert.<strong> </strong>In Firefox < 1.4 gibt es dafür nur ein aktivierbares Kontrollkästchen; ab Firefox 1.4 sind es drei Optionen:</p> +<ul> + <li>Inaktiv: ferngesteuertes debugging ist ausgeschaltet (default.)</li> + <li>ADB only: Erlaubt Zugriff zum Gerät durch ADB.</li> + <li>ADB and Devtools: Erlaubt Zugriff zum Gerät durch ADB und Firefox Devtools, wie den <a href="/en-US/Firefox_OS/Using_the_App_Manager">App Manager</a>.</li> +</ul> +<h3 id="Developer_HUD">Developer HUD</h3> +<p>Ab Firefox OS 1.4, öffnet ein Berühren des Menüeintrages <strong>Developer HUD </strong>folgendes Auswahlmenü:</p> +<p><img alt="" src="https://mdn.mozillademos.org/files/8361/Firefox%20OS%202.1%20Developer%20HUD.png" style="width: 320px; display: block; margin: 0px auto; height: 569px;"></p> +<p>Die beiden ersten Kontrollboxen (immer aktiv) sind:</p> +<ul> + <li><strong>Frames per second</strong>: Zeigt die frames pro Sekunde, wie im späteren Abschnitt <em>Frames per second</em> erklärt.</li> + <li><strong>Time to load</strong>: Zeigt die Zeit zum Laden von Information an, wie im späteren Abschnitt <em>Time to load</em> erklärt.</li> +</ul> +<p>Anschließend folgt ein Slider, mit dem weitere Entwickler-Optionen ('Developer Tools') aktiviert werden können , auch weitere Checkboxen sind verfügbar:</p> +<ul> + <li><strong>Log changes in adb</strong>: Enables logging of device changes to adb logcat.</li> + <li><strong>Show system HUD</strong>: When checked, enables the display of several different pieces of information overlaid on top of the device display.</li> + <li><strong>Warnings</strong>: Displays console warnings.</li> + <li><strong>Errors</strong>: Displays console errors.</li> + <li><strong>Security issues</strong>: Displays potential security issues.</li> + <li><strong>Reflows</strong>: Displays reflows as they occur.</li> + <li><strong><a href="/en-US/Firefox_OS/Platform/Architecture#Jank">Jank</a>/Jank threshold</strong>: Notify the phone user about occurrences of unacceptably high jank, the threshold for which can be customised.</li> + <li><strong>Unique set size</strong>: This is a measure of the memory used by an application that is unique to that application. This is the most important measurement to inform memory usage optimizations (trying to reduce the memory apps are using), but there are others. See this <a href="/en-US/Firefox_OS/Developing_Gaia/Testing_Gaia_code_changes#Performance_tests">Performance tests</a> section for more information.</li> + <li><strong>App memory</strong>: Displays information on how much memory the app is using, and allows you to enable or disable the different memory usage factors. See {{ anch("App_memory") }} below for more details.</li> +</ul> +<h4 id="Frames_per_second">Frames per second</h4> +<p>Enabling this option reports three numbers in the top left of the Firefox OS display; the values reported are an average of recent results within a sliding window, meant to be "instantaneous" but fairly accurate. As such, all numbers are "guesses":</p> +<ul> + <li>The left number is the <strong>composition rate</strong>: the estimated number of times per second Firefox OS is drawing frames to the hardware framebuffer. This is an estimate of the user-perceived framerate, and only an estimate. For example, the counter may report 60 compositions per second even if the screen is not changing. In that case the user-perceived framerate would be 0. However, when used with this caveat in mind and corroborated with other measurements, the monitor can be a useful and simple tool.</li> + <li>The middle number is the <strong>layer transaction rate</strong>, the estimated number of times per second processes are repainting and notifying the compositor. This number is mostly useful for Gecko platform engineers, but it should be less than or equal to the composition rate number on the left.</li> + <li>The right hand number is a measure of the number of pixels drawn as a percentage of the screen size. A number of 273 means the screen was painted 2.73 times. Ideally this number should be as close to 100 as possible.</li> +</ul> +<p><img alt="A screenshot of Firefox OS, showing three numbers in the top left hand corner that are measurements of app framerate." src="https://mdn.mozillademos.org/files/6889/framerate-fxos.jpg" style="width: 357px; height: 640px; display: block; margin: 0px auto;"></p> +<h4 id="Time_to_load">Time to load</h4> +<p>Firefox OS also has a tool that can help measure startup time, specifically the "first paint" time. The value shown by the tool — in the top right of the Firefox OS display — is the elapsed time between when the most recent application was launched, and an estimate of the first time that application painted its UI, in milliseconds. This number only approximates the real "first paint" time, and in particular underestimates it. However, lowering this number almost always correlates to improvements in real startup time, so it can be useful to quickly measure optimization ideas.</p> +<p><img alt="A screenshot of Firefox OS, showing a number in the top right hand corner that is a measurement of the current app startup time, in milliseconds." src="https://mdn.mozillademos.org/files/6891/startup-time-fxos.jpg" style="width: 378px; height: 640px; display: block; margin: 0px auto;"></p> +<h4 id="App_memory">App memory</h4> +<p>Displays information on how much memory the app is using, and allows you to enable or disable the different items that use memory to show much each one is using in the current app. For example, the screen shot below only has <em>App memory</em> and <em>JS objects</em> checked, and the indicator on the bottom right is showing that the Settings app is using 414.77KB for JS objects.</p> +<p><img alt="" src="https://mdn.mozillademos.org/files/7731/memory-usage.png" style="width: 320px; height: 480px; display: block; margin: 0px auto;"></p> +<h3 id="Pseudo-localization">Pseudo-localization</h3> +<p>When enabled, pseudo-languages like <em>Accented English</em> and <em>Mirrored English</em> are available for selection in <em>Settings > Languages</em>. With pseudo-localizations, you can test the localizability of your code in regular Gaia builds without having to add real language resources nor having to speak a foreign language. For instance, you can make sure the layout scales well with longer strings, you can preview the app in a fake RTL language, or spot HTML elements wihout the <code>data-l10n-id</code> attribute (they will be displayed in regular English).</p> +<p><img alt="Screenshot of pseudolocales" src="http://informationisart.com/images/qps.png" style="width: 600px; height: 440px; display: block; margin: 0px auto;"></p> +<p>You can turn pseudo-localizations on by default when you build Gaia by adding the following line into <a href="https://github.com/mozilla-b2g/gaia/blob/master/build/config/common-settings.json">gaia/build/config/common-settings.json</a>:</p> +<pre class="brush: json"> "devtools.qps.enabled": true</pre> +<p><strong>Note:</strong> Pseudo-localizations are generated completely dynamically, each time an app is launched. The performance and memory characteristics may be different than those of regular localizations. If you specifically want to test performance of non-English languages, <a href="/en-US/Firefox_OS/Building#Building_multilocale">build multilocale Gaia</a> with real locales.</p> +<h2 id="Graphics_settings">Graphics settings</h2> +<h3 id="Flash_repainted_area">Flash repainted area</h3> +<p>In this mode, every time a region of the screen is painted by Gecko, Gecko blits a random translucent color over the painted region. Ideally, only parts of the screen that visually change between frames will "flash" with a new color. But sometimes more area than is needed is repainted, causing large areas to "flash". This symptom may indicate that application code is forcing too much of its scene to update. It may also indicate bugs in Gecko itself.</p> +<p><img alt="A screenshot of Firefox OS with a number of transparent overlays, showing the parts of the screen repainted with each new animation frame." src="https://mdn.mozillademos.org/files/6893/paint-update-fxos.jpg" style="width: 378px; height: 640px; display: block; margin: 0px auto;"></p> +<h3 id="Enable_APZ_for_all_content_(Async_PanZoom)">Enable APZ for all content (Async Pan/Zoom)</h3> +<p>When enabled, the Async Pan/Zoom module allows panning and zooming to be performed on asynchronously, on another thread, with some noticeable differences to rendering behaviour. To find out more, read the <a href="https://wiki.mozilla.org/Platform/GFX/APZ">MozillaWiki APZ</a> article.</p> +<h3 id="Overscrolling">Overscrolling</h3> +<p>This enables and disables the behaviour in Firefox 2.1+ where the display stretches in an elastic manner when you scroll past the end of a page, then shrinks back again when you stop dragging the display. The behaviour's full name is <em>elastic overscroll</em>.</p> +<h3 id="Tiling_(was_Layers_Enable_tiles)">Tiling (was Layers: Enable tiles)</h3> +<p>Introduced in Firefox OS 1.4, this feature enables the painting of content to the screen in smaller chunks ("tiles") rather than painting the whole screen at once. This is mainly useful for platform QA work involving reducing checkerboarding and finding regression windows.</p> +<h3 id="Simple_tiling_(was_Layers_Simple_tiles)">Simple tiling (was Layers: Simple tiles)</h3> +<p>This flips between the two different content painting implementations described in the section above.</p> +<h3 id="Low-precision_painting">Low-precision painting</h3> +<p>Enabling this option makes Gecko paint a low-precision (blurry) version of the content when scrolling really fast. This is useful because it's quicker to paint, and so helps us avoid displaying blank areas (i.e. checkerboarding) while scrolling quickly. It should only be visible to the user temporarily; once the user stops scrolling we fill in the low-precision areas with high-precision content.</p> +<h3 id="Low-precision_transparency">Low-precision transparency</h3> +<p>This is an additional flag for low-precision painting, which makes the low-precision content half transparent. This makes it a little more subtle and less jarring for the user.</p> +<h3 id="Hardware_composer_(was_Enable_hardware_compositing)">Hardware composer (was Enable hardware compositing)</h3> +<p>When enabled, this setting causes the device to use its <a href="https://source.android.com/devices/graphics.html#hwc">Hardware Composer</a> to composite visual elements (surfaces) to the screen.</p> +<h3 id="Draw_tile_borders_(was_Layers_Draw_tile_borders)">Draw tile borders (was Layers: Draw tile borders)</h3> +<p>This is very similar to the {{ anch("Draw layer borders") }} option, the difference being that it also draws the borders for individual tiles as well as the borders around layers.</p> +<h3 id="Draw_layer_borders">Draw layer borders</h3> +<p>When this setting is enabled, a brightly colored border is added around all the different layers painted to the display — great for diagnosing layout issues.</p> +<p><img alt="A screenshot from Firefox OS showing an opened select form with the draw layers borders option enabled, resulting in colored borders being drawn on all the different rendered layers." src="https://mdn.mozillademos.org/files/6897/paint-layers-borders.png" style="width: 320px; height: 480px; display: block; margin: 0px auto;"></p> +<h3 id="Dump_layers_tree">Dump layers tree</h3> +<p>This option enables <code>layers.dump</code>, which causes a copy of the compositor's layer tree to be dumped to logcat on every frame composited to the screen; this is mainly useful for platform graphics performance work, rather than regular web development.</p> +<h3 id="Cards_View_Screenshots">Cards View: Screenshots</h3> +<p>When enabled, this specifies that app screenshots will be taken when the open apps are displayed in card view. If disabled, app icons are shown in the center of blank cards for the card view instead.</p> +<h2 id="Window_management_settings">Window management settings</h2> +<h3 id="Software_home_button">Software home button</h3> +<p>Enabling this option creates a software home button that can provide the same functionality as the equivalent hardware button if it is not available. This is intended for future use on devices that are likely to not have hardware home buttons, like tablets.</p> +<h3 id="Home_gesture">Home gesture</h3> +<p>Enabling this option allows you to swipe upwards towards the center from outside the screen to bring up the homescreen. Again, this can provide the same functionality as the equivalent hardware button if it is not available, and is intended for future use on devices that are likely to not have hardware home buttons, like tablets.</p> +<h3 id="Continuous_transition">Continuous transition</h3> +<p>This setting allows you to decide whether app keyboards open immediately or continuously (with a transition). Disabling such transition effects are useful on low end devices, when they cause performance to suffer.</p> +<h3 id="App_transition">App transition</h3> +<p>Turn this on and then off again and you will disable all app closing/opening transitions: all apps will now just show immediately, without the smooth animation, and keyboards will also open/close without animation. Like "Continuous transition enabled", this is meant for improving performance on low end devices, but it has more of an effect.</p> +<h3 id="App_suspending">App suspending</h3> +<p>If enabled, this specifies that when an app is killed in the background, it will be kept in history and reopened when you open it from homescreen/card view. If disabled, such apps are not kept in history/card view.</p> +<h2 id="Debug_settings">Debug settings</h2> +<h3 id="Log_slow_animations">Log slow animations</h3> +<p>This tool tries to help developers understand why animations are not offloaded to the compositor to be run efficiently as possible. It reports "bugs" like trying to animate elements that are too large, or trying to animate CSS properties that can't be offloaded. The messages you'll get on the device will look like the following:</p> +<pre>I/Gecko ( 5644): Performance warning: Async animation disabled because frame size (1280, 410) is bigger than the viewport (360, 518) [div with id 'views'] +</pre> +<h3 id="Geolocation_output_in_ADB">Geolocation output in ADB</h3> +<p>Enables logging of geolocation data to adb logcat. This helps with debugging both the GPS stack (namely we get NMEA callback) and MLS use.</p> +<h3 id="Wi-Fi_output_in_adb">Wi-Fi output in adb</h3> +<p>Enabling this option adds information about Wi-Fi to the adb logs (error logs from the console can be accessed using <code>adb logcat | grep "Error"</code> in the Terminal.)</p> +<h3 id="Bluetooth_output_in_adb">Bluetooth output in adb</h3> +<p>Enabling this option adds information about Bluetooth to the adb logs (error logs from the console can be accessed using <code>adb logcat | grep "Error"</code> in the Terminal.)</p> +<h3 id="Console_enabled">Console enabled</h3> +<p>When enabled, this option lets you use the <a href="/en-US/docs/Mozilla/Firefox_OS/Debugging/Using_the_Remote_Web_Console" title="/en-US/docs/Mozilla/Firefox_OS/Debugging/Using_the_Remote_Web_Console">Web Console</a> in Firefox to remotely access the console output on the device; without this option enabled, the {{domxref("console.log()")}} function does nothing.</p> +<h3 id="Gaia_debug_traces">Gaia debug traces</h3> +<p>Enabling this directly enables DEBUG traces in Gaia; see {{ bug("881672") }} for more details.</p> +<div class="note"> + <p><strong>Note</strong>: Unfortunately, not every app supports this mechanism to print their debug log. Instead, they control a "DEBUG" flag in code directly, so enabling this flag does NOT ensure that you'll see all debug logs.</p> +</div> +<h3 id="Show_accessibility_settings">Show accessibility settings</h3> +<p>This enables the accessibility settings menu, subsequently found at <em>Settings > Accessibility</em>. The options contained within the accessibility settings are as follows:</p> +<h4 id="Screen_reader">Screen reader</h4> +<p>Enabling this option turns on Firefox OS's screen reader. This is technology that allows a blind person to use a Firefox OS device. Currently at a very early stage, it changes the way the standard touch events work. When the screen reader is on, you must interact with the screen as follows:</p> +<ul> + <li>Touch somewhere to focus that app (or whatever) and be alerted as to what it is. This is indicated both by audible speech output and a rectangle around the selected item. Double tap anywhere on the screen (two taps in rapid succession) to activate the item that has the rectangle around it.</li> + <li>Swipe from left to right to move sequentially through items on the screen. Items are moved through from left to right, then top to bottom, including scrolling the screen vertically if there are more items to display, and you will be alerted as to each one's name via speech output and a rectangle. Swiping right to left moves through the items in reverse order. Again, double-tap the screen to execute the currently highlighted item.</li> + <li>Do a swipe with two fingers — left, right, up or down — to scroll the screen in that direction. This is equivalent to swiping one finger across the screen in the given direction when the screen reader is not running. For example, a two-finger swipe left on the first home screen will flip to the second one, and a two-finger swipe upwards on a home screen or browser would cause the screne to scroll downwards to show more content.</li> +</ul> +<div class="note"> + <p><strong>Note</strong>: If you have turned the screen reader on and wish to disable it again, you must navigate back to the setting via these new gestures and double-tap the checkbox once it is highlighted to turn it off again. That will restore the touch screen functionality to its default behaviour.</p> +</div> +<p><strong>Note</strong>: In Firefox 1.4 and above, there is a quick toggle for the screen reader. Press volume up, then down, three times (up, down, up, down, up, down). The screen reader will instruct you to perform this same action again (volume up, down, up, down, up, down) to turn it on if it is not running, or to turn it off if it is already running. If you do not want to change the current toggle state, simply do something else. That way, you can turn it on and off at will to test your web application for accessibility without having to navigate the accessibility settings menu each time.</p> +<h4 id="Speech_volume">Speech volume</h4> +<p>A slider that controls how loud the speech is delivered.</p> +<h4 id="Speech_rate">Speech rate</h4> +<p>A slider that controls how fast the speech is delivered.</p> +<h3 id="Use_Marketplace_reviewer_certs">Use Marketplace reviewer certs</h3> +<p>TBD</p> +<h3 id="Shake_to_save_system_log">Shake to save system log</h3> +<p>TBD</p> +<h3 id="Verbose_app_permissions">Verbose app permissions</h3> +<div class="note"> + <p><strong>Note</strong>: Introduced with Firefox 2.1</p> +</div> +<p>When this is enabled, developers (and privacy enthusiasts) may modify all permissions granted to installed privileged apps, using The "App Permission" pane in the Settings app. The app sub-pages under here are updated upon enabling the setting to provide a list of each API permission is requested for in the app's manifest file, along with choices to set that permission to. For example, "Schedule Alarms" appears with choices of <em>Ask</em>, <em>Deny</em> and <em>Grant</em>. Note that some apps may be unable to deal with changed permissions. If you experience any odd behavior, consider resetting the permission or re-installing the app.</p> +<h3 id="Launch_first_time_use">Launch first time use</h3> +<p>The "Launch first time use" button runs the "First-Time Use" (FTU) program; this lets you go through the initial setup and tutorial process, and is useful when trying to debug that process, or if you want to re-configure your device from scratch.</p> +<h2 id="Software_updates">Software updates</h2> +<h3 id="Update_channel">Update channel</h3> +<p>Enables you to specify different update channels to get software updates from when your device receives OTA updates. Options are <code>nightly</code>, <code>aurora</code> ... (others?)</p> +<h3 id="Update_URL">Update URL</h3> +<p>Enables you to specify different URLs from which to receive your updates.</p> +<h2 id="Obsolete_settings">Obsolete settings</h2> +<p>This section lists settings that are no longer provided, or no longer exist in the same state, but might still be interesting if you are running an older version of Firefox OS.</p> +<h3 id="Accessibility">Accessibility</h3> +<p>In versions of Firefox earlier than newer 1.4 versions, this controls the accessibility settings, as explained in the {{ anch("Show_accessibility_settings") }} section above.</p> +<h3 id="Grid">Grid</h3> +<p>The "Grid" option, when enabled, causes the Firefox OS display to be overlaid with a grid pattern to help you gauge positioning and alignment of items. For example, below we see the Browser app running with the Grid option enabled:</p> +<p><img alt="" src="https://mdn.mozillademos.org/files/5071/Grid.png" style="width: 320px; height: 480px; display: block; margin: 0px auto;"></p> +<p>The grid's heavier lines are 32 pixels apart, both horizontally and vertically.</p> +<h3 id="Show_frames_per_second">Show frames per second</h3> +<p>In Firefox OS versions older than newer 1.4, enabling this displays frames per second, as explained in the {{ anch("Frames_per_second") }} section above.</p> +<h3 id="Show_time_to_load">Show time to load</h3> +<p>In Firefox OS versions older than newer 1.4, enabling this displays time to load information, as explained in the {{ anch("Time_to_load") }} section above.</p> +<h3 id="Rocketbar_enabled">Rocketbar enabled</h3> +<p>In Firefox OS versions older than newer 1.4, this option enables the new <a href="https://groups.google.com/forum/#!topic/mozilla.dev.gaia/Nlfbrq1KMP0">Firefox Rocketbar</a> on your device, which provides a useful new way to switch between apps, search, and more. When enabled, you'll find a search icon at the top left of the device, and the RocketBar can be brought up by swiping from the top left of the device towards the bottom left.</p> +<div class="note"> + <p><strong>Note</strong>: In newer versions of Firefox OS, Rocketbar is enabled automatically and cannot be turned off.</p> +</div> +<h3 id="Contacts_debugging_output_in_adb">Contacts debugging output in adb</h3> +<p>Enabling this option adds debugging information about contacts to the adb logs (error logs from the console can be accessed using <code>adb logcat | grep "Error"</code> in the Terminal.)</p> +<h3 id="Progressive_paint_(was_Layers_Progressive_paint)">Progressive paint (was Layers: Progressive paint)</h3> +<p>This was introduced to help with debugging of the <a href="https://wiki.mozilla.org/Platform/GFX/APZ">Async Panning/Zoom module</a> (APZ) during its implementation. Now APZ implementation is complete, this option is deprecated, and will be removed from future versions (see {{ Bug("1003228") }}).</p> +<h3 id="Displayport_Heuristics">Displayport Heuristics</h3> +<ul> + <li>Default</li> + <li>Center displayport</li> + <li>Assume perfect paints</li> + <li>Taller displayport</li> + <li>Faster paints</li> + <li>No checkerboarding</li> +</ul> +<p>These options were introduced to help with debugging of the <a href="https://wiki.mozilla.org/Platform/GFX/APZ">Async Panning/Zoom module</a> (APZ) during its implementation, specifically to allow QA to experiment with different repainting heuristics to see which resulted in the least amount of checkboarding.. Now APZ implementation is complete, these options are deprecated, and will be removed from future versions (see {{ Bug("1003228") }}).</p> +<h3 id="Edges_gesture">Edges gesture</h3> +<p>Enabling this option allows you to swipe left and right from outside the screen towards the center, to navigate to the next and previous sheets (either web pages in the browser, or views inside another app.) This basically works like the browser navigator bar in Firefox, but is enabled by default in Firefox 2.1+.</p> +<h2 id="Keyboard_layouts">Keyboard layouts</h2> +<p>In addition to the developer-specific options listed above, Firefox OS < 1.4's developer settings featured keyboard layout options. These let you toggle on and off the then-experimental Chinese input methods:</p> +<p><img alt="" src="https://mdn.mozillademos.org/files/5079/InputMethods.png"></p> +<p>As of Firefox 1.4, these options have been removed. This is because the Chinese keyboard layout implementations (zhuyin and pinyin) have now been completed.</p> +<div class="note"> + <p><strong>Note</strong>: For other keyboard layouts still under development, such as Japanese, we now have a build-time config to opt them in.</p> +</div> +<p> </p> diff --git a/files/de/archive/b2g_os/debugging/index.html b/files/de/archive/b2g_os/debugging/index.html new file mode 100644 index 0000000000..a83bb6ae67 --- /dev/null +++ b/files/de/archive/b2g_os/debugging/index.html @@ -0,0 +1,80 @@ +--- +title: Debugging on Firefox OS +slug: Archive/B2G_OS/Debugging +tags: + - B2G + - Debugging + - Firefox OS + - NeedsTranslation + - QA + - Testing + - TopicStub +translation_of: Archive/B2G_OS/Debugging +--- +<div class="summary"> + <p><span class="seoSummary">There are two main types of debugging you'll want to with Firefox OS: debugging apps, and debugging other aspects of the system.</span> This section of the site provides articles covering the different tools at your disposal to debug your Firefox OS code.</p> +</div> +<h2 id="Debugging_apps">Debugging apps</h2> +<p>When debugging your web apps, the best tool at your disposal is Mozilla's powerful <a href="/en-US/Firefox_OS/Using_the_App_Manager">App Manager</a>, which allows you to run your apps directly on a real device or simulator, update any changes instantly, and debug them directly on the device using Mozilla's excellent <a href="https://developer.mozilla.org/en-US/docs/Tools" title="en-US/docs/Tools">developer tools</a>. This should be your first choice, especially for app/Gaia debugging.</p> +<dl> + <dt> + <a href="/en-US/Firefox_OS/Using_the_App_Manager">Using the App Manager</a></dt> + <dd> + The App Manager is a new tool available in Firefox for Desktop, which provides a number of useful tools to help you test, deploy and debug HTML5 web apps on Firefox OS phones and the Firefox OS Simulator, directly from your browser.</dd> + <dt> + <a href="/en-US/docs/Mozilla/Firefox_OS/Debugging/Debugging_OOMs">Debugging out of memory errors on Firefox OS</a></dt> + <dd> + This article describes how B2G's multiprocess architecture affects what the phone does when we run out of memory, and how to understand and debug OOM crashes.</dd> +</dl> +<h2 id="Debugging_GaiaB2G">Debugging Gaia/B2G</h2> +<p>If you want to debug code from the Gaia apps suite or B2G itself, the following tools will be of use to you.</p> +<dl> + <dt> + <a href="/en-US/docs/Mozilla/Firefox_OS/Debugging/Debugging_using_the_desktop_B2G_client" title="/en-US/docs/Mozilla/Firefox_OS/Debugging/Debugging_using_the_desktop_B2G_client">Debugging using the desktop B2G client</a></dt> + <dd> + You can use the dedicated B2G desktop application (and associated tools) to debug multiple aspects of B2G and Gaia.</dd> + <dt> + <a href="/en-US/Firefox_OS/Hacking_Firefox_OS/Quickstart_guide_to_Gaia_development">Quickstart guide to Gaia development</a></dt> + <dd> + This guide provides a very quick easy guide to developing and debugging Gaia apps, including running Gaia inside desktop Firefox, and debugging Gaia with App Manager.</dd> + <dt> + <a href="/en-US/docs/Mozilla/Firefox_OS/Debugging/Debugging_B2G_using_gdb" title="/en-US/docs/Mozilla/Firefox_OS/Debugging/Debugging_B2G_using_gdb">Debugging B2G using gdb</a></dt> + <dd> + The popular gdb debugger can be used to debug Firefox OS and web apps running on a device, or on an emulator. This guide will show you how it's done.</dd> + <dt> + <a href="/en-US/docs/Mozilla/Firefox_OS/Debugging/Debugging_B2G_using_valgrind" title="/en-US/docs/Mozilla/Firefox_OS/Debugging/Debugging_B2G_using_gdb">Debugging B2G using Valgrind</a></dt> + <dd> + Valgrind gives developers access to information about memory allocations, threads, and other information important to performance. This guide shows how to run Valgrind either on desktop B2G or select phone hardware.</dd> + <dt> + <a href="/en-US/docs/Mozilla/Debugging/HTTP_logging#Firefox_OS_phones" title="/en-US/docs/Mozilla/Debugging/HTTP_logging#Firefox_OS_phones">Getting NSPR logs in B2G</a></dt> + <dd> + You can use NSPR logs to record HTTP and other networking.</dd> + <dt> + <a href="/en-US/docs/Mozilla/Debugging/Debugging_OpenGL" title="/en-US/docs/Mozilla/Debugging/Debugging_OpenGL">Debugging OpenGL</a></dt> + <dd> + How to debug OpenGL code on Firefox OS.</dd> +</dl> +<h2 id="General_setup_and_information"><strong>General setup and information</strong></h2> +<p>The following articles provide information on individual aspects of setup for Firefox OS development. The chances are that you won't need these, especially if you are just debugging apps using the App Manager. But we have made them available here in case you do.</p> +<dl> + <dt> + <a href="/en-US/docs/Mozilla/Firefox_OS/Debugging/Developer_settings" title="/en-US/docs/Mozilla/Firefox_OS/Debugging/Developer_settings">Developer settings for Firefox OS</a></dt> + <dd> + There are a number of settings options available for developers on Firefox OS. This guide explains what they do and how to take advantage of them.</dd> + <dt> + <a href="/en-US/Firefox_OS/Debugging/Installing_ADB">Installing and using ADB</a></dt> + <dd> + Many aspects of Firefox OS development require installation of <code>adb</code>, the Android Debug Bridge. This article explains how to do that, and shares some common useful ADB commands.</dd> + <dt> + <a href="/en-US/docs/Mozilla/Firefox_OS/Debugging/On-device_console_logging" title="/en-US/docs/Mozilla/Firefox_OS/Debugging/On-device_console_logging">On-device console logging</a></dt> + <dd> + How to log to console on a Firefox OS device, and how to access the resulting logs for review on your computer.</dd> + <dt> + <a href="/en-US/docs/Mozilla/Firefox_OS/Debugging/Connecting_a_Firefox_OS_device_to_the_desktop" title="/en-US/docs/Mozilla/Firefox_OS/Debugging/Debugging_Firefox_OS_apps_in_desktop_Firefox">Connecting a Firefox OS device to the desktop</a></dt> + <dd> + This short guide explains how to set up your Firefox OS device and your desktop so that the desktop can communicate with the device over USB.</dd> + <dt> + <a href="/en-US/docs/Mozilla/Firefox_OS/Debugging/Setting_up" title="/en-US/docs/Mozilla/Firefox_OS/Debugging/Setting_up">Setting up to debug Firefox OS code</a></dt> + <dd> + Before you can begin using most of the tools integrated into Firefox for debugging code running under Firefox OS, you need to do a little configuration work. This article explains what you need to do.</dd> +</dl> diff --git a/files/de/archive/b2g_os/debugging/installing_adb/index.html b/files/de/archive/b2g_os/debugging/installing_adb/index.html new file mode 100644 index 0000000000..9e49cc786b --- /dev/null +++ b/files/de/archive/b2g_os/debugging/installing_adb/index.html @@ -0,0 +1,70 @@ +--- +title: ADB installieren und benutzen +slug: Archive/B2G_OS/Debugging/Installing_ADB +tags: + - ADB + - B2G + - Debugging + - Firefox OS + - Installation + - mobil +translation_of: Archive/B2G_OS/Debugging/Installing_ADB +--- +<div class="summary"> + <p>Viele Aspekte der Firefox OS Entwicklung erfordern die Installation von ADB, der Android Debug Bridge. Dieser Artikel erklärt, wie das geht und zeigt einige häufig verwendete und nützliche ADB Befehle.</p> +</div> +<h2 id="ADB_Installieren">ADB Installieren</h2> +<p>ADB kann als Bestandteil des Android SDK Pakets für Mac, Linux oder Windows heruntergeladen und installiert werden - besuchen Sie dazu die <a href="http://developer.android.com/sdk/index.html">Get the Android SDK</a> Seite.</p> +<p>Bei neueren Linux Distributionen ist <code>adb </code>bereits in den Repositories verfügbar. Für Ubuntu 12.10 und neuere, führen Sie folgenden Befehl aus:</p> +<pre>sudo apt-get install android-tools-adb</pre> +<p>Oder für Fedora 18/19:</p> +<pre>sudo yum install android-tools</pre> +<p>Oder auf OSX mit <a href="http://brew.sh/">Homebrew</a>:</p> +<pre>brew install android-platform-tools</pre> +<p>Falls ihre Distribution kein Paket für <code>adb </code>zur Verfügung stellt (z.B. Ubuntu 12.04 oder Fedora 17), müssen Sie das <a class="external" href="http://developer.android.com/sdk/index.html" title="http://developer.android.com/sdk/index.html">Android SDK starter package</a> für ihre Plattform installieren (wählen Sie die Option<em> ADT Bundle</em>, nicht <em>SDK Tools Only</em>). Führen Sie dann deren Paketmanager, <code>$SDK_HOME/tools/android </code>aus und nutzen Sie dann die GUI zum Installieren von "Android SDK Platform-tools".</p> +<p>Finden Sie heraus, wo <code>adb</code> installiert wurde (üblicherweise in <code>usr/bin</code>, unter Umständen zusätzlich in <code>adt/platform-tools</code>, je nach Installationsart). Stellen Sie sicher, dieses Verzeichnis zu ihrem <code>PATH</code> hinzuzufügen. Dies erreichen Sie durch Hinzufügen der Zeile</p> +<pre>PATH=$SDK_HOME:$PATH</pre> +<p>in der Sie <code>$SDK_HOME</code> durch den Pfad ihres android sdk ersetzen, zu ihrer <code>~/.bashrc</code> oder vergleichbarem.</p> +<h2 id="Fehlerbehebung">Fehlerbehebung</h2> +<p>Wenn Sie eine 64-bit Installation verwenden, und Sie den Fehler "File not found" bei der Ausführung von 'adb' bekommen, obwohl diese Datei vorhanden ist, müssen Sie 32-bit Kompatibilitätsbibliotheken installieren. Um das mit apt zu tun:</p> +<pre>sudo apt-get install ia32-libs</pre> +<h2 id="Häufig_verwendete_ADB_Befehle">Häufig verwendete ADB Befehle</h2> +<p>Der folgende Abschnitt erklärt einige häufig verwendete, nützliche <code>adb</code> Befehle.</p> +<h2 id="Den_b2g_Prozess_neu_starten">Den b2g Prozess neu starten</h2> +<p>b2g ist das Äquivalent einer <a href="/en-US/docs/XULRunner" title="/en-US/docs/XULRunner">XULRunner </a>Anwendung die auf einem Smartphone auf einem Android-basierten Kernel ausgeführt wird. Manchmal kann ein Neustart dieser Anwendung nützlich sein; so können Sie die Anwendungsumgebung zurücksetzen ohne das Gerät neu zu starten. Sie können dies tun indem Sie folgendes in ihr Terminal eingeben, während ihr Gerät mit ihrem Computer verbunden ist (oder während der Ausführung des Debuggers):</p> +<pre>adb shell killall b2g</pre> +<h2 id="Portweiterleitung_zum_Debuggen_aktivieren">Portweiterleitung zum Debuggen aktivieren</h2> +<p>Um einfach eine Portweiterleitung zu aktivieren (zum Beispiel wenn Sie den App Manager nutzen um Apps auf ihrem Firefox OS Gerät zu debuggen), geben Sie folgenden Befehl in Ihrem Terminal ein:</p> +<pre class="language-html">adb forward tcp:6000 localfilesystem:/data/local/debugger-socket</pre> +<p>Dies müssen Sie jedesmal beim neu Starten oder Aus- und wieder Einstecken des Smartphones tun. Sie können die Socket Nummer ändern, wenn gewünscht.</p> +<h2 id="Portweiterleitung_zu_einem_lokalen_Rechner">Portweiterleitung zu einem lokalen Rechner</h2> +<p>Um Ports zu einem lokalen Rechner weiterzuleiten, müssen Sie die <a href="http://people.mozilla.org/~jmuizelaar/forward/">netcat and ssh binaries </a>herunterladen und folgende Befehle ausführen:</p> +<pre class="brush: bash"># this is an awful hack but does in fact work... +host$ adb forward tcp:7979 tcp:6969 + +# make some named pipes so that we can make a bidirectional netcat +phone$ mknod readback p +host$ mknod readback p + +# this sets up a one time use connection to back to the host +# listen on ports 6969 and 5959 and forward all the information between them +phone$ ./netcat -l -p 6969 < readback | ./netcat -l -p 5959 > readback +# connect to port 7979 (port 6969 on the device) and the local ssh server and forward all information between them +host$ ./netcat localhost 7979 < readback | ./netcat localhost 22 > readback + +# now when we connect to port 5959 on the phone it will be like connecting to ssh server on the host + +# use the netcat reversal to set up an ssh connection back to the host and forward port 9999 on the device to 'localhost:8000' (this could be anything like 'google.com:80') +phone$ ./ssh localhost -p 5959 -L 9999:localhost:8000</pre> +<p>Das wird Port 9999 auf dem Gerät zu Port 8000 des Hosts weiterleiten.</p> +<p>Alternativ können Sie einen SSH-Server (<a href="http://people.mozilla.org/~jmuizelaar/forward/dropbear">dropbear</a> und <a href="http://people.mozilla.org/~jmuizelaar/forward/host_key">host_key</a>) mit folgenden Befehlen direkt auf dem Gerät verwenden:</p> +<pre class="brush: bash">phone$ DROPBEAR_PASSWORD=root ./dropbear -p 9000 -F -v -a -r host_key ./dropbear +host$ adb forward tcp:8888 tcp:9000 +# public key authentication has been hard coded to succeed (make sure you have a public key for ssh to use) +host$ ssh -vvv root@localhost -p 8888 -R 9999:people.mozilla.org:80 +</pre> +<p>Weitere Anleitungen:</p> +<ul> + <li><a href="http://k.japko.eu/android-dropbear.html">Instructions for building dropbear</a></li> + <li><a href="http://people.mozilla.org/~jmuizelaar/forward/dropbear-b2g.patch">dropbear patch</a> to disable the crash from missing environment variables and hard code authetication sucess.</li> +</ul> diff --git a/files/de/archive/b2g_os/debugging/verbinden_eines_firefox_os_geräts_mit_dem_rechner/index.html b/files/de/archive/b2g_os/debugging/verbinden_eines_firefox_os_geräts_mit_dem_rechner/index.html new file mode 100644 index 0000000000..d82f69789d --- /dev/null +++ b/files/de/archive/b2g_os/debugging/verbinden_eines_firefox_os_geräts_mit_dem_rechner/index.html @@ -0,0 +1,41 @@ +--- +title: Connecting a Firefox OS device to the desktop +slug: Archive/B2G_OS/Debugging/Verbinden_eines_Firefox_OS_Geräts_mit_dem_Rechner +tags: + - ADB + - Firefox OS +translation_of: Archive/B2G_OS/Debugging/Connecting_a_Firefox_OS_device_to_the_desktop +--- +<div class="summary"> + <p><span class="seoSummary">Diese Anleitung erklärt, wie man ein Firefox OS Gerät mit dem Rechner über USB verbindet.</span></p> +</div> +<div class="note"> + <p><strong>Achtung</strong>: Um Apps auf einem Firefox OS Gerät zu debuggen und wenn auf dem Gerät Firefox 1.2+ läuft, ist der beste Weg den App Manager zu benutzen. Details können unter <a href="/en-US/Firefox_OS/Using_the_App_Manager">Benutzung des App Mangers</a> nachgelesen werden. Wird eine Version von Firefox OS kleiner 1.2 benutzt, kann man unter <a href="/en-US/docs/Mozilla/Firefox_OS/Debugging/Setting_up">Einrichtung des Firefox OS Debugging Modus unter Verwendung der Entwickler Tools</a> mehr über das Standard Remote Debugging erfahren.</p> +</div> +<h2 id="Einrichtung_des_Geräts">Einrichtung des Geräts</h2> +<p>Auf deinem Firefox OS Gerät (<a href="/en-US/docs/Mozilla/Firefox_OS/Debugging/Developer_settings#The_Developer_panel">see the layout</a>):</p> +<ol> + <li>öffnen der App Einstellungen, dann <code>Geräteinformationen</code> > <code>Weitere Informationen</code> > Entwickler.</li> + <li>Im Entwickler Menü "Debugging über USB" aktivieren.</li> +</ol> +<h2 id="Einrichtung_des_Rechners">Einrichtung des Rechners</h2> +<p>Um ein Gerät mit dem Rechner zu verbinden muss die <a class="external" href="http://developer.android.com/tools/help/adb.html" title="http://developer.android.com/tools/help/adb.html">Android Debug Bridge (adb)</a> installiert sein. Beachte dass das <a href="/en-US/docs/Tools/Firefox_OS_Simulator" title="/en-US/docs/Tools/Firefox_OS_Simulator">Firefox OS Simulator</a> add-on eine adb mitbringt.</p> +<p>Instructions for setting up your desktop are specific to your operating system and are detailed in point 3 of <a class="external" href="https://developer.android.com/tools/device.html" title="https://developer.android.com/tools/device.html">"Setting up a Device for Development"</a> on the Android developer site. We've listed some additional instructions below.</p> +<h3 id="Spezielle_Anweisungen_für_Mac_OS_X">Spezielle Anweisungen für Mac OS X</h3> +<p>If you're running Mac OS X, you have downloaded a package which has a name along <code>adt-bundle-mac-x86_64-20130522</code>. Put that folder into the Applications folder, so that you get <code>/Applications/adt-bundle-mac-x86_64-20130522/</code> which contains two directories: <code>eclipse</code> and <code>sdk</code>. Then you can edit your <code>~/.bashrc</code> and add</p> +<pre>export PATH="/Applications/adt-bundle-mac-x86_64-20130522/sdk/platform-tools:$PATH"</pre> +<p>(It will be ready for the next time you start your shell). You can now type on the CLI of the shell:</p> +<pre>adb devices +</pre> +<p>and it will return a list of connected devices such as:</p> +<pre>List of devices attached +AA:BB:A5:B5:AA:BB device</pre> +<h3 id="Spezielle_Anweisungen_für_Linux">Spezielle Anweisungen für Linux</h3> +<p>If you're running Linux, the vendor ID to use for Firefox OS Geeksphone devices is <code>05c6</code>, so your <code>/etc/udev/rules.d/51-android.rules</code> file should contain an entry similar to:</p> +<pre class="bash" style="font-family: monospace;"><span style="color: #007800;">SUBSYSTEM</span>=="usb", ATTR<span style="color: #7a0874; font-weight: bold;">{</span>idVendor<span style="color: #7a0874; font-weight: bold;">}</span>=="05c6", <span style="color: #007800;">MODE</span>="0666", <span style="color: #007800;">GROUP</span>="plugdev"</pre> +<h3 id="Spezielle_Anweisungen_für_Windows">Spezielle Anweisungen für Windows</h3> +<p>You can download Windows drivers for the Geeksphone from the <a href="http://www.geeksphone.com/downloads/fos/fos_usb_driver.zip" title="http://www.geeksphone.com/downloads/fos/fos_usb_driver.zip">Geeksphone website</a>.</p> +<p>Windows 8 by default will not let you install unsigned drivers. See this tutorial on <a href="http://www.craftedge.com/tutorials/driver_install_windows8/driver_install_win8.html" title="http://www.craftedge.com/tutorials/driver_install_windows8/driver_install_win8.html">"How to install an unsigned driver on Windows 8"</a>.</p> +<p>Since Windows XP Home Edition doesn't include <code>tasklist.exe</code>, Simulator won't detect the device. This can be solved downloading that file from <a href="http://www.computerhope.com/download/winxp.htm">ComputerHope website</a> and putting it in <code>Windows\System32</code> folder.</p> +<h2 id="Einrichtung_überprüfen">Einrichtung überprüfen</h2> +<p>Once you've followed these instructions, attach the device to the desktop using a USB cable, open a command prompt and type "<code>adb devices</code>" (ensuring that adb is in your path). You should see your Firefox OS device listed in the output.</p> diff --git a/files/de/archive/b2g_os/developing_firefox_os/filing_bugs_against_firefox_os/index.html b/files/de/archive/b2g_os/developing_firefox_os/filing_bugs_against_firefox_os/index.html new file mode 100644 index 0000000000..6a269b17bc --- /dev/null +++ b/files/de/archive/b2g_os/developing_firefox_os/filing_bugs_against_firefox_os/index.html @@ -0,0 +1,183 @@ +--- +title: Firefox OS Fehler melden +slug: Archive/B2G_OS/Developing_Firefox_OS/Filing_bugs_against_Firefox_OS +tags: + - Abbruch + - Bugs + - Bugzilla + - Fehler + - Firefox OS +translation_of: Archive/B2G_OS/Developing_Firefox_OS/Filing_bugs_against_Firefox_OS +--- +<div class="summary"> +<p>Dieser Artikel enthält eine Anleitung zum Melden von Fehlern zum Firefox OS Projekt, zu Gaia und zu B2G (Boot to Gecko).</p> +</div> + +<h2 id="Bugzilla">Bugzilla</h2> + +<p>Wie die meisten Mozilla-Projekte nutzen wir <a href="https://developer.mozilla.org/de/docs/Mozilla/Bugzilla">Bugzilla</a> für die Fehler- und Problemverfolgung. Du kannst Fehler an <a href="https://bugzilla.mozilla.org/">Bugzilla</a> melden, wenn Du Fehler entdeckt hast — wir haben eine <a href="https://bugzilla.mozilla.org/enter_bug.cgi?product=Firefox%20OS">eigene Bugzilla Kategorie (Product) für Firefox OS</a> mit Unter-Kategorien (Components) für <a href="https://developer.mozilla.org/de/Firefox_OS/Platform/Gaia">Gaia</a>, <a href="https://developer.mozilla.org/en-US/Firefox_OS/Platform/Gonk">Gonk</a> und <a href="https://developer.mozilla.org/de/docs/Mozilla/Gecko">Gecko</a>. Du solltest diese Kategorien verwenden, um Fehler und Probleme bezüglich Firefox OS, Gaia etc. zu melden.</p> + +<h3 id="Fehler_melden">Fehler melden</h3> + +<p>Zum effektiven Melden von Fehlern und Problemen kannst Du dieses <a href="http://mzl.la/1KL4ktp">Bugzilla Template</a> verwenden. Hinweise zum Ausfüllen des Templates findest Du weiter unten.</p> + +<h3 id="Pflichtfelder_und_optionale_Felder">Pflichtfelder und optionale Felder</h3> + +<p>Die folgenden Felder in Bugzilla sind immer auszufüllen:</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col"><strong>Feld</strong></th> + <th scope="col"><strong>Beschreibung</strong></th> + </tr> + </thead> + <tbody> + <tr> + <td>Component</td> + <td>Kategorie, in die der Fehler gehört. Wenn der Fehler in keine der vorhandenen Kategorien passt kannst Du "General" verwenden.</td> + </tr> + <tr> + <td>Summary</td> + <td>Zusammenfassung, die den Fehler kurz und treffend beschreibt.</td> + </tr> + <tr> + <td>Description</td> + <td>Aussagefähige Beschreibung des Fehlers. Eine gute Fehlermeldung sollte die Schritte zum Reproduzieren (steps to reproduce, STR) des Fehlers, die erwarteten und die tatsächlichen Ergebnisse enthalten. Bitte gib auch an, wie oft dieser Fehler auftritt (z.B. wenn Du die Schritte öfter wiederholst).</td> + </tr> + <tr> + <td>Build Information</td> + <td>Gehe zu Einstellungen > Geräteinformationen > Weitere Informationen und füge folgende Informationen in die Fehlermeldung ein: Betriebssystemversion, Plattform-Version, Build-ID, Updatekanal und die Informationen zum Commit auf Git. Falls Du einen Mac oder Linux Computer mit adb hast und dort git installiert ist, dann kannst Du <a href="https://github.com/Mozilla-TWQA/B2G-flash-tool/blob/master/check_versions.py">dieses Skript</a> ausführen und dessen Ergebnis in die Meldung kopieren.</td> + </tr> + <tr> + <td>Screenshots</td> + <td>Bitte füge Bildschirmfotos ein. Das kann uns helfen, den Fehler zu analysieren. Auf dem Flame Smartphone drückst Du dafür 2 Sekunden lang gleichzeitig den Ein-/Aus Schalter und die "Lautstärke runter/leiser" Taste bis auf dem Display eine Bestätigung des Bildschirmfotos angezeigt wird. Anschließend überträgst Du dieses Foto via USB auf Deinen Computer.</td> + </tr> + <tr> + <td>Video</td> + <td>Falls sich Dein Fehler auf ungewöhnliche Veränderungen des Displays bezieht die mit einem Bildschirmfoto nicht dargestellt werden können, dann mach bitte ein Video davon. Dieses Video kannst Du dann als Anhang zur Fehlermeldung hinzufügen. Du kannst das Video auch nach YouTube hochladen und die URL in die Fehlermeldung einfügen.</td> + </tr> + <tr> + <td>ADB logs</td> + <td>Falls adb auf Deinem Computer installiert ist: Schließe bitte Dein Smartphone an den Computer an und führe das Kommando |adb logcat| aus. Bitte füge das Ergebnis dieses Kommandos in eine Text-Datei ein und füge diese als Anhang zur Fehlermeldung hinzu.</td> + </tr> + </tbody> +</table> + +<p>Die folgenden Felder sind optional:</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col"><strong>Feld</strong></th> + <th scope="col"><strong>Beschreibung</strong></th> + </tr> + </thead> + <tbody> + <tr> + <td>Depends/Block</td> + <td>Zeige uns Abhängigkeiten zu anderen Fehlermeldungen.</td> + </tr> + <tr> + <td>Keywords</td> + <td>Schlüsselwörter für Bugzilla. Bestimmte Support-Abteilungen nutzen diese zur Statusverfolgung von Fehlern.</td> + </tr> + <tr> + <td>Whiteboard</td> + <td>Beinhaltet Tags. Füge beliebige Tags zur Statusverfolgung hinzu. Du solltest keine vorhandenen Tags ohne Erlaubnis löschen.</td> + </tr> + <tr> + <td>See Also</td> + <td>Hin und wieder haben Fehler Bezug zu einem anderen Fehler. Das kannst Du hier angeben.</td> + </tr> + <tr> + <td>Flags</td> + <td>Kennzeichen für die Statusverfolgung; das am häufigsten verwendete Kennzeichen in Firefox OS Fehlern ist blocking-b2g. Wenn eine Meldung als blocking-b2g gekennzeichnet ist, dann kann der Fehler die Veröffentlichung eines Releases gefährden und ist somit besonders zu beachten.</td> + </tr> + <tr> + <td>Security</td> + <td>Wenn ein Fehler die Sicherheit der persönlichen Daten gefährdet, monetäre Verluste oder ähnliches verursacht, dann solltest Du dieses Feld ankreuzen. Somit ist die Fehlermeldung nur noch für ausgewählte Mitarbeiter sichtbar.</td> + </tr> + </tbody> +</table> + +<p>Nähere Informationen zu den Bugzilla-Feldern findest Du auf <a href="https://bugzilla.mozilla.org/page.cgi?id=fields.html">Bugzilla Fields</a>.</p> + +<h3 id="Lokalisierungs-Probleme_melden">Lokalisierungs-Probleme melden</h3> + +<p>Wenn Du eine nicht übersetzte Zeichenkette siehst, dann kann das zwei Gründe haben:</p> + +<ul> + <li>Der Übersetzer hat dies bewußt nicht übersetzt. In diesem Fall melde bitte keinen Fehler!</li> + <li>Der Übersetzer konnte dies wegen eines Problems mit der Lokalisierungs-Funktion nicht übersetzen (l12y). In diesem Fall melde bitte einen Fehler.</li> +</ul> + +<h4 id="Wie_Lokalisierungs-Probleme_(l12y)_gemeldet_werden">Wie Lokalisierungs-Probleme (l12y) gemeldet werden</h4> + +<ol> + <li>Lege eine Meldung in Bugzilla an, als "Product" wählst Du 'Firefox OS'. Wähle unter "Component" die Firefox OS Komponente, in der das Lokalisierungsproblem auftritt. Trage bitte 'l12y' als Schlüsselwort in das Feld "Keyword" ein.</li> + <li>Fülle alle anderen Pflichtfelder aus.</li> +</ol> + +<h3 id="Besondere_Schlüsselwörter_(Keywords)">Besondere Schlüsselwörter (Keywords)</h3> + +<p>Die folgende Tabelle enthält Informationen zu speziellen Schlüsselwörten, die Du in Firefox OX Fehlermeldungen häufiger finden wirst.</p> + +<p><br> + Du solltest immer die Kombination Build-Version/Betriebssystem/Plattform, unter der der Fehler behoben ist, ins Kommentarfeld der Fehlermeldung eintragen bevor Du den <em>Status</em> auf <em>Verified </em>setzt. Wenn der Fehler auf allen Plattformen gemeldet ist und Du die Behebung des Fehlers nur auf einer bestimmten Plattform verifizieren kannst, dann gebe dies bitte in der Fehlermeldung an. Bitte setze den <em>Status</em> der Meldung in einem solchen Fall nicht auf <em>Verified</em>. Es müssen erst alle Plattformen erfolgreich getestet worden sein, bevor der <em>Status</em> auf <em>Verified</em> gesetzt wird.<br> + <br> + Zu guter Letzt: Falls andere Meldungen als Duplikat Deiner Meldung markiert wurden und Du Deine Meldung auf <em>Verified</em> setzt, dann prüfe diese Duplikate bitte ebenfalls und kommentiere diese Meldungen entsprechend. Oftmals markieren Entwickler eine Meldung als Duplikat obwohl der Fehler nur ähnlich, aber nicht identisch ist. Solche Fehlermeldungen können übersehen werden, wenn der Status ungeprüft auf <em>Verified</em> gesetzt wird.</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col"><strong>Keyword</strong></th> + <th scope="col"><strong>Beschreibung</strong></th> + </tr> + </thead> + <tbody> + <tr> + <td>meta</td> + <td>Zeigt an, dass eine Meldung nur zur Statusverfolgung genutzt wird. Mozilla benutz dies, um die Stati mehrerer Meldungen einer komplexeren Entwicklung in einer einzigen Meldung zu verfolgen. Meldungen mit diesem Keyword sollten von Entwicklern nicht in die Patch-Planung einbezogen werden. Bitte denk daran, dass Projektleiter und Tester dieses Keyword für die Statusverfolgung nutzen.</td> + </tr> + <tr> + <td>qablocker</td> + <td>Dieses Keyword wird benutzt, wenn eine Meldung das Testen in der Qualitätssicherung blockiert (manueller oder automatisierter Test eine neuen Entwicklung) und der Fehler daher im nächsten Projekt-Meilenstein der Beta-Phase bzw. Release-Veröffentlichung behoben sein muss.</td> + </tr> + <tr> + <td>qawanted</td> + <td>Nutze dieses Keyword für Meldungen die mehr Informationen, mehr Testfälle oder weitere Informationen zur Reproduzierbarkeit benötigen oder als Duplikat gekennzeichnet sind, ohne dass Du die duplizierte Original-Meldung finden kannst. Der über dieses Keyword angeforderte Qualitätssicherungs-Prozess wird im sogenannten Whiteboard aufgezeichnet. Wenn die Qualitätssicherung ihre Arbeit erledigt hat, sollte dieses Keyword entfernt werden.</td> + </tr> + <tr> + <td>regression</td> + <td>Dieses Keyword bedeutet, dass das Problem gelöst war und wieder aufgetreten ist (regressed). Um dieses Wiederauftreten des Problems zu verfolgen wird eine neue Meldung mit Keyword "regression" angelegt. Es wird ebenso für Fehler verwendet, die in früheren Releases behoben waren und im aktuellen Release wieder auftreten. Das Nachverfolgen dieser Probleme hilft uns fehleranfällige und instabile Bereiche zu identifizieren, die beim Testen besonders beachtet werden sollten.</td> + </tr> + <tr> + <td>regressionwindow-wanted</td> + <td>Kennzeichnet eine Meldung als "regression" Meldung bei der es sehr hilfreich wäre zu wissen, wann genau der Fehler aufgetreten ist (Zeitpunkt oder Zeitraum).</td> + </tr> + <tr> + <td>steps-wanted</td> + <td>Bei Meldungen mit diesem Keyword wäre es sehr hilfreich zu wissen, wie der Fehler reproduziert werden kann.</td> + </tr> + <tr> + <td>verifyme</td> + <td>So gekennzeichnete Probleme sollten von einem Dritten zusätzlich verifiziert werden, auch wenn der Fehler für den Melder und die Qualitätssicherung behoben zu sein scheint. Die Meldung enthält dann spezielle Angaben zur Hardware und zur Konfiguration, für die die Lösung zusätzlich noch verifiziert werden soll. Du solltest versuchen, diesen Fehler zu reproduzieren. Wenn Du dann bestätigen kannst, dass der Fehler bei Dir ebenfalls behoben ist, dann kann der <em>Status</em> von <em>Fixed</em> auf <em>Verified</em> geändert werden.<br> + </td> + </tr> + <tr> + <td>crash</td> + <td>Nutze dieses Keyword, wenn Du Abbrüche in Firefox OS bekommst.</td> + </tr> + </tbody> +</table> + +<div class="note"> +<p><strong>Hinweis</strong>: Weitere Informationen erhälst Du auf der Seite <a href="/de/docs/Mozilla/QA/Bug_writing_guidelines">Bug writing guidelines</a>. Das Mozilla <a href="https://wiki.mozilla.org/B2G/QA">B2G QA Wiki</a> enthält zudem nützliche Informationen zum Melden von Firefox OS Fehlern; die hilfreichsten Seiten sind <a href="https://wiki.mozilla.org/B2G/QA/Bugzilla">Bugzilla Usage</a> und <a href="https://wiki.mozilla.org/Bugmasters/Projects/FirefoxOS">Incoming bug triage for Firefox OS</a>.</p> +</div> + +<div class="note"> +<p><strong>Hinweis</strong>: Nähere Informationen zum Umgang mit Fehlern in der Gaia-Entwicklung findes Du auf <a href="/en-US/Firefox_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a>.</p> +</div> + +<p> </p> diff --git a/files/de/archive/b2g_os/developing_firefox_os/index.html b/files/de/archive/b2g_os/developing_firefox_os/index.html new file mode 100644 index 0000000000..29f0a9c290 --- /dev/null +++ b/files/de/archive/b2g_os/developing_firefox_os/index.html @@ -0,0 +1,26 @@ +--- +title: Hacking Firefox OS +slug: Archive/B2G_OS/Developing_Firefox_OS +translation_of: Archive/B2G_OS/Developing_Firefox_OS +--- +<div class="summary"> + <p>This section provides some useful articles covering different ways in which the Firefox OS experience can be modified/customized during the build or app writing process.</p> +</div> +<dl> + <dt> + <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Tips_and_tricks/modifying_hosts_file" title="/en-US/docs/Mozilla/Firefox_OS/Tips_and_tricks/modifying_hosts_file">Modifying the hosts file</a></dt> + <dd> + A guide to what can be achieved by modifying the Firefox OS hosts file.</dd> + <dt> + <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Customization_with_the_.userconfig_file" title="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Customization_with_the_.userconfig_file">Customization with the .userconfig file</a></dt> + <dd> + How to customize the build and execution of Firefox OS by changing the <code>.userconfig</code> file.</dd> + <dt> + <a href="/en-US/docs/Firefox_OS/Hacking_Firefox_OS/Localizing_Firefox_OS" title="/en-US/docs/Firefox_OS/Hacking_Firefox_OS/Localizing_Firefox_OS">Localizing Firefox OS</a></dt> + <dd> + A guide to localising the Firefox OS platform, making it available in your preferred languages.</dd> + <dt> + <a href="/en-US/docs/Mozilla/Firefox_OS/Hacking_Firefox_OS/Customizing_the_keyboard">Customizing the keyboard in Firefox OS apps</a></dt> + <dd> + This guide shows how to customize the keyboard in your Firefox OS apps.</dd> +</dl> diff --git a/files/de/archive/b2g_os/firefox_os_build_prerequisites/index.html b/files/de/archive/b2g_os/firefox_os_build_prerequisites/index.html new file mode 100644 index 0000000000..0c2f90d39c --- /dev/null +++ b/files/de/archive/b2g_os/firefox_os_build_prerequisites/index.html @@ -0,0 +1,446 @@ +--- +title: Firefox OS build prerequisites +slug: Archive/B2G_OS/Firefox_OS_build_prerequisites +translation_of: Archive/B2G_OS/B2G_OS_build_prerequisites +--- +<p>Vor dem Holen des Codes zum Bauen von Firefox OS benötigt man ein geeignet konfiguriertes <a href="https://developer.mozilla.org/en-US/docs/Developer_Guide/Build_Instructions" title="https://developer.mozilla.org/en-US/docs/Developer_Guide/Build_Instructions">Build-System</a>. Im folgenden wird dieser Vorgang beschrieben. Zur Zeit eignen sich 64-bit-Linux-Distributionen und Mac OS X.</p> +<div class="note"> + <p><strong>Anmerkung:</strong> Wenn man Firefox OS auf ein Telefon installieren will, beginnt man, ohne das Telefon an den Computer angeschlossen zu haben. Im Text wird dann später erklärt, wann man das Telefon anschließen muß.</p> +</div> +<h2 id="Kompatibles_Gerät_oder_Emulator_besorgen">Kompatibles Gerät oder Emulator besorgen</h2> +<p><span id="answer_long0" style="display: block;">Das System kann nur für ein kompatibles Gerät (i.a. ein Smartphone) oder einen Emulator gebaut werden. Obwohl wir diverse Geräte unterstützen, gibt es für einige von diesen unterschiedliche Ausführungen. Von diesen Ausführungen unterstützen wir zur Zeit nur bestimmte, und außerdem werden einige Geräte besser unterstützt als andere.</span></p> +<div class="note"> + <p><span style="display: block;"><strong>Anmerkung:</strong> Mozillas <a href="https://github.com/mozilla-b2g/B2G">B2G-Quellcode</a> ist die Referenzimplementation von B2G, aber Telefonherstellern ist es freigestellt, Fehlerkorrekturen ("Patches") hinzuzufügen oder andere Änderungen vorzunehmen. Wenn man zum Beispiel ein Alcatel One Touch kauft, läuft darauf eine herstellerspezifische Version. Das ist für die installierten Apps irrelevant, aber unter Umständen kann es auf Plattform-Ebene Unterschiede geben. Die Version für das Nexus-4 ("Nexus 4 Port") wird direkt von Mozilla gepflegt, also ist es viel wahrscheinlicher, dass dieses Telefon mit unserer Gecko-Version auf Anhieb funktioniert, als zum Beispiel bei Rang-3-Geräten.</span></p> +</div> +<h3 id="Rang_1_(Tier_1)">Rang 1 (Tier 1)</h3> +<p>Tier-1-Geräte werden bei der Entwicklung bevorzugt und sind typischerweise die ersten, die Fehlerkorrekturen ("bugfixes") und Erweiterungen ("feature updates") erhalten.</p> +<dl> + <dt> + Keon</dt> + <dd> + Keon ist ein Gerät der FIrma <a href="http://www.geeksphone.com/" title="http://www.geeksphone.com/">Geeksphone</a> und eines der ersten Entwicklertelefone. Beachte, dass Binärpakete ("builds") für diese Geräte von Geeksphone bereitgestellt werden.</dd> + <dt> + Inari</dt> + <dd> + Inari ist ein weiteres Testgerät. Benutze diese Konfiguration, um FirefoxOS für die ZTE-Open-Geräte zu bauen. <strong>Warnung:</strong> Neuere Firefox-OS-Builds könnten auf ZTE Open Probleme beim Booten von der Standard-Boot-Partition machen.</dd> + <dt> + Flame</dt> + <dd> + Flame is Mozillas neues Standard-Referenztelefon für Firefox OS. Die Konfiguration für Flame sollte auch verwendet werden, wenn man für das Gerät ZTE Open C baut, weil beide Geräte auf der Android-Jellybean-Basis aufbauen.</dd> + <dt> + </dt> + <dt> + <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Using_the_B2G_emulators" title="en-US/docs/Mozilla/Firefox_OS/Using_the_B2G_emulators">Emulatoren (ARM und x86)</a></dt> + <dd> + Zur Zeit gibt es zwei Emulatoren, einen für die Emulation eines ARM-Prozessors und einen für die Emulation eines x86-Prozessors. <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Using_the_B2G_emulators" title="/en-US/docs/Mozilla/Firefox_OS/Using_the_B2G_emulators">Hier erfährt man mehr über die Installation und die Verwendung der Emulatoren</a>.</dd> + <dd> + <strong>Achtung: Der x86-Emulator ist derzeit nicht praxistauglich, sowohl was die Installation angeht als auch die Unterstützung.</strong></dd> + <dt> + </dt> + <dt> + <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Using_the_B2G_desktop_client" title="/en-US/docs/Mozilla/Firefox_OS/Using_the_B2G_desktop_client">Desktop</a></dt> + <dd> + Man kann auch eine Version von Firefox OS für Desktop-Rechner bauen; diese führt <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Gecko" title="/en-US/docs/Mozilla/Gecko">Gecko</a> in einer <a href="https://developer.mozilla.org/en-US/docs/XULRunner" title="/en-US/docs/XULRunner">XULRunner</a>-Anwendung aus und darin Benutzerumgebung <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Platform/Gaia/Introduction_to_Gaia" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Gaia/Introduction_to_Gaia">Gaia</a>.</dd> + <dt> + Flatfish</dt> + <dd> + Flatfish ist das erste für Firefox OS entwickelte Tablet, auf dem jedoch einige Telefoniefunktionen fehlen. Es werden ein paar <a href="https://github.com/flatfish-fox/flatfish-kernel">spezielle Einstellungen</a> benötigt, um den Code zu bauen.</dd> +</dl> +<p>Natürlich kann man den <a href="/en-US/docs/Mozilla/Firefox_OS/Using_the_B2G_desktop_client" title="en-US/docs/Mozilla/Firefox_OS/Using_the_B2G_desktop_client">Desktop-Client</a> und die <a href="/en-US/docs/Mozilla/Firefox_OS/Using_the_B2G_emulators" title="en-US/docs/Mozilla/Firefox_OS/Using_the_B2G_emulators">Emulatoren</a> auch bauen, ohne ein Telefon zu benutzen.</p> +<h3 id="Rang_2_(Tier_2)">Rang 2 (Tier 2)</h3> +<p><span id="answer_long1" style="display: block;">Bei den Tier-2-Geräten ist die Grundfunktionalität gegeben, und viele Entwickler, insbesondere App-Entwickler, arbeiten damit, daher sind es üblicherweise die nächsten Geräte (nach Tier-1), für die Änderungen bereitgestellt werden.</span></p> +<dl> + <dt> + <a href="/en-US/docs/Mozilla/Firefox_OS/Samsung_Nexus_S" title="/en-US/docs/Mozilla/Firefox_OS/Samsung_Nexus_S"><span class="link-https">Samsung Nexus S</span></a></dt> + <dd> + Die einzigen Varianten dieses Smartphones, von denen bekannt ist, daß sie mit Firefox OS funktionieren, sind GT-I9020A (mit Amoled-Bildschirm) and GT-I9023 (Billigmodell mit LCD). Möglicherweise funktionieren aber auch weitere.</dd> + <dt> + Samsung Nexus S 4G</dt> + <dd> + The SPH-D720 is supported as a tier 2 device.</dd> +</dl> +<h3 id="Rang_3_(Tier_3)">Rang 3 (Tier 3)</h3> +<p><span id="answer_long1" style="display: block;">Man kann Firefox OS für diese Geräte bauen, aber die Hauptentwickler verwenden sie nicht regelmäßig. Bezüglich Stabilität, Zuverlässigkeit und Funktionsvielfalt stehen sie daher den Tier-1- und Tier-2- Geräten möglicherweise nach.</span></p> +<dl> + <dt> + Samsung Galaxy S2</dt> + <dd> + Nur die Variante i9100 funktioniert, keine andere, zumindest nicht offiziell (i9100P könnte auch funktionieren, da sie sie sich nur durch einen zusätzlichen NFC-Baustein unterscheidet.)</dd> + <dt> + Samsung Galaxy Nexus</dt> + <dd> + Zur Zeit ist keine Variante bekannt, die nicht funktioniert.</dd> + <dt> + Nexus 4</dt> + <dd> + Einige Anwender haben laut IRC dieses Gerät mit Erfolg getestet. Möglicherweise muß man für den Fall, daß man Android 4.4 installiert hat, vorher auf 4.3 zurückgehen (Android- <a href="https://developers.google.com/android/nexus/images#occamjwr66y">Betriebssystem-Images sind bei Google erhältlich</a>)</dd> + <dt> + Nexus 5</dt> + <dd> + Einige Anwender haben laut IRC dieses Gerät mit Erfolg getestet.</dd> + <dt> + Tara</dt> + <dd> + Tara ist ebenfalls ein Testgerät. Das "Manifest" für Tara existiert nur im "master branch". Um den Tara-Code zu erhalten, ruft man folgendes Script auf: "BRANCH=master ./config.sh tara".</dd> + <dt> + Unagi</dt> + <dd> + Unagi ist ein Telefon, das als Test- und Entwicklungsplattform für einfache bis Mittelklasse- Smartphones verwendet wird. Viele Core-Firefox-OS-Entwickler arbeiten auf Unagi.</dd> + <dt> + <a href="/en-US/docs/Mozilla/Firefox_OS/Pandaboard" title="/en-US/docs/Mozilla/Firefox_OS/Pandaboard">Pandaboard</a></dt> + <dd> + Das Pandaboard ist eine Entwicklungsplatine ("Board"), die auf der OMAP-4-Architektur basiert, und wird verwendet, um auf mobilen Plattformen zu entwickeln.</dd> +</dl> +<div class="warning"> + <strong>Wichtig</strong>: Nur solche Geräte werden unterstützt, auf denen mindestens <strong>Android 4</strong> (alias <strong>Ice Cream Sandwich</strong>) lauffähig ist. Für den Fall, daß ein Gerät oben aufgeführt ist, aber ein älteres Android-System installiert ist, muß man erst eine neuere Android-Version installieren.</div> +<div class="note"> + <p>Bemerkung: Tier-2 und Tier-3-Geräte haben einen virtuellen, d.h durch Software dargestellten, Home-Button anstelle eines physikalischen.</p> + <p>Alle Tier-1-Geräte haben dagegen einen physikalischen "Home"-Button, mit dem man bei Betätigen stets auf den Startbildschirm zurückkehrt. Die meisten Android-Geräte für Version 4 oder später haben einen auf dem Bildschirm dargestellten "Home"-Button. Auch Firefox OS kann solch eine Schaltfläche darstellen; sie wird automatisch bei entsprechenden Geräten aktiviert. Wenn dies versagen sollte, muß man die Einstellungen öffnen und zu den Geräteinformationen navigieren, dort dann "<span style="line-height: 1.5em; font-size: 14px;">Weitere Informationen" öffnen und "Entwicklermenü" einschalten (falls noch nicht geschehen). Dann wieder zurück zu den Einstellungen navigieren und das Entwickler-Menü öffnen, dort "Software-Startschaltfläche" einschalten.</span></p> +</div> +<h2 id="Anforderungen_für_Linux">Anforderungen für Linux</h2> +<p>Um auf Linux bauen zu können, benötigt man:</p> +<ul> + <li>eine installierte <strong>64bit GNU/Linux</strong>-Distribution (wir empfehlen Ubuntu 12.04).</li> + <li>mindestens <strong>4 GB</strong> RAM/swap</li> + <li>mindestens <strong>20 GB</strong> verfügbaren Massenspeicher</li> +</ul> +<p>Das ist zwar etwas mehr, als tatsächlich benötigt wird, aber mitunter kommt es vor, daß der Erstellungsprozeß gerade deswegen fehlschlägt, weil ein wenig Speicher fehlt.</p> +<p>Außerdem werden folgende Dienstprogramme benötigt und müssen ggf. nachinstalliert werden:</p> +<ul> + <li><strong>autoconf 2.13</strong></li> + <li><strong>bison</strong></li> + <li><strong>bzip2</strong></li> + <li><strong>ccache</strong></li> + <li><strong>curl</strong></li> + <li><strong>flex</strong></li> + <li><strong>gawk</strong></li> + <li><strong>git</strong></li> + <li><strong>gcc / g++ / g++-multilib</strong></li> + <li><strong>make</strong></li> + <li><strong>OpenGL shared libraries</strong></li> + <li><strong>patch</strong></li> + <li><strong>X11 headers</strong></li> + <li><strong>32-bit ncurses</strong></li> + <li><strong>32-bit zlib</strong></li> +</ul> +<h3 id="Installation_im_Falle_eines_64-Bit-Linux">Installation im Falle eines 64-Bit-Linux</h3> +<p>Im folgenden werden die Kommandos aufgeführt, mit denen man die notwendigen Programmpakete für das Bauen von Firefox OS installieren kann.</p> +<h4 id="Ubuntu_12.04_Linux_Mint_13_Debian_6">Ubuntu 12.04 / Linux Mint 13 / Debian 6</h4> +<p>Diese Kommandos in einem Terminal-Fenster ausführen:</p> +<pre class="language-html"><code class="language-html">sudo apt-get update +sudo apt-get install autoconf2.13 bison bzip2 ccache curl flex gawk gcc g++ g++-multilib git ia32-libs lib32ncurses5-dev lib32z1-dev libgl1-mesa-dev libx11-dev make zip</code></pre> +<p>Für den Fall, daß Firefox OS für das Referenzgerät <a href="https://developer.mozilla.org/en-US/Firefox_OS/Developer_phone_guide/Flame">"Flame"</a> oder Nexus 5 gebaut wird, diese Kommandos auführen:</p> +<p><code class="language-html">sudo apt-get install libxml2-utils</code></p> +<p>Ein Java-Entwicklungspaket ("JDK") kann von <a href="http://www.webupd8.org/2012/01/install-oracle-java-jdk-7-in-ubuntu-via.html">dieser Paketquelle (ppa</a>) installiert werden.</p> +<p>Bitte auch die obigen Anmerkungen berücksichtigen, die die Probleme beschreiben, die auftreten, wenn man für einen Emulator baut!</p> +<h4 id="Ubuntu_12.10_Debian_7">Ubuntu 12.10 / Debian 7</h4> +<p>Das folgende Kommando im Terminal-Fenster ausführen:</p> +<pre>$ sudo apt-get install autoconf2.13 bison bzip2 ccache curl flex gawk gcc g++ g++-multilib gcc-4.6 g++-4.6 g++-4.6-multilib git ia32-libs lib32ncurses5-dev lib32z1-dev libgl1-mesa-dev libx11-dev make zip</pre> +<p>Zusätzlich zu den oben erwähnte Schwierigkeiten beim Bauen für einen Emlator tritt hier noch das Problem auf, daß standardmäßig der Compiler in der Version gcc-4.7 verwendet wird, welcher den Compiliervorgang mit folgender Fehlermeldung abbricht:</p> +<p>"<code>KeyedVector.h:193:31: error: indexOfKey was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation"</code></p> +<p>Um diesen Fehler zu beheben, muß man auf die ältere Version gcc-4.6 als Standard-Compiler zurückgehen, und zwar am besten unmittelbar, nachdem man die Quellen für B2G heruntergeladen hat. Der Vorgang wird in der Anleitung "<a href="/en-US/docs/Mozilla/Firefox_OS/Customization_with_the_.userconfig_file#Changing_the_default_host_compiler">Changing the default host compiler</a>" (engl.) beschrieben.</p> +<p class="note">Bei einer unveränderten Ubuntu-12.10-Version gibt es eine Fehlermeldung wegen nicht erfüllter Abhängigkeiten der Systembibliotheken "ia32-libs". Dies wird mit diesen Befehlen behoben:</p> +<pre>sudo dpkg --add-architecture i386 +sudo apt-get update +sudo apt-get install ia32-libs</pre> +<h4 id="Ubuntu_13.04">Ubuntu 13.04</h4> +<p>Die folgenden Kommandos sind im Terminal-Fenster auszuführen:</p> +<pre>$ sudo apt-get install --no-install-recommends autoconf2.13 bison bzip2 ccache curl flex gawk gcc g++ g++-multilib gcc-4.6 g++-4.6 g++-4.6-multilib git ia32-libs lib32ncurses5-dev lib32z1-dev zlib1g:amd64 zlib1g-dev:amd64 zlib1g:i386 zlib1g-dev:i386 libgl1-mesa-dev libx11-dev make zip</pre> +<p>Auch hier muß von gcc-4.7 auf gcc-4.6 zurückgegangen werden, wie oben für Ubuntu 12.10 beschrieben.</p> +<h4 id="Ubuntu_13.10">Ubuntu 13.10</h4> +<p>With Ubuntu 13.10, multi-arch packages are now the main way to support multiple architectures (e.g. 32-bit on a 64-bit install). You must tell your Ubuntu system that you want to support 32-bit packages as well:<br> + </p> +<pre class="language-html"><code class="language-html">sudo dpkg --add-architecture i386 +sudo apt-get update</code></pre> +<p>Once you've completed that, then you can install the necessary packages:</p> +<pre class="language-html" style="font-family: 'Open Sans', sans-serif; line-height: 21px;"><code class="language-html">sudo apt-get install --no-install-recommends autoconf2.13 bison bzip2 ccache curl flex gawk gcc g++ g++-multilib gcc-4.6 g++-4.6 g++-4.6-multilib git lib32ncurses5-dev lib32z1-dev zlib1g:amd64 zlib1g-dev:amd64 zlib1g:i386 zlib1g-dev:i386 libgl1-mesa-dev libx11-dev make zip libxml2-utils + +sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 1 + +sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 2 + +sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.6 1 + +sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 2 + +sudo update-alternatives --set gcc "/usr/bin/gcc-4.6" + +sudo update-alternatives --set g++ "/usr/bin/g++-4.6"</code></pre> +<p>you can install the jdk via <a href="http://www.webupd8.org/2012/01/install-oracle-java-jdk-7-in-ubuntu-via.html">this ppa</a>.</p> +<h4 id="Ubuntu_14.04">Ubuntu 14.04</h4> +<p>Follow the instructions given for Ubuntu 13.10.</p> +<h4 id="Fedora_1920">Fedora 19/20</h4> +<p>Run the following command in Terminal:</p> +<pre class="note language-html"><code class="language-html">sudo yum install autoconf213 bison bzip2 ccache curl flex gawk gcc-c++ git glibc-devel glibc-static libstdc++-static libX11-devel make mesa-libGL-devel ncurses-devel patch zlib-devel ncurses-devel.i686 readline-devel.i686 zlib-devel.i686 libX11-devel.i686 mesa-libGL-devel.i686 glibc-devel.i686 libstdc++.i686 libXrandr.i686 zip perl-Digest-SHA wget</code></pre> +<p>The project should build correctly using the default compiler shipped with Fedora but if you encounter compilation errors you might need to install GCC 4.6.x:</p> +<ul> + <li><a href="http://people.mozilla.org/%7Egsvelto/gcc-4.6.4-fc19.tar.xz">Pre-compiled GCC 4.6.x for Fedora 19/20</a></li> +</ul> +<p>Download the tarball then install it to <code>/opt,</code> with the following command on Fedora 19/20:</p> +<pre class="note language-html"><code class="language-html">curl -O http://people.mozilla.org/~gsvelto/gcc-4.6.4-fc19.tar.xz +sudo tar -x -a -C /opt -f gcc-4.6.4-fc19.tar.xz</code></pre> +<p>To use GCC 4.6.x as the default host compiler you will have to set it explicitly after having retrieved the B2G sources: read <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Customization_with_the_.userconfig_file#Changing_the_default_host_compiler">Changing the default host compiler</a> to find out how to do it.</p> +<h4 id="Arch_Linux"><strong>Arch Linux</strong></h4> +<p>Run the following command in Terminal:</p> +<pre class="note language-html"><code class="language-html">sudo pacman -S --needed alsa-lib autoconf2.13 bison ccache curl firefox flex gcc-multilib git gperf libnotify libxt libx11 mesa multilib-devel wget wireless_tools yasm zip lib32-mesa lib32-mesa-libgl lib32-ncurses lib32-readline lib32-zlib</code></pre> +<p>To install the lib32-* packages you need to have the multilib repository enabled.</p> +<p>B2G <a href="https://developer.mozilla.org/en-US/Firefox_OS/Building#KeyedVector.h.3A193.3A31.3A_error.3A_indexOfKey_was_not_declared_in_this_scope">can only be compiled with gcc4.6.4</a>, and because Arch Linux always has bleeding edge software you will need to install <a href="https://aur.archlinux.org/packages/gcc46-multilib">gcc46-multilib from AUR</a>. Note that you will have to edit the PKGBUILD and add <code>staticlibs</code> to the <code>options</code> array, or gcc will be unable to compile B2G and give you a <code>cannot find -lgcc</code> error when compiling. You will also need to add the following to your <code>.userconfig</code> file:</p> +<pre class="language-html"><code class="language-html">export CC=gcc-4.6.4 +export CXX=g++-4.6.4</code></pre> +<p>By default, Arch Linux uses Python3. You'll have to force it to use the old python2. You can do that by linking the python2 executable to python but this is discouraged and considered error-prone. This will also break python 3 if it is installed on your system. A better way is to use <code>virtualenv</code>/<code>virtualenvwrapper</code>:</p> +<pre class="language-html"><code class="language-html">sudo pacman -S python-virtualenvwrapper +source /usr/bin/virtualenvwrapper.sh +mkvirtualenv -p `which python2` firefoxos +workon firefoxos</code></pre> +<p>Android will complain that you need make 3.81 or make 3.82 instead of 4.0. You can download <a href="https://aur.archlinux.org/packages/make-3.81/">make 3.81 from AUR</a>. This will install the make-3.81 binary on your path, you need to create a symlink named make to a location earlier in the PATH variable for the build to use the correct version.</p> +<pre class="language-html"><code class="language-html">mkdir -p ~/bin +ln -s `which make-3.81` ~/bin/make +export PATH=~/bin:$PATH</code></pre> +<p>Android also needs the Java6 SDK and Arch only has Java7. Unfortunately the aur build is broken, but you can still download the <a href="http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html#jdk-6u45-oth-JPR">Java 6 SDK</a> and install it manually. You will then need to put it in your path.</p> +<pre class="language-html"><code class="language-html">cp ~/Downloads/jdk-6u45-linux-x64.bin /opt +su +cd /opt +chmod +x jdk-6u45-linux-x64.bin +./jdk-6u45-linux-x64.bin +exit +ln -s /opt/jdk1.6.0_45/bin/java ~/bin/java</code></pre> +<h4 id="Gentoo_Linux"><strong>Gentoo Linux</strong></h4> +<h5 id="Installing_ccache">Installing ccache</h5> +<p>You will need to install <strong><a href="http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&chap=3#doc_chap3">ccache</a></strong>, a tool for caching partial builds.</p> +<pre class="language-html"><code class="language-html"># emerge -av ccache</code></pre> +<p>Because ccache is known to frequently cause support issues, Gentoo encourages you to use it <em>explicitly</em> and <em>sparingly</em>.</p> +<p>To enable the required use of ccache, on <em>the subsequent step</em> of this guide where the <code>./build.sh</code> script is called, Gentoo users should instead run the command with an explicitly extended path, ie.</p> +<pre class="language-html"><code class="language-html">PATH=/usr/lib64/ccache/bin:$PATH ./build.sh</code></pre> +<h5 id="Generating_Partition_Images">Generating Partition Images</h5> +<p>If you are building B2G for actual physical hardware, then you may at some point also wish to generate some partition images for upload to your device. (For example, to restore backed up files to the device via the <strong><em>fastboot</em></strong> utility)</p> +<p>The filesystem image format used in this case is YAFFS2 (Yet Another Filesystem 2). Gentoo has support for the very latest (ie. git HEAD) <code>yaffs2-utils</code> userland package in portage. (Note: You will also need kernel patches if you want to mount YAFFS2 images, but this is not really required since you can deconstruct and rebuild them instead.)</p> +<pre class="language-html"><code class="language-html"># emerge --autounmask-write yaffs2-utils; etc-update; emerge -av yaffs2-utils</code></pre> +<p>In order to generate such an image, simply change to the parent directory of the partition filesystem tree you wish to package, and issue a command like this:</p> +<pre class="language-html"><code class="language-html">mkyaffs2image system/ system.img</code></pre> +<h2 id="sect1"> </h2> +<h2 id="Anforderungen_für_Mac_OS_X">Anforderungen für Mac OS X</h2> +<p>Um Firefox OS unter Mac OS X zu bauen, benötigt man etwas Vorarbeit, die unten detailiert beschrieben ist. Außerdem werden typische Irrtümer und Fehler und ihre Lösungen erläutert.</p> +<div class="note"> + <p><strong>Anmerkung: Das Bauen (und Konfigurieren der Quellen) von B2G für das Gerät Keon funktioniert nicht auf einem Mac OS-Rechner</strong>. Stattdessen muß man unter Linux bauen, ggf. auf demselben Rechner, auf dem auch Mac OS läuft.</p> +</div> +<h3 id="Passende_XCode-Versionen_für_Mac_OS_10.9"><strong>Passende XCode-Versionen</strong> für Mac OS 10.9</h3> +<p>XCode 4.2 oder älter sind nicht kompatibel mit OS X 10.9 ("Mavericks") und fallen daher ganz aus. Ansonsten gilt, daß man den ICS-Emulator nicht mit OS X 10.9 oder neuer bauen kann, und für das Gerät "flatfish" scheitert das Bauen mit allen Entwicklungsumgebungen der Versionen XCode 5.x.</p> +<table class="standard-table"> + <caption> + Version compatibility of OS X 10.9.x</caption> + <tbody> + <tr> + <td> </td> + <td>emulator (ICS)</td> + <td>flatfish/vixen (JB-4.2)</td> + <td>emulator-jb (JB-4.3)</td> + <td>emulator-kk (KitKat-4.4)</td> + </tr> + <tr> + <td>XCode 4.3.3</td> + <td style="text-align: center;">X</td> + <td style="text-align: center;">X</td> + <td style="text-align: center;">X</td> + <td style="text-align: center;">X</td> + </tr> + <tr> + <td>XCode 4.4.1</td> + <td style="text-align: center;">X</td> + <td style="text-align: center;">O[1]</td> + <td style="text-align: center;">O</td> + <td style="text-align: center;">O</td> + </tr> + <tr> + <td>XCode 4.5.2</td> + <td style="text-align: center;">X</td> + <td style="text-align: center;">O[1]</td> + <td style="text-align: center;">O</td> + <td style="text-align: center;">O</td> + </tr> + <tr> + <td>XCode 4.6.3</td> + <td style="text-align: center;">X</td> + <td style="text-align: center;">O[1]</td> + <td style="text-align: center;">O</td> + <td style="text-align: center;">O</td> + </tr> + <tr> + <td>XCode 5.0.2</td> + <td style="text-align: center;">X</td> + <td style="text-align: center;">X</td> + <td style="text-align: center;">O</td> + <td style="text-align: center;">O</td> + </tr> + <tr> + <td>XCode 5.1.1</td> + <td style="text-align: center;">X</td> + <td style="text-align: center;">X</td> + <td style="text-align: center;">O</td> + <td style="text-align: center;">O</td> + </tr> + <tr> + <td>XCode 6.0.1</td> + <td style="text-align: center;">X</td> + <td style="text-align: center;">X</td> + <td style="text-align: center;">X</td> + <td style="text-align: center;">X</td> + </tr> + <tr> + <td>XCode 6.1beta2</td> + <td style="text-align: center;">X</td> + <td style="text-align: center;">X</td> + <td style="text-align: center;">X</td> + <td style="text-align: center;">X</td> + </tr> + </tbody> +</table> +<ol> + <li>You must have environment variable <strong>BUILD_MAC_SDK_EXPERIMENTAL=1</strong> exported to build flatfish/vixen.</li> +</ol> +<h3 id="Install_XCode_Command_Line_Utilities"><strong>Install XCode Command Line Utilities</strong></h3> +<p>You need to install Xcode's Command Line Utilities. You can download <em>just</em> the Command Line Utilities from <a href="https://developer.apple.com/downloads/" title="https://developer.apple.com/downloads/">Apple's developer downloads page</a> for your particular version of OS X, however if you would like the entire Xcode suite of applications, you can <a class="external" href="http://itunes.apple.com/us/app/xcode/id497799835?mt=12" style="line-height: 1.572;" title="http://itunes.apple.com/us/app/xcode/id497799835?mt=12">install Xcode</a><span style="line-height: 1.572;"> through the Mac App Store. </span></p> +<p>Xcode 4.3.1 (OS X 10.7 "Lion") and other newer versions such as 4.4.1+ (that is, Mac OS X10.8 "Mountain Lion"), won't necessarily include the required Command Line Utilities. When you install Xcode, make sure to go into Preferences, then the Downloads panel, and install the Command Line Utilities. In addition, make sure you have at least 20 GB of free disk space.</p> +<p><img alt="Screenshot of Xcode Downloads Command Line Tools" src="/files/4557/xcode_downloads_command_line_tools.png" style="width: 750px; height: 528px;"></p> +<div class="note"> + <strong>Note:</strong> The Firefox OS emulator requires a Core 2 Duo processor or later; that is, a system that is compatible with Mac OS X 10.7 "Lion." You do not actually have to be running Lion, you just have to be compatible with it. You can, however, build any Firefox OS build on many older Macs.</div> +<h3 id="Run_Firefox_OS_Mac_Bootstrap">Run Firefox OS Mac Bootstrap</h3> +<p>Next, open a terminal and run the following command:</p> +<pre class="brush: bash">curl -fsSL https://raw.github.com/mozilla-b2g/B2G/master/scripts/bootstrap-mac.sh | bash</pre> +<p>This will pull and run a bootstrap script that makes sure you have all the prerequisites met to build the emulator. It will also prompt you for permission to install anything you're missing, and provide warnings and suggested fixes to problems. The script will check for and install the following items:</p> +<ul> + <li><code>git</code></li> + <li><code>gpg</code></li> + <li><code>ccache</code></li> + <li><code>yasm</code></li> + <li><code>autoconf-213</code></li> + <li><code>gcc-4.6</code></li> + <li><code>homebrew</code></li> +</ul> +<h4 id="Xcode_wrangling">Xcode wrangling</h4> +<p>If you have already upgraded to Xcode 4.4+ and get the message that Xcode is outdated, check the Xcode path with:</p> +<pre>xcode-select -print-path</pre> +<p>If it still points to <code>/Developer</code> you can update the path with:</p> +<pre>sudo xcode-select -switch /Applications/Xcode.app</pre> +<h4 id="Making_the_Mac_OS_X_10.6_SDK_available">Making the Mac OS X 10.6 SDK available</h4> +<p>You also need to have the Mac OS X 10.6 SDK available. The SDK needs to be available at</p> +<pre>/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/</pre> +<p>If it cannot be found there you will need to extract and copy it from Xcode 4.3. To do this:</p> +<ol> + <li>Download the XCode 4.3 .dmg file from the <a class="external" href="https://developer.apple.com/downloads/index.action">Apple Developer</a> portal (you'll need an <a href="https://developer.apple.com/register/index.action" title="https://developer.apple.com/register/index.action">Apple Developer account</a>).</li> + <li>Download the utility <a href="http://www.charlessoft.com/" title="http://www.charlessoft.com/">Pacifist</a> and use it to extract the 10.6 SDK from the XCode 4.3 .dmg file. Click on the "Extract Package" button, find the SDK by searching for 10.6 in the search box, then <em>Ctrl + click</em> on the MacOSX10.6.sdk directory and Extract it to a suitable location.</li> + <li>Add a symlink from the 10.6 SDK location to the <code>/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/</code> directory. For example, if you put the 10.6 SDK on your desktop, the comment would be</li> +</ol> +<pre>ln -s /Users/<em><yourusername></em>/Desktop/MacOSX10.6.sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/</pre> +<div class="note"> + <p><strong>Note</strong>: We can drop the 10.6 SDK requirement after <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=784227" title="https://bugzilla.mozilla.org/show_bug.cgi?id=784227">bug 784227</a> has been fixed, and our version of <a href="https://github.com/mozilla-b2g/B2G/issues/189" title="https://github.com/mozilla-b2g/B2G/issues/189">platform_build has been updated</a>.</p> +</div> +<h3 id="Be_aware_of_Mac_file_system_case_sensitivity">Be aware of Mac file system case sensitivity</h3> +<p>By default, Mac OS X ships with a case-insensitive file system. This is problematic because the Linux kernel has a number of files with the same name, but different case. For example, see the header files <code>xt_CONNMARK.h</code> and <code>xt_connmark.h</code>. This results in a number of files appearing to be modified in <code>/kernel</code> after a fresh <code>./config.sh</code>.</p> +<p>In many cases you can run the build just fine; for some platforms, however, you may encounter the following error:</p> +<pre><span class="quote">ERROR: You have uncommited changes in kernel +You may force overwriting these changes +with |source build/envsetup.sh force| + +ERROR: Patching of kernel/ failed.</span></pre> +<p><span class="quote">Please see <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=867259" title="https://bugzilla.mozilla.org/show_bug.cgi?id=867259">bug 867259</a></span> for more discussion and possible fixes for this problem.</p> +<p>Alternatively, it will always be safest to build on a case sensitive file system. The easiest way to do this is to create a separate, mountable disk image with case-sensitivity enabled. You can do this using Apple's Disk Utility application or from the command line:</p> +<pre>hdiutil create -volname 'firefoxos' -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 40g ~/firefoxos.sparseimage</pre> +<p>Mount the drive with:</p> +<pre>open ~/firefoxos.sparseimage</pre> +<p>Change into the mounted drive with:</p> +<pre>cd /Volumes/firefoxos/</pre> +<p>You can then check out the code and compile from this location without worrying about case-sensitivity problems.</p> +<h3 id="Mountain_Lion_homebrew_gotcha">Mountain Lion homebrew gotcha</h3> +<div> + <div> + If you are on Mountain Lion and you receive an error during the installation of the dependencies via homebrew, such as:</div> +</div> +<div> + <pre>clang: error: unable to execute command: Segmentation fault: 11</pre> + ... try reinstalling the dependency manually adding the --use-gcc flag, for example: + <pre>brew install mpfr --use-gcc</pre> +</div> +<h3 id="Follow_Samsung_Galaxy_S2_extra_steps">Follow Samsung Galaxy S2 extra steps</h3> +<p>If you plan to build for the Samsung Galaxy S2, you will also need to install heimdall. See {{ anch("Installing heimdall") }} for details. This is <strong>not</strong> done for you by the bootstrap script!</p> +<div class="note"> + <strong>Note:</strong> If you have installed the <a class="external" href="http://www.samsung.com/us/kies/" title="http://www.samsung.com/us/kies/">Samsung Kies</a> tool, which is used to manage the contents of many Samsung phones, you will have to remove it before you can flash Firefox OS onto your device. You can use the standard application removal process on Windows; on Mac, the Kies install disk image has a utility to fully remove Kies from your system. Flashing <strong>will not work</strong> if you have Kies installed. If you forget to remove Kies, the build system will detect it and remind you to uninstall it. Note also that the uninstall tool does not correctly remove the folder <code>~/Library/Application Support/.FUS</code>, and leaves a reference to a utility there in your user startup items list. You will want to remove these manually.</div> +<h3 class="note" id="Fix_libmpc_dependency_if_broken">Fix libmpc dependency if broken</h3> +<p>gcc 4.6 was built with libmpc 0.9; if you then use homebrew to update packages, libmpc gets updated to version 1.0, but homebrew doesn't rebuild gcc 4.6 after the library version changes. So you need to create a symlink to make things work again, like this:</p> +<pre>cd /usr/local/lib/ +ln -s libmpc.3.dylib libmpc.2.dylib</pre> +<h3 id="Optional_Install_HAX">Optional: Install HAX</h3> +<p>Intel provides a special driver that lets the B2G emulator run its code natively on your Mac instead of being emulated, when you're using the x86 emulator. If you wish to use this, you can <a class="external" href="http://software.intel.com/en-us/articles/intel-hardware-accelerated-execution-manager/" title="http://software.intel.com/en-us/articles/intel-hardware-accelerated-execution-manager/">download and install</a> it. It's not required, but it can improve emulation performance and stability. </p> +<p>Before you install HAX you will need to install the <a href="http://developer.android.com/sdk/index.html" title="http://developer.android.com/sdk/index.html">Android SDK</a>.</p> +<h2 class="note" id="Install_adb">Install adb</h2> +<p>The build process needs to pull binary blobs from the Android installation on the phone before building B2G (unless you're building the emulator, of course). For this, you will need <code>adb</code>, the Android Debug Bridge.</p> +<p>You can download and install <code>adb</code> as part of the Android SDK package, for Mac, Linux or Windows - visit the <a href="http://developer.android.com/sdk/index.html">Get the Android SDK</a> page.</p> +<p>Newer Linux distributions have <code>adb</code> already in their repositories. For Ubuntu 12.10 and later, run the following command:</p> +<pre>sudo apt-get install android-tools-adb</pre> +<p>Or for Fedora 18/19:</p> +<pre>sudo yum install android-tools</pre> +<p>If your distribution does not have packages for <code>adb </code>available (i.e. Ubuntu 12.04 or Fedora 17), you'll need to install the <a class="external" href="http://developer.android.com/sdk/index.html" title="http://developer.android.com/sdk/index.html">Android SDK starter package</a> for your platform (you'll want the <em>ADT Bundle</em>, not the <em>SDK Tools Only</em> option). Then run their package manager, <code>$SDK_HOME/tools/android</code>, and use the GUI to install "Android SDK Platform-tools".</p> +<p>Find out where <code>adb</code> is installed (usually in <code>usr/bin</code>, possibly additionally inside <code>adt/platform-tools</code>, depending on how you installed it). Be sure to add this directory to your <code>PATH</code>. This can be done by adding the line</p> +<pre>PATH=$SDK_HOME:$PATH</pre> +<p>replacing <code>$SDK_HOME</code> with the location of the android sdk, to your <code>~/.bashrc</code> or equivalent.</p> +<h2 class="note" id="Install_heimdall">Install heimdall</h2> +<p>Heimdall is a utility for flashing the Samsung Galaxy S2. It's used by the Boot to Gecko flash utility to replace the contents of the phone with Firefox OS, as well as to flash updated versions of B2G and Gaia onto the device. You'll need it if you want to install Firefox OS on a Galaxy S2; it is <strong>not</strong> needed for any other device. For other devices, we build and use the fastboot utility instead.</p> +<div class="note"> + <strong>Note:</strong> Again, it's important to note that this is <strong>only required for installing Firefox OS on the Samsung Galaxy S2</strong>.</div> +<p>There are two ways to install heimdall:</p> +<ul> + <li>You can <a class="link-https" href="https://github.com/Benjamin-Dobell/Heimdall" title="https://github.com/Benjamin-Dobell/Heimdall">download the code</a> GitHub and build it yourself.</li> + <li>Use a package manager to install it. + <ul> + <li>On Linux: <code>sudo apt-get install libusb-1.0-0 libusb-1.0-0-dev</code></li> + <li>On Mac, you can <a class="link-https" href="https://github.com/downloads/Benjamin-Dobell/Heimdall/heimdall-suite-1.3.2-mac.dmg" title="https://github.com/downloads/Benjamin-Dobell/Heimdall/heimdall-suite-1.3.2-mac.dmg">download an installer package</a> and use that.</li> + </ul> + </li> +</ul> +<h2 id="Configure_ccache">Configure ccache</h2> +<p>The B2G build process uses ccache. The default cache size for ccache is 1GB, but the B2G build easily saturates this; around 3GB is recommended. You can configure your cache by running the following command inside terminal:</p> +<pre><code>$ ccache --max-size 3GB</code></pre> +<h2 id="For_Linux_configure_the_udev_rule_for_your_phone">For Linux: configure the udev rule for your phone</h2> +<div class="note"> + <p>Note: This section is specific to Linux; Mac OSX has the necessary device permissions set up already.</p> +</div> +<p>Next, you need to confingure the udev rule for your phone,</p> +<p>You can get the USB vendor ID by running <code>lsusb</code> with your phone plugged in, but typically it's Google <code>18d1,</code> Samsung <code>04e8</code>, ZTE <code>19d2</code>, Geeksphone/Qualcomm <code>05c6</code>. Add this line in your <code>/etc/udev/rules.d/android.rules</code> file (replacing <code>XXXX</code> with the ID for your device):</p> +<pre>SUBSYSTEM=="usb", ATTR{idVendor}=="XXXX", MODE="0666", GROUP="plugdev"</pre> +<p>Take ZTE for example, the content in android.rules will be</p> +<pre style="font-size: 14px;">SUBSYSTEM=="usb", ATTR{idVendor}=="19d2", MODE="0666", GROUP="plugdev"</pre> +<div class="note"> + <p><span style="line-height: 1.572;">If the file doesn't exist, create it. The <code>rules.d</code> directory is usually read only by default, so you may have to use <code>chmod</code> to make the directory writeable, or the file, or both.</span></p> +</div> +<p><span style="line-height: 1.572;">Once you've saved the file, and closed it, make the file readable:</span></p> +<pre>$ sudo chmod a+r /etc/udev/rules.d/android.rules +</pre> +<p>Now that the udev rules have been updated, restart the udev daemon. For ubuntu:</p> +<pre>sudo service udev restart</pre> +<p>Finally, unplug and the USB cable but don't replug it in because we need to enable remote debugging on the phone first.</p> +<h2 id="Enable_remote_debugging">Enable remote debugging</h2> +<p>Before you plug your phone back into your USB port, put it USB developer mode. This allows you to debug and flash the phone. To enable developer mode, on your phone select <code>Settings app</code> -> <code>Device information</code> -> <code>More Information</code> -> <code>Developer</code> -> <code>Remote debugging</code> (this was called Developer mode on older versions.) Once the option is checked, remote debugging is enabled, and you are ready to go.</p> +<p>At this point, connect your phone to your computer via a USB cable (if you created the udev rule before, this will trigger udev to detect the phone and create the device node with the right permissions). Now you can check if you can list your device via the <code>adb devices</code> command. If everything has worked ok, you should see an output similar to this (the following is for a Geeksphone Keon):</p> +<pre style="font-size: 14px;">$ adb devices +List of devices attached +full_keon device</pre> +<p>If the device did not list as expect, check the file name and the script are all correct (see previous section), then restart the computer and retype the command again. Note also that if your device uses fastboot, the bootloader may identify itself with a different vendor ID than the one you see when the device boots normally.</p> +<h2 id="Backup_the_phone_system_partition">Backup the phone system partition</h2> +<div class="warning"> + <p><strong>Note:</strong> You have to do this before you build your device if you do not have existing system backup. Because some libraries will be referenced in build time. These library might be proprietary so we can't provide in our code base.</p> +</div> +<p>It is recommended to back up the entire Android system partition on your phone.</p> +<p>You can use this copy of the binary blobs for Android in case you later delete your B2G tree. To do this, run:</p> +<pre>adb pull /system <backup target dir>/system +</pre> +<p> Depending on the phone, you may also need to pull the /data and/or /vendor directories:</p> +<pre>adb pull /data <backup target dir>/data +adb pull /vendor <backup target dir>/vendor +</pre> +<p>If the pull commands fail with "insufficient permission" message, try the following:</p> +<ul> + <li>stop and restart the adb server, or if that fails,</li> + <li>double-check that you have granted <em>root</em> permissions to the 'adb' tool within your custom ROM (e.g. under CyanogenMod, change 'Settings -> System -> Developer Options -> Root Access' to 'Apps and ADB' or 'ADB only').</li> + <li>Verify that you have set up the udev rule correctly (see {{ anch("For Linux: configure the udev rule for your phone") }}.</li> +</ul> +<h2 id="On_to_the_next_step">On to the next step</h2> +<pre>At this point, you should be ready to <a href="/en-US/docs/Mozilla/Firefox_OS/Preparing_for_your_first_B2G_build" title="en-US/docs/Mozilla/Firefox_OS/Preparing_for_your_first_B2G_build">fetch the Firefox OS code</a>!</pre> diff --git a/files/de/archive/b2g_os/firefox_os_faq/index.html b/files/de/archive/b2g_os/firefox_os_faq/index.html new file mode 100644 index 0000000000..0cc309dbfe --- /dev/null +++ b/files/de/archive/b2g_os/firefox_os_faq/index.html @@ -0,0 +1,41 @@ +--- +title: Firefox OS FAQ DE +slug: Archive/B2G_OS/Firefox_OS_FAQ +translation_of: Archive/B2G_OS/Introduction +--- +<dl> + <dt> + <span id="result_box" lang="de"><span class="hps">Wie bekomme ich</span> <span class="hps">ein</span> <span class="hps">Developer Preview</span> <span class="hps">Telefon?</span></span></dt> + <dd> + Weitere Informationen werden bald auf der <span id="result_box" lang="de"><span class="hps">Geeksphone</span> <span class="hps">Website zur Verfügung</span></span> stehen.</dd> + <dt> + Wenn ich kein Entwickler-Telefon kaufen möchte, kann ich trotzdem eine App für Firefox OS entwickeln?</dt> + <dd> + Selbstverständlich! Sie können die App über Android testen, oder auf dem Computer mit dem (using <a href="https://hacks.mozilla.org/2012/10/firefox-marketplace-aurora/">Marketplace for Firefox</a>) <a href="https://hacks.mozilla.org/2012/12/firefox-os-simulator-1-0-is-here/">Firefox OS simulator</a>.</dd> + <dt> + Wann wird das "fertige" Telefon verfügbar sein?</dt> + <dd> + Wir werden mit mehreren Partnern gemeinsam das Telefon auf den Markt bringen, jedoch besprechen wir uns diesbezüglich zu einem späteren Zeitpunkt nochmal.</dd> + <dt> + Wo kann ich mir Firefox OS auf mein Handy laden?</dt> + <dd> + <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Building_and_installing_Firefox_OS">https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Building_and_installing_Firefox_OS</a></dd> + <dt> + Wie kann ich meine Firefox OS App testen?</dt> + <dd> + Auf Android oder über unseren OS Simulator.</dd> + <dt> + Was ist Firefox OS?</dt> + <dd> + <span id="result_box" lang="de"><span class="hps">Es ist ein neues</span> <span class="hps">Handy-Betriebssystem, dass komplett auf offenen Web-Standards basieren wird. Es ermöglicht für jede Geräte-Funktion </span></span><span id="result_box" lang="de"><span class="hps atn">(</span><span>Telefonie,</span> <span class="hps">Messaging</span><span>, Browsen</span> <span class="hps">usw.)</span></span> eine eigenenständige auf dem HTML5-Standard basierende Applikation zu entwickeln, die grundsätzlich (theoretisch) auf jedem anderen Gerät (<font><font lang="de">nur verfügbar in systemeigene Anwendungen)</font></font> funktionieren würde.</dd> + <dt> + Wie ist die Liste der vollständigen Web APIs; Werden diese standardisiert werden?</dt> + <dd> + <font><font lang="de">Eine große Anzahl von WebAPIs wird in die erste Implementierung des Firefox-OS aufgenommen werden. </font><font lang="de">Eine vollständige Liste finden Sie auf</font></font></dd> + <dd> + <a href="https://wiki.mozilla.org/WebAPI#APIs"><font><font lang="de">https://wiki.mozilla.org</font></font>https://wiki.mozilla.org/WebAPI#APIs</a>.</dd> + <dt> + <font lang="de">Sind die Web-APIs für den plattformübergreifenden Einsatz standardisiert?</font></dt> + <dd> + <font><font lang="de">Ja, die APIs sind das Ergebnis von Arbeiten mit mehreren Partnern, die bereits auch für andere Plattformen entwickelt haben. Das Umsetzen stellt in Bezug auf die unterschiedlichen Hardware-Anforderungen der Benutzer ein Problem dar, das nicht nur Mozilla beschäftigt</font></font>. Unsere Anwendungen sind ein guter Anhalts&Ausgangspunkt für weitere zukünftige Plattformen und Entwicklungen.</dd> +</dl> diff --git a/files/de/archive/b2g_os/gaia/gaia_apps/index.html b/files/de/archive/b2g_os/gaia/gaia_apps/index.html new file mode 100644 index 0000000000..e4f64963a0 --- /dev/null +++ b/files/de/archive/b2g_os/gaia/gaia_apps/index.html @@ -0,0 +1,86 @@ +--- +title: Gaia apps +slug: Archive/B2G_OS/Gaia/Gaia_apps +translation_of: Archive/B2G_OS/Platform/Gaia/Gaia_apps +--- +<div class="summary"> +<p><span class="seoSummary">Gaia is the front-end of Firefox OS, which contains system administration functionality and the built-in suite of apps shipped with Firefox OS devices. All the Gaia source code — even the system, and keyboard IMEs — is fully implemented with HTML5 (HTML + CSS + JavaScript) & Open WebAPIs. This set of documents contains information on how each of the default apps available in the Gaia family works.</span></p> +</div> + +<h2 id="Gaia_functionality_categories">Gaia functionality categories</h2> + +<p>The different apps inside Gaia can be roughly categorized into the groups listed below.</p> + +<div class="note"> +<p><strong>Note</strong>: Many of the pages linked to for more explanation of how the individual apps work are README pages inside the <a href="https://github.com/mozilla-b2g/gaia/">Gaia Github repo</a>. This is because many of the apps are on rapid development cycles and therefore subject to rapid (often daily) change, so it would make little sense to try to keep MDN pages updated with these changes. The engineer-maintained README pages are currently the most accurate source of information.</p> +</div> + +<h3 id="Platform">Platform</h3> + +<p>Including the System, Settings, Lockscreen, build scripts, and Bluetooth apps.</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/7503/platform_team.png" style="display: block; height: 269px; margin: 0px auto; width: 355px;"></p> + +<h4 id="Platform_apps_further_explanation">Platform apps: further explanation</h4> + +<dl> + <dt><a href="/en-US/Firefox_OS/Platform/Gaia/Gaia_apps/System">System</a></dt> + <dd>The System app is the first web app loaded by Gecko during the <a href="https://developer.mozilla.org/en-US/Firefox_OS/Platform/Architecture#Firefox_OS_bootup_procedure">Firefox OS bootup procedure</a>, and it handles numerous responsibilities that are required generally for the running of the system, and are therefore not scoped per individual web app.</dd> + <dt><a href="/en-US/Firefox_OS/Platform/Gaia/Gaia_apps/Browser">Browser</a></dt> + <dd>The Browser app (which is now part of System) provides browser-like functionality where it is needed — including page navigation, search and bookmarks.</dd> + <dt><a href="/en-US/Firefox_OS/Platform/Gaia/Gaia_apps/Window_Management">Window Management</a></dt> + <dd>Firefox OS's window management functionality — including app life cycle and interaction, notifications, animations and much more — is handled by a specific part of the System app. This article looks at Firefox OS Window Management in detail.</dd> + <dt><a href="/en-US/Firefox_OS/Platform/Gaia/Gaia_apps/Settings">Settings</a></dt> + <dd>The Settings app allows Firefox OS users to configure device settings, and responds to incoming activities (<a href="/en-US/docs/WebAPI/Web_Activities">Web activities</a> with a name of <code>configure</code>), which allows other apps to jump to different panels inside the Settings app to handle configuration as required (for example showing the wifi settings panel if no data connection is available.)</dd> +</dl> + +<h3 id="Communication">Communication</h3> + +<p>Including the Dialer, Contact, SMS apps and FTU apps.</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/7499/comms_team.png" style="display: block; height: 246px; margin: 0px auto; width: 317px;"></p> + +<h4 id="Communication_apps_further_explanation">Communication apps: further explanation</h4> + +<p>TBD</p> + +<h3 id="Productivity">Productivity</h3> + +<p>Including the Email, Calendar, and Clock apps.</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/7505/productivity_team.png" style="display: block; height: 178px; margin: 0px auto; width: 303px;"></p> + +<h4 id="Productivity_apps_further_explanation">Productivity apps: further explanation</h4> + +<dl> + <dt><a href="https://github.com/mozilla-b2g/gaia/blob/master/apps/calendar/README.md">Calendar</a></dt> + <dd>The Firefox OS built-in calendar app.</dd> + <dt><a href="https://github.com/mozilla-b2g/gaia/blob/master/apps/clock/README.md">Clock</a></dt> + <dd>Firefox OS's default Clock app, which includes alarm, timer and stopwatch functionality.</dd> + <dt><a href="https://github.com/mozilla-b2g/gaia/blob/master/apps/email/README.md">Email</a></dt> + <dd>The Gaia e-mail app.</dd> +</dl> + +<h3 id="Media">Media</h3> + +<p>Including the Camera, Gallery, Music, and Video apps, and some media related functions such as forward lock DRM and wallpapers.</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/7501/media_team.png" style="display: block; height: 250px; margin: 0px auto; width: 386px;"></p> + +<h4 id="Media_apps_further_explanation">Media apps: further explanation</h4> + +<dl> + <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Gaia/Gaia_apps/Video">Video</a></dt> + <dd>Video is a simple video player app that will play videos present on your Firefox OS device's storage media.</dd> + <dt><a href="https://github.com/mozilla-b2g/gaia/blob/master/apps/camera/README.md">Camera</a></dt> + <dd>Camera allows Firefox OS users to capture and manage videos and photos from the device camera(s), and responding the <a href="/en-US/docs/WebAPI/Web_Activities">Web activities</a> of type <code>pick</code> from other apps that want to grab media using Camera's functionality.</dd> +</dl> + +<h3 id="Other_Gaia_features">Other Gaia features</h3> + +<p>Besides these functions, there are several other major features such as browser, homescreen, marketplace, test framework, PDF viewer, and app manager, which are developed closely alongside Gaia.</p> + +<dl> + <dt><a href="https://github.com/mozilla/pdf.js/blob/master/README.md">pdf.js</a></dt> + <dd>pdf.js is an HTML5-based PDF viewer, used inside Gaia for viewing PDFs. Note that the codebase for pdf.js is maintained in a separate repo, outside Gaia.</dd> +</dl> diff --git a/files/de/archive/b2g_os/gaia/hacking/index.html b/files/de/archive/b2g_os/gaia/hacking/index.html new file mode 100644 index 0000000000..64b9be9f79 --- /dev/null +++ b/files/de/archive/b2g_os/gaia/hacking/index.html @@ -0,0 +1,181 @@ +--- +title: Hacking Gaia +slug: Archive/B2G_OS/Gaia/Hacking +translation_of: Firefox_OS/Developing_Gaia +--- +<p>Gaia ist die Sammlung von Webapps, die das Front-End des Firefox OS (Codename Boot to Gecko) bilden.</p> +<p>Alles was Sie auf dem Bildschirm von Firefox OS sehen, inklusive dem Homescreen, wurde nur mit Hilfe von freien Web-Technologien erstellt, </p> +<p> </p> +<h2 id="Quellcode_besorgen" style="margin: 0px 0px 1em; padding: 0px; line-height: 20px; color: rgb(68, 68, 68); font-family: Arial, sans-serif;">Quellcode besorgen</h2> +<p>To get the source code for Gaia, <a href="https://github.com/mozilla-b2g/gaia" title="https://github.com/mozilla-b2g/gaia">fork us on GitHub</a> and then clone your fork using <a href="http://git-scm.com/" title="http://git-scm.com/">git</a>.</p> +<pre>$ git clone https://github.com/<span style="color: #a9a9a9;">username</span>/gaia.git</pre> +<h2 id="Gaia_starten" style="margin: 0px 0px 1em; padding: 0px; line-height: 20px; color: rgb(68, 68, 68); font-family: Arial, sans-serif;">Gaia starten</h2> +<p>Sie können Gaia entweder auf Ihrem Desktop nutzen oder mit einem kompatiblem mobilen Gerät.</p> +<p> </p> +<p><span style="font-family: Georgia, Times, 'Times New Roman', serif; font-size: 1.428em; line-height: inherit;">B2G Desktop</span></p> +<p><span style="color: rgb(68, 68, 68); font-family: Arial, sans-serif; line-height: 20px;">B2G Desktop is a desktop build of the app runtime used on Firefox OS devices which you can use to run Gaia on your desktop computer.</span></p> +<p>You can download a nightly build of B2G Desktop from <a href="http://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/" title="http://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/">here</a>. Currently we recommend installing the latest <a href="http://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/latest-mozilla-beta/" title="http://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/latest-mozilla-beta/">beta build</a> for your platform. There are builds for Linux (32 bit and 64 bit), OS X and Windows.</p> +<p><span style="line-height: 20px; color: rgb(68, 68, 68); font-family: Arial, sans-serif;">Nightly builds come packaged with a recent version of gaia. Once you've downloaded the archive, all your need to do is extract it to a folder and run the b2g binary from the extracted folder.</span></p> +<p><strong>Note:</strong> 64 bit Linux builds do not currently work on some distributions, this is <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=812484" title="https://bugzilla.mozilla.org/show_bug.cgi?id=812484">bug </a><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=812484" title="https://bugzilla.mozilla.org/show_bug.cgi?id=812484">812484</a>. If you have problems try a 32-bit build instead.</p> +<pre>$ cd b2g +$ ./b2g</pre> +<p>To run B2G with your own version of Gaia for development purposes you first need build a profile from your clone:</p> +<pre>$ cd <span style="color: #a9a9a9;">/path/to/gaia</span> +$ DEBUG=1 make</pre> +<p>This will generate a directory in your gaia directory called "profile". The DEBUG part runs Gaia as hosted apps on a built-in web server, rather than the default packaged apps which have to be re-packaged after every change.</p> +<p><strong>Note: </strong>Debug builds are currently broken on B2G Desktop, so until <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=816957" title="https://bugzilla.mozilla.org/show_bug.cgi?id=816957">bug 816957</a> is fixed you need to run "make" without the "DEBUG=1" part, then re-run make every time you make a change to Gaia.</p> +<p> </p> +<p>You can then run B2G Desktop with your generated profile like so:</p> +<pre>$ <span style="color: #a9a9a9;">/path/to/b2g/</span>b2g-bin -profile <span style="color: #a9a9a9;">/path/to/gaia/</span>profile</pre> +<p>If you want to you can build your own B2G Desktop from source.</p> +<h3 id="B2G_Device">B2G Device</h3> +<p> </p> +<p>If you have a compatible mobile device you can also run Gaia by flashing it with Firefox OS. Please see <a href="https://github.com/mozilla-b2g/B2G/blob/master/README.md" rel="nofollow">documentation here</a>.</p> +<p>There is also <a href="https://wiki.mozilla.org/B2G/DeveloperPhone#Gaia.2FB2G_Development_Environment" rel="nofollow">documentation here</a> about testing changes on your device.</p> +<h2 id="Unit_Tests">Unit Tests</h2> +<p> </p> +<p>See <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Boot_to_Gecko/Gaia_Unit_Tests" rel="nofollow">here</a> for information about writing and running unit tests for Gaia.</p> +<h2 id="Filing_Bugs">Filing Bugs</h2> +<p> </p> +<p>Bugs are filed on Bugzilla under <a href="https://bugzilla.mozilla.org/buglist.cgi?product=Boot2Gecko&component=Gaia&resolution=---" rel="nofollow">Boot2Gecko > Gaia</a>.</p> +<p>File a new bug under the Gaia component (or one of the sub-components) <a href="https://bugzilla.mozilla.org/enter_bug.cgi?product=Boot2Gecko" rel="nofollow">here</a>.</p> +<h2 id="Contributing_Code">Contributing Code</h2> +<p> </p> +<p>Mozilla depends on contributions from the open source community to help develop Gaia apps and we'd love you to get involved.</p> +<p>Some great places to find some bugs to start hacking on:</p> +<ul> + <li><a href="https://bugzilla.mozilla.org/buglist.cgi?quicksearch=component:gaia%20sw:polish%20@nobody;list_id=4566236" rel="nofollow">Unowned Gaia polish bugs on Bugzilla</a></li> + <li><a href="http://www.joshmatthews.net/bugsahoy/?b2g=1" rel="nofollow">Mentored bugs</a></li> +</ul> +<h3 id="Coding_Style">Coding Style</h3> +<p> </p> +<ul style="margin: 10px 0px 1em 25px; padding: 0px; line-height: 20px; color: rgb(68, 68, 68); font-family: Arial, sans-serif;"> + <li style="margin: 0px; padding: 0px 0px 0px 5px; line-height: 1.4;">Background: + <ul style="margin: 0px 0px 0px 10px; padding: 0px; line-height: 1.4;"> + <li style="margin: 0px; padding: 0px 0px 0px 5px; line-height: 1.4;"><a class="extiw" href="https://developer.mozilla.org/en/Developer_Guide/Coding_Style#General_practices" style="margin: 0px; padding: 0px; line-height: 1.4; color: rgb(0, 51, 153);" title="mdc:Developer Guide/Coding Style">MDC:Developer Guide/Coding Style#General practices</a></li> + <li style="margin: 0px; padding: 0px 0px 0px 5px; line-height: 1.4;"><a class="extiw" href="https://developer.mozilla.org/en/Developer_Guide/Coding_Style#JavaScript_practices" style="margin: 0px; padding: 0px; line-height: 1.4; color: rgb(0, 51, 153);" title="mdc:Developer Guide/Coding Style">MDC:Developer Guide/Coding Style#JavaScript practices</a></li> + <li style="margin: 0px; padding: 0px 0px 0px 5px; line-height: 1.4;"><a class="extiw" href="https://developer.mozilla.org/en/Developer_Guide/Coding_Style#Naming_and_Formatting_code" style="margin: 0px; padding: 0px; line-height: 1.4; color: rgb(0, 51, 153);" title="mdc:Developer Guide/Coding Style">MDC:Developer Guide/Coding Style#Naming and Formatting code</a></li> + </ul> + </li> +</ul> +<ul style="margin: 10px 0px 1em 25px; padding: 0px; line-height: 20px; color: rgb(68, 68, 68); font-family: Arial, sans-serif;"> + <li style="margin: 0px; padding: 0px 0px 0px 5px; line-height: 1.4;">make sure HTML files are declared <!DOCTYPE html> (i.e., HTML5). IE9+ will load them in compatibility mode otherwise.</li> +</ul> +<ul style="margin: 10px 0px 1em 25px; padding: 0px; line-height: 20px; color: rgb(68, 68, 68); font-family: Arial, sans-serif;"> + <li style="margin: 0px; padding: 0px 0px 0px 5px; line-height: 1.4;">add a <code style="margin: 0px; padding: 0px; line-height: 1.4; font-size: 15px;">"use strict";</code> statement (exactly that!) to the top of your JS files</li> +</ul> +<ul style="margin: 10px 0px 1em 25px; padding: 0px; line-height: 20px; color: rgb(68, 68, 68); font-family: Arial, sans-serif;"> + <li style="margin: 0px; padding: 0px 0px 0px 5px; line-height: 1.4;">2 spaces for indentation - do not use tab.</li> +</ul> +<ul style="margin: 10px 0px 1em 25px; padding: 0px; line-height: 20px; color: rgb(68, 68, 68); font-family: Arial, sans-serif;"> + <li style="margin: 0px; padding: 0px 0px 0px 5px; line-height: 1.4;">Line break are free (I promise) don't hesitate to use them to separate logical block inside your functions.</li> +</ul> +<ul style="margin: 10px 0px 1em 25px; padding: 0px; line-height: 20px; color: rgb(68, 68, 68); font-family: Arial, sans-serif;"> + <li style="margin: 0px; padding: 0px 0px 0px 5px; line-height: 1.4;">Files are named <code style="margin: 0px; padding: 0px; line-height: 1.4; font-size: 15px;">like_this.js</code>.</li> +</ul> +<ul style="margin: 10px 0px 1em 25px; padding: 0px; line-height: 20px; color: rgb(68, 68, 68); font-family: Arial, sans-serif;"> + <li style="margin: 0px; padding: 0px 0px 0px 5px; line-height: 1.4;">Use single quote instead of double quotes.</li> +</ul> +<ul style="margin: 10px 0px 1em 25px; padding: 0px; line-height: 20px; color: rgb(68, 68, 68); font-family: Arial, sans-serif;"> + <li style="margin: 0px; padding: 0px 0px 0px 5px; line-height: 1.4;">Additional rules:</li> +</ul> +<p style="margin: 0px 0px 1em; padding: 0px; line-height: 20px; color: rgb(68, 68, 68); font-family: Arial, sans-serif;">Bad:</p> +<pre style="margin-right: 1em; margin-left: 1em; padding: 1em; line-height: 1.4; background-color: rgb(238, 238, 238); border-style: solid; border-color: rgb(204, 204, 204); color: rgb(68, 68, 68);">if (expression) doSomething(); +</pre> +<p style="margin: 0px 0px 1em; padding: 0px; line-height: 20px; color: rgb(68, 68, 68); font-family: Arial, sans-serif;">Correct:</p> +<pre style="margin-right: 1em; margin-left: 1em; padding: 1em; line-height: 1.4; background-color: rgb(238, 238, 238); border-style: solid; border-color: rgb(204, 204, 204); color: rgb(68, 68, 68);">if (expression) + doSomething();</pre> +<p> </p> +<p>If you're working on the system app, check out the guidance listed <a href="See_here_for_some_rules._https://groups.google.com/d/msg/mozilla.dev.gaia/rEhSrw6XmT4/UNvE7qW9pgYJ" title="See_here_for_some_rules._https://groups.google.com/d/msg/mozilla.dev.gaia/rEhSrw6XmT4/UNvE7qW9pgYJ">here</a>.</p> +<p>Before submitting a patch we recommend you run gjslint on it to check for any style errors:</p> +<p> </p> +<pre>gjslint --nojsdoc <span style="color: #a9a9a9;">my_file.js</span></pre> +<p> </p> +<h3 id="Submitting_a_Patch">Submitting a Patch</h3> +<p>First file or assign a bug to yourself on <a href="https://bugzilla.mozilla.org/buglist.cgi?product=Boot2Gecko&component=Gaia&resolution=---" title="https://bugzilla.mozilla.org/buglist.cgi?product=Boot2Gecko&component=Gaia&resolution=---">Bugzilla</a>, you'll need a Bugzilla account.</p> +<p>Then create a branch on your fork of Gaia:</p> +<pre>$ git branch <span style="color: #a9a9a9;">branchname</span> +$ git checkout <span style="color: #a9a9a9;">branchname</span></pre> +<p>Commit your changes:</p> +<pre>$ git add <span style="color: #a9a9a9;">/file/to/add</span> +$ git commit -m "<span style="color: #a9a9a9;">commit message including bug number</span>"</pre> +<p>Push your branch:</p> +<pre>$ git push origin <span style="color: #a9a9a9;">branchname</span></pre> +<p>Send a pull request by navigating to the branch in your fork on GitHub and finding the pull request button.</p> +<p>To request a review of your patch, add an attachment to the bug in Bugzilla referencing the URL of the pull request and set the review ("r") flag to "?" and enter the bugzilla ID of one of the module owners and peers listed <a href="https://wiki.mozilla.org/Modules/Boot2Gecko" title="https://wiki.mozilla.org/Modules/Boot2Gecko">here</a>.</p> +<p>The reviewer may ask you to make some changes. Once they're is happy with your patch, they will merge it into the master branch for you. Before they do this they would prefer it if you could squash all your changes into a single commit and add "r=<span style="color: rgb(169, 169, 169);">reviewername</span>" to the end of the commit message.</p> +<h2 id="Contacting_the_Team">Contacting the Team</h2> +<p> </p> +<ul> + <li><a href="https://lists.mozilla.org/listinfo/dev-gaia" rel="nofollow">Gaia Mailing List</a></li> + <li>#gaia IRC channel on irc.mozilla.org</li> +</ul> +<h2 id="Tips">Tips</h2> +<h3 id="Linux_B2G_Desktop_support">Linux B2G Desktop support</h3> +<p> </p> +<h4 id="The_homescreen_is_empty_2" style="margin: 0.85em 0px; padding: 0px; line-height: 1.4; color: rgb(42, 42, 42); font-family: MetaBold, 'Trebuchet MS', sans-serif; font-size: 15px;"><span class="mw-headline" id="The_homescreen_is_empty" style="margin: 0px; padding: 0px; line-height: 1.4;">The homescreen is empty</span></h4> +<p style="margin: 0px 0px 1em; padding: 0px; line-height: 20px; color: rgb(68, 68, 68); font-family: Arial, sans-serif;">Currently, under Linux, OOP frame aren't rendered properly. The homescreen isn't actually rendered here...</p> +<p style="margin: 0px 0px 1em; padding: 0px; line-height: 20px; color: rgb(68, 68, 68); font-family: Arial, sans-serif;">If you just want to happily hack on pure UI (css and JS) you can safely run with OOP disabled and avoid those issues. Change the line in build/settings.py</p> +<pre style="margin-right: 1em; margin-left: 1em; padding: 1em; line-height: 1.4; background-color: rgb(238, 238, 238); border-style: solid; border-color: rgb(204, 204, 204); color: rgb(68, 68, 68);"> "debug.oop.disabled": False, +</pre> +<p style="margin: 0px 0px 1em; padding: 0px; line-height: 20px; color: rgb(68, 68, 68); font-family: Arial, sans-serif;">to</p> +<pre style="margin-right: 1em; margin-left: 1em; padding: 1em; line-height: 1.4; background-color: rgb(238, 238, 238); border-style: solid; border-color: rgb(204, 204, 204); color: rgb(68, 68, 68);"> "debug.oop.disabled": True, +</pre> +<p style="margin: 0px 0px 1em; padding: 0px; line-height: 20px; color: rgb(68, 68, 68); font-family: Arial, sans-serif;">To the profile/user.js in your gaia directory.</p> +<h3 id="Port_Forwarding">Port Forwarding</h3> +<p> </p> +<p style="margin: 0px 0px 1em; padding: 0px; line-height: 20px; color: rgb(68, 68, 68); font-family: Arial, sans-serif;">To forward the socket on the phone to the desktop (for desktop development), you first need to get rilproxy to expose it as such, rather than exposing it to Gecko. In the gaia directory:</p> +<pre style="margin-right: 1em; margin-left: 1em; padding: 1em; line-height: 1.4; background-color: rgb(238, 238, 238); border-style: solid; border-color: rgb(204, 204, 204); color: rgb(68, 68, 68);"> $ make forward +</pre> +<p style="margin: 0px 0px 1em; padding: 0px; line-height: 20px; color: rgb(68, 68, 68); font-family: Arial, sans-serif;">This runs the commands:</p> +<pre style="margin-right: 1em; margin-left: 1em; padding: 1em; line-height: 1.4; background-color: rgb(238, 238, 238); border-style: solid; border-color: rgb(204, 204, 204); color: rgb(68, 68, 68);">$ adb shell touch /data/local/rilproxyd +$ adb shell killall rilproxy +$ adb forward tcp:6200 localreserved:rilproxyd +</pre> +<p style="margin: 0px 0px 1em; padding: 0px; line-height: 20px; color: rgb(68, 68, 68); font-family: Arial, sans-serif;">The file located at /data/local/rilproxyd will be deleted once the rilproxy daemon will start again. As a consequence you have to do this manipulation every time your device restarts.</p> +<h3 id="Restarting_B2G_on_a_device_from_the_desktop">Restarting B2G on a device from the desktop</h3> +<p> </p> +<pre style="margin-right: 1em; margin-left: 1em; padding: 1em; line-height: 1.4; background-color: rgb(238, 238, 238); border-style: solid; border-color: rgb(204, 204, 204); color: rgb(68, 68, 68);">adb shell killall b2g +</pre> +<h3 id="B2G_Desktop_JavaScript_Console">B2G Desktop JavaScript Console</h3> +<p> </p> +<p style="margin: 0px 0px 1em; padding: 0px; line-height: 20px; color: rgb(68, 68, 68); font-family: Arial, sans-serif;">You can run B2G Desktop with the JavaScript console by using the -jsconsole flag</p> +<pre style="margin-right: 1em; margin-left: 1em; padding: 1em; line-height: 1.4; background-color: rgb(238, 238, 238); border-style: solid; border-color: rgb(204, 204, 204); color: rgb(68, 68, 68);">$ /path/to/b2g-bin -jsconsole +</pre> +<h3 id="Launching_an_app_directly">Launching an app directly</h3> +<p> </p> +<p style="margin: 0px 0px 1em; padding: 0px; line-height: 20px; color: rgb(68, 68, 68); font-family: Arial, sans-serif;">A "--runapp" option has been added to the B2G Desktop command-line to automatically start an application. The system app is loaded and everything happens like normal; this is not like the old trick where we loaded your app instead of the system app.</p> +<p style="margin: 0px 0px 1em; padding: 0px; line-height: 20px; color: rgb(68, 68, 68); font-family: Arial, sans-serif;">"--runapp" takes an argument that it normalizes by lower-casing and removing dashes and spaces, and then checks the argument against the similarly normalized app names from app manifests. For example, the name of the e-mail app is currently "E-Mail", but "--runapp email" will run it. Partial matching is not supported right now, but you can enhance b2g/chrome/content/runapp.js if your app name is unwieldy.</p> +<p style="margin: 0px 0px 1em; padding: 0px; line-height: 20px; color: rgb(68, 68, 68); font-family: Arial, sans-serif;">If you invoke "--runapp" without an argument (or an empty argument), the command will print out a list of all the apps it knows about as well as a brief usage message.</p> +<p style="margin: 0px 0px 1em; padding: 0px; line-height: 20px; color: rgb(68, 68, 68); font-family: Arial, sans-serif;">One important note is that this command disables the lock-screen as part of its magic and does not re-enable it. The assumption is that you won't use this command on a profile where you are testing the lock screen, or will turn it back on manually. Feel free to enhance the command to behave better if this is a problem for you.</p> +<p style="margin: 0px 0px 1em; padding: 0px; line-height: 20px; color: rgb(68, 68, 68); font-family: Arial, sans-serif;">In summary:</p> +<pre style="margin-right: 1em; margin-left: 1em; padding: 1em; line-height: 1.4; background-color: rgb(238, 238, 238); border-style: solid; border-color: rgb(204, 204, 204); color: rgb(68, 68, 68);">./b2g -profile /path/to/your/gaia/profile --runapp email +</pre> +<p style="margin: 0px 0px 1em; padding: 0px; line-height: 20px; color: rgb(68, 68, 68); font-family: Arial, sans-serif;">runs the e-mail app.</p> +<h3 id="reset-gaia_and_install-gaia_make_targets">reset-gaia and install-gaia make targets</h3> +<p> </p> +<p style="margin: 0px 0px 1em; padding: 0px; line-height: 20px; color: rgb(68, 68, 68); font-family: Arial, sans-serif;">The reset-gaia and install-gaia make targets can be used interchangeably. reset-gaia will purge all the existing profiles, database before push Gaia from your working directory (new setting database will also be initialized); install-gaia will just push updates of Gaia.</p> +<h3 id="Blank_screen_when_B2G_Desktop_starts">Blank screen when B2G Desktop starts</h3> +<p> </p> +<p style="margin: 0px 0px 1em; padding: 0px; line-height: 20px; color: rgb(68, 68, 68); font-family: Arial, sans-serif;">When you start b2g using b2g -profile $GAIA/profile a blank screen shows up and you see an error Cannot reach app://system.gaiamobile.org. To fix this there are a couple of things you can check</p> +<ul style="margin: 10px 0px 1em 25px; padding: 0px; line-height: 20px; color: rgb(68, 68, 68); font-family: Arial, sans-serif;"> + <li style="margin: 0px; padding: 0px 0px 0px 5px; line-height: 1.4;">Rebuild the gaia profile using DEBUG=1 make profile in the $GAIA directory</li> + <li style="margin: 0px; padding: 0px 0px 0px 5px; line-height: 1.4;">Run b2g again</li> + <li style="margin: 0px; padding: 0px 0px 0px 5px; line-height: 1.4;">If this doesn't fix it, check if there is any other process listening on port 8080. The default profile of gaia starts httpd.js, which listens on port 8080. When running a debug profile, b2g connects to localhost:8080. If some other process is running on port 8080, b2g will fail to display the home screen of gaia + <ul style="margin: 0px 0px 0px 10px; padding: 0px; line-height: 1.4;"> + <li style="margin: 0px; padding: 0px 0px 0px 5px; line-height: 1.4;">To find out if this is the case, you can enable logging on httpd.js. The httpd.js in the profile resides in this location - $GAIA/profile/extensions/httpd/content/httpd.js. Edit the variable var DEBUG=false; to change the DEBUG to true. Save the file and restart b2g. On the console now, you will be able to view the httpd's logs</li> + </ul> + </li> +</ul> +<h3 id="Diagnosing_OOM_problems">Diagnosing OOM problems</h3> +<p> </p> +<p style="margin: 0px 0px 1em; padding: 0px; line-height: 20px; color: rgb(68, 68, 68); font-family: Arial, sans-serif;"><a class="external text" href="https://bugzilla.mozilla.org/show_bug.cgi?id=798747#c7" rel="nofollow" style="margin: 0px; padding: 0px; line-height: 1.4; color: rgb(0, 51, 153);">From Cjones</a>:</p> +<p style="margin: 0px 0px 1em; padding: 0px; line-height: 20px; color: rgb(68, 68, 68); font-family: Arial, sans-serif;">Another way to diagnose possible OOMs is to open a terminal and run</p> +<p style="margin: 0px 0px 1em; padding: 0px; line-height: 20px; color: rgb(68, 68, 68); font-family: Arial, sans-serif;">$ watch -n 1 'adb shell b2g-procrank'</p> +<p style="margin: 0px 0px 1em; padding: 0px; line-height: 20px; color: rgb(68, 68, 68); font-family: Arial, sans-serif;">If you see the "USS" of one of the app processes go up near 100MB and then that process disappear from the process list (accompanied by some sort of visual crash in gaia), then you've almost certainly seen an OOM kill.</p> +<p> </p> +<p> </p> +<p> </p> +<p> </p> +<p> </p> +<p> </p> diff --git a/files/de/archive/b2g_os/gaia/index.html b/files/de/archive/b2g_os/gaia/index.html new file mode 100644 index 0000000000..1405dd58c9 --- /dev/null +++ b/files/de/archive/b2g_os/gaia/index.html @@ -0,0 +1,56 @@ +--- +title: Gaia +slug: Archive/B2G_OS/Gaia +tags: + - B2G + - Gaia + - Mobile +translation_of: Archive/B2G_OS/Platform/Gaia +--- +<p>Gaia ist die Benutzeroberfläche von <a href="https://developer.mozilla.org/de/Firefox_OS">Firefox OS</a>. Alles was auf dem Bildschirm nach dem Start von Firefox OS erscheint, wird von Gaia gemalt. Einschließlich des Sperrbildschirmes, Homescreen, Dialer und anderen Programmen. Gaia ist komplett in <a href="/en-US/docs/en-US/HTML" title="HTML">HTML</a>, <a href="/en-US/docs/CSS" title="CSS">CSS</a>, und <a href="/en-US/docs/JavaScript" title="JavaScript">JavaScript</a> geschrieben. Seine einzige Schnittstelle zu dem zugrunde liegenden Betriebssystem und Hardware wird über Standart Web APIs ermöglicht, welche von <a href="https://developer.mozilla.org/de/docs/Gecko">Gecko</a> implementiert werden.</p> +<p>Wegen diesem Aufbaus kann Gaia nicht nur auf Firefox OS Geräten, sondern auch auf anderen Betriebssystemen und Webbrowsern (wenn auch, je nach Fähigkeiten des Browsers, möglicherweise Eingeschränkt) betrieben werden.</p> +<p>Anwendungen von Drittanbietern, welchen neben Gaia installiert wurden, können von Gaia gestartet werden.</p> +<table class="topicpage-table"> + <tbody> + <tr> + <td> + <h2 class="Documentation" id="Documentation" name="Documentation">Dokumentationen über Gaia</h2> + <dl> + <dt> + <a href="/en-US/docs/Mozilla/Boot_to_Gecko/Introduction_to_Gaia">Einführungen zu Gaia</a></dt> + <dd> + Gaia ist die Benutzeroberfläche für Firefox OS Geräte; Es ist eine Internetapplikation welche auf der Firefox OS Applikationsumgebung läuft. Dieses Handbuch bietete eine Einführung zu Gaia auf einem hohen Niveau.</dd> + <dt> + <a href="/en-US/docs/Mozilla/Boot_to_Gecko/Gaia_hacking_guide" title="Mozilla/Boot_to_Gecko/Gaia hacking guide">Gaia hacking guide</a></dt> + <dd> + Ein Leitfaden für Hacking und Modifizierung der Gaia-Schnittstelle.</dd> + </dl> + <p><span class="alllinks"><a href="/en-US/docs/tag/Gaia" title="tag/B2G">View All...</a></span></p> + </td> + <td> + <h2 class="Community" id="Community" name="Community">Hilfe von der Community</h2> + <p>Wenn du mit Gaia, oder an Gaia Anwendungen arbeitest, könnten dir diese Community-Ressourcen helfen<span style="line-height: 1.5;">!</span></p> + <ul> + <li>Besuche das Boot to Gecko Projekt Forum: {{ DiscussionList("dev-gaia", "mozilla.dev.gaia") }}</li> + </ul> + <ul> + <li>Stelle deine Fragen im Mozilla's Gaia IRC channel: <a href="irc://irc.mozilla.org/gaia" title="irc://irc.mozilla.org/gaia">#gaia</a></li> + </ul> + <p><span class="alllinks"><a class="external" href="http://www.catb.org/~esr/faqs/smart-questions.html" title="http://www.catb.org/~esr/faqs/smart-questions.html">Don't forget about the <em>netiquette</em>...</a></span></p> + <br> + <h2 class="Related_Topics" id="Related_Topics" name="Related_Topics">Verwandte Themen</h2> + <ul> + <li><a href="/en-US/docs/Mobile" title="Mobile">Mobile</a></li> + <li><a href="/de/docs/Web/HTML" title="HTML">HTML</a></li> + <li><a href="/de/docs/Web/Css" title="CSS">CSS</a></li> + <li><a href="/de/docs/Web/JavaScript" title="JavaScript">JavaScript</a></li> + </ul> + <h2 class="Tools" id="Resources" name="Resources">Ressourcen</h2> + <ul> + <li><a href="https://developer.mozilla.org/de/Firefox_OS/Platform/Architektur">Übersicht der </a><a href="/en-US/docs/Mozilla/Firefox_OS/Architecture" title="Mozilla/Firefox_OS/Architecture">Firefox OS Architektur</a></li> + </ul> + </td> + </tr> + </tbody> +</table> +<p> </p> diff --git a/files/de/archive/b2g_os/gaia/introduction_to_gaia/index.html b/files/de/archive/b2g_os/gaia/introduction_to_gaia/index.html new file mode 100644 index 0000000000..2b121e8274 --- /dev/null +++ b/files/de/archive/b2g_os/gaia/introduction_to_gaia/index.html @@ -0,0 +1,35 @@ +--- +title: Introduction to Gaia +slug: Archive/B2G_OS/Gaia/Introduction_to_Gaia +translation_of: Archive/B2G_OS/Platform/Gaia/Introduction_to_Gaia +--- +<div class="summary"> +<p>Gaia is the user interface for Boot to Gecko (B2G); it's a set of Web applications that runs locally on a B2G device, emulator, desktop build, or Firefox build. All you need to know in order to add apps or make changes to Gaia are Web technologies like <a href="/en/JavaScript" title="en/JavaScript">JavaScript</a>, <a href="/en/HTML" title="en/HTML">HTML</a>, and <a href="/en/CSS" title="en/CSS">CSS</a>.</p> +</div> + +<h2 id="The_Gaia_lock_screen">The Gaia lock screen</h2> + +<p>The lock screen shows the network carrier, current time and date, and a slidebar allowing the user to unlock the phone or go straight to the camera to take a picture. If the user has got a passcode lock set, the lock screen will also show a passcode entry interface.</p> + +<p><img src="https://mdn.mozillademos.org/files/7611/gaia-lockscreen.png" style="display: block; height: 480px; margin: 0px auto; width: 320px;" alt=""></p> + +<p>Note that on some devices the passcode is enabled by default; in these cases the default PIN to unlock the device is "0000". This most likely will change over time as this feature is fleshed out.</p> + +<h2 id="The_default_Gaia_interface">The default Gaia interface</h2> + +<p>The default interface in Gaia, as seen here, is similar to what you see on most typical smartphones.</p> + +<p><img src="https://mdn.mozillademos.org/files/7613/device-2013-01-24-163623.png" style="display: block; height: 480px; margin: 0px auto; width: 320px;" alt=""></p> + +<p>This image is obviously of a prerelease version of the operating system, with placeholder icons (and some test applications). The status bar at the top indicates the network on which the phone is operating (or "No SIM card" for a device without any network), the network strength, WiFi signal strength, battery level, and current time.</p> + +<p>The middle area of the display shows icons for the applications; swiping left and right pages through screens of icons. You can find more about the default suite of apps that comes with Gaia on our <a href="/en-US/Firefox_OS/Platform/Gaia/Gaia_apps">Gaia apps</a> page.</p> + +<p>At the bottom of the screen is a dock with room for up to seven of your most commonly used applications. You can drag and drop apps to the dock from the middle area.</p> + +<h2 id="See_also" style="">See also</h2> + +<ul> + <li><a href="/en-US/Firefox_OS/Platform/Gaia/Gaia_apps">Gaia apps</a>: This page includes further information about each app, such as how to use them, and how to modify them.</li> + <li><a href="/en-US/Firefox_OS/Debugging/Developer_settings">Developer settings</a>: An explanation of the different developer settings that you can enable via the Gaia Settings app.</li> +</ul> diff --git a/files/de/archive/b2g_os/gaia_entwickeln/build_system_primer/index.html b/files/de/archive/b2g_os/gaia_entwickeln/build_system_primer/index.html new file mode 100644 index 0000000000..8f6f0c7379 --- /dev/null +++ b/files/de/archive/b2g_os/gaia_entwickeln/build_system_primer/index.html @@ -0,0 +1,190 @@ +--- +title: 'Gaia Build System: Grundlagen' +slug: Archive/B2G_OS/Gaia_Entwickeln/Build_System_Primer +tags: + - Building + - Firefox OS + - Gaia Grundlagen + - Gaia build +translation_of: Archive/B2G_OS/Developing_Gaia/Build_System_Primer +--- +<div class="summary"> +<p><span class="seoSummary">Dieser Artikel beschreibt die grundlegende Funktionsweise des Gaia Build Systems inklusive make-Datei, Build-Prozess, Umgebungsvariablen und Anpassungsmöglichkeiten</span>.</p> +</div> + +<p>Die wichtigen Schritte eines Builds werden größtenteils von den im Gaia-Unterverzeichnis <code>build/</code> liegenden Skripten erledigt. Augerufen werden diese mit make, node.js und <a href="https://developer.mozilla.org/en-US/docs/XPConnect/xpcshell" title="https://developer.mozilla.org/en-US/docs/XPConnect/xpcshell">XPCShell</a> (auch bekannt als JS Shell), einer Laufzeitumgebung von <a href="/de/docs/Mozilla/Projects/XULRunner">XULRunner</a>. Das Gaia Build System enthält viele Werkzeuge zum Installieren, Testen und Lokalisieren von Apps und um diese als Paket auf ein Gerät zu bringen. Zudem können Entwickler das Gaia-Paket anpassen, z.B. können Hintergrundbilder, Klingeltöne, Apps und Einstellungen geändert werden.</p> + +<div class="note"> +<p><strong>Hinweis</strong>: XPCShell ist ähnlich wie node.js, bietet aber zusätzlich die Möglichkeit zum Ausführen von Mozilla-spezifischen javascripts. Zudem können Gaia-Skripte mit Hilfe von XPCShell in einer Firefox Erweiterung laufen.</p> +</div> + +<h2 id="Die_make-Datei">Die make-Datei</h2> + +<p>Die make-Datei enthält eine Menge nützlicher Funktionen. Dieses Kapitel bechreibt die nützlichsten davon.</p> + +<h3 id="install-gaia">install-gaia</h3> + +<p>Gestartet mit dieser Option installiert make alle Apps auf Deinem Gerät. Wenn Du nur eine bestimmte App installieren möchtest, dann starte make wie folgt mit der <code>APP</code> Option:</p> + +<pre class="brush: bash">APP=calendar make install-gaia</pre> + +<p>Dieses Verzeichnis muss im Gaia-Verzeichnisbaum existieren (z.B. <code>apps</code>).</p> + +<h3 id="reset-gaia">reset-gaia</h3> + +<p>Funktioniert genauso wie <code>install-gaia</code> mit dem Unterschied, dass zuerst alle Apps deinstalliert und anschließend wieder mit den Standard-Zugriffsrechten installiert werden. Die Apps befinden sich in <code>/data/local</code> wie bei den Entwickler-Builds. Test- und Debugging-Apps werden hier ebenfalls installiert.</p> + +<div class="warning"> +<p><strong>Vorsicht</strong>: Wenn beim Aufruf von make mit der Option <code>reset-gaia</code> die Umgebungsvariable <code>APP</code> gesetzt ist, dann wird dies Dein Gerät in einen unbrauchbaren Zustand versetzen (das kann allerdings behoben werden durch Aufruf von make mit der Option <code>reset-gaia</code> ohne die <code>APP</code> Umgebungsvariable). Also mach das bitte nicht.</p> +</div> + +<h3 id="production">production</h3> + +<p>Genauso wie <code>reset-gaia</code>, aber der Quellcode wird optimiert. Das ermöglicht grundsätzlich die Emulation von User Builds (stabilen Builds). Mit dieser Option werden dieselben Apps installiert wie bei User Builds.</p> + +<div class="warning"> +<p><strong>Vorsicht</strong>: Wenn beim Aufruf von make mit der Option <code>production</code> die Umgebungsvariable <code>APP</code> gesetzt ist, dann wird dies Dein Gerät in einen unbrauchbaren Zustand versetzen (das kann allerdings behoben werden durch Aufruf von make mit der Option <code>production</code> ohne die <code>APP</code> Umgebungsvariable). Also mach das bitte nicht.</p> +</div> + +<h3 id="reference_workloads">reference workloads</h3> + +<p>Diese Option installiert unterschiedlich große Pakete für Laufzeittests auf dem Gerät, um eventuell auftretende Geschwindigkeits- und Skalierungsprobleme debuggen und beheben zu können. Diese Option akzeptiert die APP Umgebungsvariable und auch die APPS Umgebungsvariable mit mehreren durch Leerzeichen voneinander getrennten App-Namen, z.B.:</p> + +<pre class="brush: bash">APP=sms make reference-workload-light +APPS="sms communications/contacts" make reference-workload-heavy +</pre> + +<div class="note"> +<p><strong>Hinweis</strong>: Weitere Informationen findest Du auf <a href="/de/Firefox_OS/Platform/Gaia/Hacking#Reference_Workloads">Hacking Gaia: Reference workloads</a>.</p> +</div> + +<h2 id="Umgebungsvariablen">Umgebungsvariablen</h2> + +<p>Mit einigen Umgebungsvariablen kannst Du den Build und die Installation auf dem Gerät steuern, z.B.:</p> + +<h4 id="P1">P=1</h4> + +<p>Das ermöglicht parallele Build-Erzeugungen auf Multikern CPU Architekturen und verkürzt die Laufzeit von Build-Erzeugungen, der Standardwert ist <strong>0</strong>.</p> + +<div class="warning"> +<p><strong>Vorsicht</strong>: Parallele Build-Erzeugung ist noch in der Test-Phase und somit vielleicht nicht stabil.</p> +</div> + +<h4 id="GAIA_OPTIMIZE1">GAIA_OPTIMIZE=1</h4> + +<p>Hiermit wird eine Optimierung der JavaScript Dateien angestossen. Diese Umgebungsvariable wird automatisch beim Ausführen von <code>make production</code> gesetzt. Die Variable kann für <code>install-gaia</code> und <code>reset-gaia</code> verwendet werden.</p> + +<h4 id="PRODUCTION1">PRODUCTION=1</h4> + +<p>Das ist im Grunde ein Alias für <code>make production</code>.</p> + +<h4 id="DEBUG1">DEBUG=1</h4> + +<p>Mit dieser Umgebungsvariablen wird eine Debugging-Umgebung aufgebaut, die Du für Gaia <a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Testing/Gaia_unit_tests" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Testing/Gaia_unit_tests">unit tests</a> oder für die Entwicklung eigener Apps in Firefox OS nutzen kannst. Du musst ein bereits bestehendes Debugging-Profilverzeichnis löschen, bevor Du ein neues generieren kannst.</p> + +<h4 id="DEVICE_DEBUG1">DEVICE_DEBUG=1</h4> + +<p>Deaktiviert die Bildschirmsperre auf dem Gerät.</p> + +<h4 id="GAIA_DEVICE_TYPEphone">GAIA_DEVICE_TYPE=phone</h4> + +<p>Diese Umgebungsvariable ermöglicht eine individuelle Installation mit mehreren 'app.list' Dateien. Alle 'app.list' Dateien müssen in /build/config/$(GAIA_DEVICE_TYPE)/ Verzeichnissen liegen.</p> + +<p>Der Standardwert von GAIA_DEVICE_TYPE ist <strong>phone</strong>.</p> + +<div class="note"> +<p><strong>Hinweis</strong>: Weitere Details und optionen findest Du auf <a href="/de/Firefox_OS/Platform/Gaia/Hacking#Make_options">Hacking Gaia make options</a>.</p> +</div> + +<h2 id="Build-Prozess">Build-Prozess</h2> + +<p>Das Ablaufdiagramm, wie ein Build für Gaia erzeugt wird:</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/8635/gaia-build-system-seq-diagram.png" style="height: 1497px; width: 2222px;"></p> + +<p>pre-app.js, app.js & post-app.js werden von make gestartet und die meisten Build-Schritte werden in den xpcshell Skripten ausgeführt, make ermittelt das Betriebssystem und lädt den b2g-desktop herunter. Wir planen, mehr Build-Schritte von make in die xpcshell Skripte zu migrieren.</p> + +<p>Vielleicht fragst Du Dich, warum wir pre-app, app and post-app nutzen. Das liegt daran, dass wir immer mehr Abhängigkeiten von make in die xpcshell Skripte verlagern. Deshalb entwickelten wir pre-app.js und post-app.js basierend auf <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1021051">bug 1021051</a>, um den Großteil der Abhängigkeiten in die xpcshell Skripte zu verlagern. Am Ende werden dann app.js, pre-app.js und post-app.js auf Basis von <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1053703">bug 1053703</a> migriert.</p> + +<p>Wir haben drei Typen von Verzeichnissen in einem Gaia Build System:</p> + +<ol> + <li>Source-Verzeichnisse: apps, dev_apps, gemeinsame Verzeichnisse</li> + <li>Stage-Verzeichnis: build_stage (stage = Plattform)</li> + <li>Profil-Verzeichnisse: profile, profile-debug oder profile-test</li> +</ol> + +<p>Unser Ziel ist es, keine Dateien in die Source-Verzeichnisse hinein zu generieren. Leider haben wir immer noch ein paar Stellen, an denen Dateien in die Source-Verzeichnisse generiert werden. Wir planen, diese Probleme zu beheben. Die folgende Tabelle listet auf, von welchen Modulen Dateien ins Source-, ins Stage- und in die Profil-Verzeichnisse generiert werden.</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/8653/file-accessing.png" style="height: 1250px; width: 1136px;"></p> + +<p>Der Build-Prozess führt bei Aufruf von <code>make</code> im Gaia-Verzeichnis die folgenden Schritte in der angegebenen Reihenfolge aus:</p> + +<ol> + <li><strong>b2g_sdk</strong>: b2g-desktop startet die xpcshell Skripte in <code>GAIA_DIR/build/</code>.</li> + <li><strong>svoperapps</strong>: Download der Apps und Generieren der Konfigurations-Dateien der App-Installation pro SIM-Karten-Anbieter und Land.</li> + <li><strong>webapp-manifests</strong>: Generieren der Metadaten der Web-Apps für den Build.</li> + <li><strong>keyboard-layouts</strong>: Generieren der Layout-Konfiguration der Standard-Tastatur.</li> + <li><strong>settings.json (settings.js)</strong>: Dieses JavaScript generiert die Standard-Einstellungen für Firefox OS, die von Gaia gelesen werden.</li> + <li><strong>webapp-shared</strong>: Kopieren der von den Apps benötigten Dateien vom gemeinsamen Source-Verzeichnis ins Stage-Verzeichnis.</li> + <li><strong>preferences</strong>: Generiert die Standard-Umgebung für Firefox OS; generiert die Datei <code>user.js</code> und kopiert diese auf das Gerät, wo sie von Gecko gelesen wird. Bitte beachte, dass die Standard-Umgebung abhängig von den Umgebungsvariablen (wie z.B. <code>DEBUG=1</code>) variieren kann.</li> + <li><strong>app.js</strong>: make-Dateien in den jeweiligen <code>app</code> Verzeichnissen: Sie werden ausgeführt, wenn sie existieren. Für jede App ohne eigene make-Datei kopiert die Gaia make-Datei das App-Verzeichnis ins Stage-Verzeichnis <code>build_stage</code> und führt <code>[app-directory]/build/build.js</code> aus, falls vorhanden. Siehe {{ anch("Build script for apps") }} für weitere Details.</li> + <li><strong>test-agent-bootstrap & test-agent-config</strong>: Einrichten der zwei make Regeln <code>test-agent-config</code> & <code>test-agent-bootstrap-apps</code>, welche für den Aufbau von Test-Umgebungen pro App benötigt werden.</li> + <li><strong>webapp-optimize</strong>: Dieses Skript enthält verschiedene Optimierungs-Prozeduren inklusive JavaScript Minimierung, Zusammenfügen von Lokalisierungs-Dateien in die JSON-Dateien und Generieren von HTML-Dateien für die Standard-Sprache, falls nötig.</li> + <li><strong>webapp-zip</strong>: Hier wird jede App in eine eigene zip-Datei komprimiert und diese im Verzeichnis <code>profile/</code> abgelegt.</li> + <li><strong>optimize-clean</strong>: <code>optimize-clean</code> bereinigt die HTML-Dateien für die Standard-Sprache.</li> + <li><strong>contacts</strong>: Kopiert eine vorgefertigte Kontakte-Datei in Dein Profil in <code>GAIA_DISTRIBUTION_DIR</code>, falls vorhanden.</li> + <li><strong>extensions</strong>: Kopiert die in <code>GAIA_DIR/tools/extensions</code> liegenden Erweiterungen in Dein Profil-Verzeichnis; verschiedene Konfigurationen ermöglichen das Kopieren verschiedener Erweiterungen.</li> + <li><strong>installed-extensions.json (additional-extensions.js)</strong>: Zu guter Letzt: Dieses Skript kopiert per Download verschiedene zusätzliche Erweiterungen in Dein Profil-Verzeichnis.</li> +</ol> + +<h2 id="Build-Skript_für_Apps">Build-Skript für Apps</h2> + +<p>Standardmäßig wird als App Build Skript <span style="font-family: courier new,andale mono,monospace; line-height: 1.5;">[app directory]/build/build.js</span><span style="line-height: 1.5;"> von app.js </span><span style="line-height: 1.5;">ausgeführt, falls vorhanden. Wenn $APP/build/build.js nicht vorhanden ist, dann kopiert app.js die App ins Stage-Verzeichnis build_stage.</span></p> + +<p>Die Dateien im App-Verzeichnis sollten vom App Build-Skript ins Stage-Verzeichnis build_stage kopiert werden; denn app.js kopiert sie nicht, wenn ein App Build-Skript existiert. Beispiel: Die App "Kalender" hat ein Skript build/build.js und <a href="https://github.com/mozilla-b2g/gaia/blob/a0fa29db8e9e15afe3b1787bf494caa86a033f10/apps/calendar/build/build.js#L8">utils.copyToStage()</a> sollte in build.js für die "Kalender" App aufgerufen werden.</p> + +<div class="note"> +<p><strong>Hinweis</strong>: Sourcen, die nicht zu Deiner App gehören (wie in shared/) kannst Du in der index.html in den <head> Bereich einfügen, damit sie von shared/ in Deine App kopiert werden.</p> +</div> + +<p>Build-Skripte für Apps benötigen möglicherweise alle Build Module im Verzeichnis $GAIA_DIR/build; speziell das utils Modul, ein sehr nützliches Modul für den Build von Apps, kannst Du require('utils') verwenden um das Modul einzubinden.</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/8651/flow-diagram.png" style="height: 952px; width: 1004px;"></p> + +<h2 id="Anpassen_der_Voreinstellungen">Anpassen der Voreinstellungen</h2> + +<p>Wenn Du eine eigene Konfiguration mit Einstellungen und Apps immer wieder beim Flashen Deines Gerätes benötigst, dann kannst Du eine Datei namens <code>custom-prefs.js</code> mit all Deinen Präferenzen im Verzeichnis <code>build/config</code> ablegen. Dort ist sie vor Überschreiben geschützt und unterliegt nicht der Source-Steuerung.</p> + +<p>Hier sind einige sinnvolle Voreinstellungen:</p> + +<pre class="brush: js">// Aktivieren von marionette für Performance-Tests +// siehe https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Platform/Testing/Gaia_performance_tests +user_pref("marionette.defaultPrefs.enabled", true); + +// Setzen des Ports für remote Debugging Deiner Anwendung auf Deinem Gerät +user_pref("devtools.debugger.remote-port", 60000); + +// Aktivieren des remote Debuggers +user_pref("devtools.debugger.remote-enabled", true); + +// Ausgeben der Debug-Meldungen über den Radio Interface Layer in logcat +user_pref("ril.debugging.enabled", true); +</pre> + +<p>Diese Datei wird immer gelesen, wenn Du ein Profil generierst. Der sicherste Weg sicherzustellen, dass alles generiert wurde ist das vorherige Löschen des vorhandenen Profils:</p> + +<pre class="brush: bash">rm -rf profile && make profile</pre> + +<p>Anschließend kannst Du beruhigt die <code>install-gaia </code>Option von make verwenden.</p> + +<h2 id="FAQ">FAQ</h2> + +<h3 id="Das_Display_bleibt_Schwarz_nach_einem_flash">Das Display bleibt Schwarz nach einem flash</h3> + +<p>Das kann manchmal passieren, wenn das Gerät im Ruhemodus geflasht wird. Um das Problem zu beheben starte B2G einfach durch das folgende Kommando neu:</p> + +<pre class="brush: bash">adb shell stop b2g && adb shell start b2g</pre> + +<p><br> + </p> diff --git a/files/de/archive/b2g_os/gaia_entwickeln/customizing_build-time_apps/index.html b/files/de/archive/b2g_os/gaia_entwickeln/customizing_build-time_apps/index.html new file mode 100644 index 0000000000..928799c864 --- /dev/null +++ b/files/de/archive/b2g_os/gaia_entwickeln/customizing_build-time_apps/index.html @@ -0,0 +1,117 @@ +--- +title: 'Gaia-Apps: Build anpassen' +slug: Archive/B2G_OS/Gaia_Entwickeln/Customizing_build-time_apps +tags: + - Anpassung + - Apps + - Firefox OS + - Gaia + - build +translation_of: Archive/B2G_OS/Developing_Gaia/Customizing_build-time_apps +--- +<div class="summary"> +<p><span class="seoSummary">Entwickler und Geräte-Hersteller wollen die App-Pakete oftmals beim Erzeuen eines Builds aus verschiedenen Gründen anpassen. Dieser Artikel erklärt die unterschiedlichen Mechanismen dafür.</span></p> +</div> + +<h2 id="Pfade_für_App-Dateien_in_Gaia">Pfade für App-Dateien in Gaia</h2> + +<p>Alle Firefox OS Apps befinden sich in einem der folgenden Pfade im Gaia Verzeichnisbaum:</p> + +<ul> + <li><a href="https://github.com/mozilla-b2g/gaia/tree/master/apps">gaia/apps/</a>: Hier liegen die Standard-Apps von Firefox OS wie Kalender, E-Mail, Einstellungen etc.</li> + <li><a href="https://github.com/mozilla-b2g/gaia/tree/master/dev_apps">gaia/dev-apps</a>: Hier sind die anderen Apps zu finden, z.B. die kundenspezifischen Apps.</li> +</ul> + +<p>Falls Du in Deinem Gaia/B2G Build Apps herauslassen oder hinzufügen möchtest, dann kannst Du das auf verschiedene Weise tun. Details dazu werden nachfolgend erläutert.</p> + +<h2 id="Die_harte_Methode">Die harte Methode</h2> + +<p>Bei der harten Methode werden einfach die Apps gelöscht, die man nicht in den Build mit einbeziehen will.</p> + +<h2 id="Anpassen_der_Konfigurations-Dateien">Anpassen der Konfigurations-Dateien</h2> + +<p>Die etwas elegantere Methode ist das Anpassen der <code>apps-*.list</code> Dateien (zu finden in den verschiedenen gerätespezifischen Verzeichnissen, die in <a href="https://github.com/mozilla-b2g/gaia/tree/master/build/config">gaia/build/config/</a> aufgelistet sind, z.B. <code>phone/</code> und <code>tablet/</code>), um die für den Build gewünschten Apps zu konfigurieren. Zum Beispiel könnte die Konfigurations-Datei <a href="https://github.com/mozilla-b2g/gaia/blob/master/build/config/phone/apps-production.list">gaia/build/config/phone/apps-production.list</a> wie folgt aussehen:</p> + +<pre class="brush: bash">apps/bluetooth +apps/bookmark +apps/browser +apps/calendar +apps/callscreen +etc.</pre> + +<p>Du kannst hier auch alle Apps eines Verzeichnisses einbinden, und zwar so:</p> + +<pre class="brush: bash">apps/*</pre> + +<p>Welche <code>apps-*.list</code> Dateien wiederum für den Build verwendet werden um die verfügbaren Apps zu ermitteln ist in der Datei <a href="https://github.com/mozilla-b2g/gaia/blob/master/Makefile">gaia/Makefile</a> hinterlegt, die etwa so aussieht:</p> + +<pre class="brush: cpp"><span class="nv">GAIA_DEVICE_TYPE</span><span class="o">?=</span>phone + ... +GAIA_APP_TARGET?=engineering + ... +ifeq ($(MAKECMDGOALS), demo) +GAIA_DOMAIN=thisdomaindoesnotexist.org +GAIA_APP_TARGET=demo +else ifeq ($(MAKECMDGOALS), dogfood) +DOGFOOD=1 +else ifeq ($(MAKECMDGOALS), production) +PRODUCTION=1 +endif + ... +ifeq ($(PRODUCTION), 1) +GAIA_OPTIMIZE=1 +GAIA_APP_TARGET=production +endif + +ifeq ($(DOGFOOD), 1) +GAIA_APP_TARGET=dogfood +endif + ... +ifndef GAIA_APP_CONFIG +GAIA_APP_CONFIG=build$(SEP)config$(SEP)apps-$(GAIA_APP_TARGET).list +endif</pre> + +<p>Standardmaßig ist die Variable <code>GAIA_APP_TARGET</code> auf <code>engineering</code> gesetzt und die Variable <code><span class="nv">GAIA_DEVICE_TYPE</span></code> auf <code>phone</code>, so dass beim Build von Gaia per Default die Datei <a href="https://github.com/mozilla-b2g/gaia/blob/master/build/config/phone/apps-engineering.list">gaia/config/phone/app-engineering.list</a> verwendet wird (die alle Apps enthält, u.a. auch Test- und Demo-Apps).</p> + +<p>Um andere <code>apps-*.list</code> Dateien zu verwenden musst Du entsprechende Parameter beim Aufruf des <code>make</code> Kommandos mitgeben. Um z.B. den Build mit <a href="https://github.com/mozilla-b2g/gaia/blob/master/build/config/phone/apps-production.list">gaia/build/config/phone/apps-production.list</a> zu starten müsstest Du das hier verwenden:</p> + +<pre class="brush: bash">PRODUCTION=1 make</pre> + +<p>Wenn Du den Build mit <code>DEMO=1</code> startest, dann wird die Datei <a href="https://github.com/mozilla-b2g/gaia/blob/master/build/config/phone/apps-demo.list">apps-demo.list</a> verwendet. Und wenn Du den Build mit <code>DOGFOOD=1</code> startest, dann wird die Datei <a href="https://github.com/mozilla-b2g/gaia/blob/master/build/config/phone/apps-dogfood.list">apps-dogfood.list</a> verwendet.</p> + +<p>Du kannst dieses Verhalten komplett übersteuern, indem Du die Variable <code>GAIA_APP_CONFIG</code> in der Datei <a href="https://github.com/mozilla-b2g/gaia/blob/master/Makefile">gaia/Makefile</a> änderst und dort eine eigene <code>apps-*.list</code> Datei einträgst.</p> + +<p><a href="https://github.com/mozilla-b2g/gaia/blob/master/Android.mk#L24-L28">gaia/Android.mk</a> enthält diese Zeilen:</p> + +<pre class="brush: cpp">ifneq ($(filter user userdebug, $(TARGET_BUILD_VARIANT)),) +GAIA_MAKE_FLAGS += PRODUCTION=1 +B2G_SYSTEM_APPS := 1 +endif</pre> + +<p>Wenn Du den Build mit <code>VARIANT=user</code> oder <code>VARIANT=userdebug</code> startest (dieses Übersteuern spiegelt sich auch in der Variable <code>TARGET_BUILD_VARIANT</code> wieder), dann wird <code>PRODUCTION=1</code> automatisch gesetzt.</p> + +<div class="note"> +<p><strong>Hinweis</strong>: Weitere Optionen für make findest Du in der <a href="/en-US/Firefox_OS/Developing_Gaia/make_options_reference">make options reference</a>.</p> +</div> + +<h2 id="Verwenden_eigener_Distributionen">Verwenden eigener Distributionen</h2> + +<p>Die dritte und eleganteste (allerdings auch komplexeste) Methode ist das Verwenden eigener Distributionen. Dies ermöglicht das Einbinden eigener Konfigurationen und Pakete ohne das Gaia Paket selbst zu ändern. Du kannst für Deine angepassten Konfigurationen und Pakete eigene Verzeichnisse oder die mit Gaia ausgelieferten Verzeichnisse verwenden.</p> + +<p>Du kannst Deine Distribution durch Setzen der Umgebungsvariable <code>GAIA_DISTRIBUTION_DIR</code> in den Build einbinden, zum Beispiel so:</p> + +<pre class="brush: bash"><code class="language-html">GAIA_DISTRIBUTION_DIR=<span class="tag token"><span class="tag token"><span class="punctuation token"><</span>DISTRIBUTION_PATH</span><span class="punctuation token">></span></span> make production</code></pre> + +<p>Mehr Informationen zum Erstellen individueller Distributionen findest Du auf <a href="https://github.com/mozilla-b2g/gaia/tree/master/customization">https://github.com/mozilla-b2g/gaia/tree/master/customization</a>.</p> + +<p>Dieses komplexe Thema hat eine komplett eigene Dokumentation. Mehr zum Thema erfährst Du unter <a href="/en-US/Firefox_OS/Developing_Firefox_OS/Market_customizations_guide">Market Customizations guide</a>.</p> + +<div class="note"> +<p><strong>Hinweis</strong>: Wenn Du Apps von Drittanbietern in Deinen Gaia Build einbinden willst, dann müssen diese auf spezielle Art erzeugt werden bevor sie im Verzeichnis <code>gaia/dev-apps/</code> abgelegt werden. Nähere Informationen findest Du auf <a href="https://developer.mozilla.org/en-US/Firefox_OS/Developing_Firefox_OS/Market_customizations_guide#Building_Prebundled_web_apps">Building Prebundled web apps</a>.</p> +</div> + +<div class="warning"> +<p><strong>Wichtig</strong>: Wenn Sie als Geräte-Hersteller einen angepassten B2G/Gaia Build für Ihre Distribution verwenden möchten, dann müssen Sie bestimmte Voraussetzungen erfüllen bevor Sie Firefox OS Marketplace Apps auf Ihrem Smartphone, Tablet etc. anbieten dürfen. Bitte kontaktieren Sie in einem solchen Fall Mozilla für nähere Informationen.</p> +</div> + +<p> </p> diff --git a/files/de/archive/b2g_os/gaia_entwickeln/durchfuehrung_der_gaia_codebase/index.html b/files/de/archive/b2g_os/gaia_entwickeln/durchfuehrung_der_gaia_codebase/index.html new file mode 100644 index 0000000000..eef4cb0c8e --- /dev/null +++ b/files/de/archive/b2g_os/gaia_entwickeln/durchfuehrung_der_gaia_codebase/index.html @@ -0,0 +1,71 @@ +--- +title: Durchführung der Gaia codebase +slug: Archive/B2G_OS/Gaia_Entwickeln/Durchfuehrung_der_Gaia_codebase +tags: + - B2G + - Firefox + - Firefox OS + - Firefox OS lokal ausführen + - Gaia + - beitragen + - 'l10n:priority' +translation_of: Archive/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase +--- +<div class="summary"> +<p><span class="seoSummary">Dieser Artikel beschreibt im Detail die lokale Durchführung der Gaia Codebase und welche Werkzeuge in diesem Setup verfügbar sind.</span></p> +</div> + +<p>Zuerst sei erwähnt, dass Du NICHT Gecko oder B2G erstellen musst, um zu Gaia beizutragen. Du musst lediglich den Gaia Quellcode herunterladen und die Möglichkeit haben, diesen auszuführen und zu editieren.<br> + <br> + Es gibt verschiedene Möglichkeiten, Gaia auszuführen:</p> + +<ul> + <li>Flashe Dein Smartphone mit der aktuellen Gaia Version.</li> + <li>Starte Gaia innerhalb einer B2G Desktop Version.</li> + <li>Führe Gaia innerhalb von WebIDE aus.</li> + <li>Starte Gaia innerhalb Deines Firefox Mulet Tools aus, um Gaia auf dem Desktop auszuführen.</li> +</ul> + +<p>Du findest auf der <a href="/en-US/Firefox_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a> Seite kurzgefasste Informationen über jede der genannten Möglichkeiten, zusammen mit Links zu detailierten Beschreibungen - je nach Bedarf. Generell sind diese nach Komplexität geordnet, absteigend von der komplexesten zur einfachsten (aber unwahrscheinlichsten) Methode.</p> + +<p>In diesem Artikel konzentrieren wir uns auf das Ausführen von Gaia innerhalb von Firefox Mulet oder in WebIDE. Für die meisten Änderungen, die Du in der Gaia Codebase machen möchtest, bietet dies den schnellsten Mechanismus, Updates zu testen aber offensichtlich gibt es einige Funktionen (z. B. das Testen von Geräte-APIs oder Interaktion mit der Smartphone Hardware ), für die ein physisches Gerät benötigt wird.</p> + +<div class="note"> +<p><strong>Info</strong>: Um weitere Hilfe zu Gaia zu bekommen, der beste Platz ist der #gaia IRC Channel (siehe auch <a href="https://wiki.mozilla.org/IRC">Mozilla IRC</a> für weitere Informationen hierzu) und die <a href="https://lists.mozilla.org/listinfo/dev-gaia">dev-gaia mailing list</a>.</p> +</div> + +<h2 id="Ausführen_der_eigenen_Gaia_Version">Ausführen der eigenen Gaia Version</h2> + +<ol> + <li>Erstelle zuerst eine Verzweigung von der <a href="https://github.com/mozilla-b2g/gaia">Gaia repo on Github</a>.</li> + <li>Als nächstes, klone Deine Verzweigung lokal: + <pre class="brush: bash">git clone https://github.com/your-username/gaia.git</pre> + </li> + <li>Füge den Upstream wie folgt hinzu: + <pre class="brush: bash">cd gaia +git remote add upstream https://github.com/mozilla-b2g/gaia</pre> + </li> + <li>Nun musst Du ein Gaia Profil anlegen. Führe <code>make</code> innerhalb Deines repo Ordners aus, um ein Profil in der <code>profile</code> Directory anzulegen, die für optimales Debugging konfiguriert ist. Dies erzeugt ungepackte (hosted) Versionen der Gaia Apps, welche dazu fungieren, gebündelt und direkt über den lokalen HTTPD Server -zusammen als Erweiterung für Firefox Desktop- übertragen zu werden. Wenn Du Änderungen gemacht hast, musst Du nur Dein Browser Fenster aktualisieren, um das Ergebnis zu sehen (wie Du es später sehen wirst), statt Dein Profil erneuern zu müssen, erneut auf das Gerät übertragen u.s.w..<br> + Dies ist sehr gut für schnelles CSS/JS/HTML Hacking.</li> + <li>Mit Deinem angelegten Debug Profil, führe es in <a href="/en-US/Firefox_OS/Developing_Gaia/Different_ways_to_run_Gaia#Using_Gaia_in_Firefox_Mulet">Mulet</a> or <a href="/en-US/Firefox_OS/Developing_Gaia/Different_ways_to_run_Gaia#Using_Gaia_inside_WebIDE_with_a_Firefox_OS_Simulator">WebIDE</a> aus, mithilfe der Anleitungen hinter den Links.</li> +</ol> + +<h2 id="Troubleshooting_und_bekannte_Probleme">Troubleshooting und bekannte Probleme</h2> + +<h3 id="Error_Python_executable_python3_is_v3.x_which_is_not_supported_by_gyp.">Error: Python executable "python3" is v3.x, which is not supported by gyp.</h3> + +<p>In manchen Linux Versionen (eg: Archlinux), ist <code>python3</code> der Standard <code>python</code>. Dadurch scheitert <code>npm</code> beim Ausführen mancher Befehle (z B. beim Testen). Um dies permanent zu beheben, führe folgenden Befehl aus:</p> + +<pre>npm config set python python2</pre> + +<p>Weiter Lösungen findest Du auch auf dieser Seite: <a href="http://stackoverflow.com/questions/20454199/how-to-use-a-different-version-of-python-duing-npm-install">Stack Overflow page</a>.</p> + +<p>Danach solltest Du Deine <code>node_modules</code> Directory löschen und den gescheiterten Befehl erneut ausführen.</p> + +<h3 id="Please_Install_NodeJS_--_(use_aptitude_on_linux_or_homebrew_on_osx)">Please Install NodeJS -- (use aptitude on linux or homebrew on osx)</h3> + +<p>Nun bekommst Du diesen Fehler obwohl Du NodeJS installiert hast. Möglicherweise benutzt Du Debian oder andere Debian-basierende Versionen wie zum Beispiel Ubuntu. Bei diesen Versionen ist NodeJS im <code>nodejs</code> Paket und Du kannst das <code>nodejs-legacy</code> Paket folgendermaßen installieren, um alles korrekt aufzusetzen:</p> + +<pre>sudo aptitude install nodejs-legacy</pre> + +<p>Solltest Du bei der Installation des Paketes Probleme haben, benutzt Du eventuell <a href="http://www.ubuntuupdates.org/ppa/chris_lea_nodejs">Chris Lea's PPA for Node</a>; bitte entferne diese bevor Du weitermachst.</p> diff --git a/files/de/archive/b2g_os/gaia_entwickeln/index.html b/files/de/archive/b2g_os/gaia_entwickeln/index.html new file mode 100644 index 0000000000..d6f1d582d6 --- /dev/null +++ b/files/de/archive/b2g_os/gaia_entwickeln/index.html @@ -0,0 +1,52 @@ +--- +title: Gaia entwickeln +slug: Archive/B2G_OS/Gaia_Entwickeln +tags: + - B2G + - Bugs + - Firefox OS + - Gaia + - Mozilla + - beitragen +translation_of: Archive/B2G_OS/Developing_Gaia +--- +<div class="summary"> +<p><span class="seoSummary">Gaia ist das User Interface von Firefox OS, sowie eine Suite für die Standard-Apps. Gaia beinhaltet den Sperr- und Startbildschirm, die Telefonie-App und weitere Apps. Im Grunde ist Gaia eine Menge an Web-Apps, welche auf Firefox OS laufen. Diese Artikel behandelt alles, was zur Mitentwicklung an Gaia wissenswert ist.</span></p> +</div> + +<p>In diesem Guide zeigen wir dir einen produktiven Workflow, um an Gaia mitzuarbeiten - und damit meinen wir, neue Features zu Gaia hinzuzufügen und an Bugs im Gaia Projekt zu arbeiten. Die ersten paar Artikel können in gegebener Reihenfolge durchgearbeitet werden oder du überspringst sie und gehst direkt zum relevanten Abschnitt, wenn du dein Wissen über ein bestimmtes Thema auffrischen möchtest.</p> + +<p>Danach stellen wir Referenzmaterialien und Informationen zu weiteren Themen zur Verfügung.</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/7951/gaia-2.0-screen.png" style="float: right; height: 533px; padding: 0px 0px 30px 30px; width: 320px;"></p> + +<h2 id="Die_Grundlagen">Die Grundlagen</h2> + +<ol> + <li><a href="/de/Firefox_OS/Developing_Gaia/Running_the_Gaia_codebase">Die Gaia Codebase zum Laufen bringen</a></li> + <li><a href="/de/Firefox_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Die Gaia Codebase verstehen</a></li> + <li><a href="/de/Firefox_OS/Developing_Gaia/Making_Gaia_code_changes">Änderungen am Gaia Code machen</a></li> + <li><a href="/de/Firefox_OS/Developing_Gaia/Test_Gaia_code_changes">Änderungen am Gaia Code testen</a></li> + <li><a href="/de/Firefox_OS/Developing_Gaia/Submitting_a_Gaia_patch">Einen Gaia Patch einreichen</a></li> +</ol> + +<h2 id="Gaia_Build_Referenzen">Gaia Build Referenzen</h2> + +<ul> + <li><a href="/de/Firefox_OS/Developing_Gaia/Build_System_Primer">Leitfaden des Gaia Build-Systems</a></li> + <li><a href="/de/Firefox_OS/Developing_Gaia/Customizing_build-time_apps">Apps für den Erststart anpassen</a></li> + <li><a href="/de/Firefox_OS/Developing_Gaia/make_options_reference">Optionen für make</a></li> + <li><a href="/de/Firefox_OS/Developing_Gaia/Gaia_tools_reference">Referenz zu den Gaia Tools</a></li> +</ul> + +<h2 id="Siehe_auch">Siehe auch</h2> + +<ul> + <li><a href="/de/Firefox_OS/Developing_Firefox_OS/Filing_bugs_against_Firefox_OS">Bug-Meldungen für Firefox OS einreichen</a></li> + <li><a href="/de/Firefox_OS/Platform/Gaia/Gaia_apps">Apps Guide zu Gaia</a></li> + <li><a href="/de/Firefox_OS/Developing_Gaia/Different_ways_to_run_Gaia">Verschiedene Wege, um Gaia zum Laufen zu bringen</a></li> + <li><a href="/de/Firefox_OS/Developing_Gaia/Market_customizations_guide">Guide zur Market-Anpassung</a></li> + <li><a href="/de/Firefox_OS/Developing_Gaia/Customizing_the_keyboard">Anpassung der Tastatur in Firefox OS Apps</a></li> + <li><a href="/de/Firefox_OS/Developing_Gaia/Localizing_Firefox_OS">Firefox OS übersetzen (Übersetzer)</a></li> + <li><a href="/de/Firefox_OS/Developing_Gaia/L10n_Best_Practices">Praktiken für den Einbau von übersetzbaren Code (Entwickler)</a></li> +</ul> diff --git a/files/de/archive/b2g_os/gaia_entwickeln/making_gaia_code_changes/index.html b/files/de/archive/b2g_os/gaia_entwickeln/making_gaia_code_changes/index.html new file mode 100644 index 0000000000..18a2a01cf5 --- /dev/null +++ b/files/de/archive/b2g_os/gaia_entwickeln/making_gaia_code_changes/index.html @@ -0,0 +1,85 @@ +--- +title: Gaia Coding ändern +slug: Archive/B2G_OS/Gaia_Entwickeln/Making_Gaia_code_changes +tags: + - Anleitung + - Code + - Firefox OS + - Gaia + - Änderungen +translation_of: Archive/B2G_OS/Developing_Gaia/Making_Gaia_code_changes +--- +<div class="summary"> +<p><span class="seoSummary">Jetzt, wo Gaia auf Deinem Desktop läuft und Du zu einem gewissen Grad die Arbeitweise der Codebase verstehst, solltest Du in der Lage sein Änderungen am Gaia Code durchzuführen. Dieser Artikel beschreibt, wie Änderungen durchgeführt werden und wie man Fehler findet um sie zu beheben.</span></p> +</div> + +<h2 id="Git_Best_Practices">Git Best Practices</h2> + +<ol> + <li>Vor dem Ändern von Gaia solltest Du zuerst den master Zweig (branch) aktualisieren: + <pre class="brush: bash">cd path/to/gaia +git checkout master +git pull upstream master</pre> + </li> + <li>Als nächstes brauchst Du einen eigenen Zweig für Deine Änderungen: + <pre class="brush: bash">git checkout -b my-code-fix</pre> + </li> + <li>Anschließend gehst Du ins Verzeichnis <code>gaia/apps</code> und führst Deine Änderungen an den App-Dateien durch.</li> +</ol> + +<h2 id="Beispiel_einer_einfachen_Code-Änderung">Beispiel einer einfachen Code-Änderung</h2> + +<p>Um Code-Änderungen anzuzeigen:</p> + +<ol> + <li>Führe die gewünschten Änderungen an der Gaia Codebase durch und speichere die Änderungen.</li> + <li>Beende Firefox Mulet oder den WebIDE Simulator.</li> + <li>Erneuere Dein Gaia Profil mit <code>make</code>.</li> + <li>Starte Firefox Mulet oder den WebIDE Simulator erneut.</li> +</ol> + +<p>Lass uns etwas Einfaches ändern wie die Textfarbe der Uhr auf dem Sperrbildschirm:</p> + +<p><img alt="Gaia lockscreen showing the clock display in white text" src="https://mdn.mozillademos.org/files/7929/gaia-lockscreen-clock.png" style="display: block; height: 623px; margin: 0px auto; width: 369px;"></p> + +<ol> + <li>Der beste Weg um herauszufinden wo dieser Stil geändert wird ist über die Entwickler-Werkzeuge. Verwende hier Strg/rechte Maustaste + Klick auf die Uhr im Firefox Desktop und wähle im Kontext-Menü <em>Element untersuchen</em>.</li> + <li>Nun kannst Du die zu ändernde CSS Datei suchen — in diesem Fall <code>gaia/apps/system/lockscreen/style/lockscreen.css</code> — und die Änderungen an den CSS Styles auf der rechten Seite des Displays nach Deinen Vorstellungen vornehmen.</li> + <li>Wenn Du mit Deinen Änderungen zufrieden bist, dann öffne die Datei und mache dort Deine Änderungen direkt.</li> + <li>Als nächstes führst Du die oben aufgeführten Schritte durch, um Dir Deine Änderungen anzusehen.</li> +</ol> + +<p><img alt="Gaia lockscreen showing the clock display modified from white to red text" src="https://mdn.mozillademos.org/files/7931/gaia-lockscreen-clock-modified.png" style="display: block; height: 622px; margin: 0px auto; width: 366px;"><br> + <br> + <br> + Einschränkungen im Gaia Firefox Mulet Rendering:</p> + +<ul> + <li>Im Desktop Firefox Rendering werden die Apps im Vergleich zur Smartphone-Version so originalgtreu wie möglich simuliert, aber an einigen Stellen wirst Du ein paar Unterschiede feststellen.</li> + <li>Nicht alle Geräte-APIs werden im Desktop Firefox unterstützt; eine Liste der unterstützten APIs findest Du auf <a href="https://github.com/mozilla-b2g/gaia/blob/master/build/preferences.js">preferences.js</a>.</li> +</ul> + +<h2 id="Wo_man_zu_bearbeitende_Fehler_findet">Wo man zu bearbeitende Fehler findet</h2> + +<p>Am besten nutzt Du <a href="http://www.joshmatthews.net/bugsahoy/?b2g=1">Josh Matthews' Bugs Ahoy app</a> um Fehler zu finden, die Du bearbeiten kannst — diese Seite liest die vorhandenen Bugs direkt aus Mozilla's Bugzilla und stellt sie im Browser inklusive Suchfunktion dar. Wenn Du einen Fehler gefunden hast den Du bearbeiten willst, dann gehe zu dessen Bugzilla-Seite, trage Dich als Bearbeiter im Feld "assigned to" ein und beginne mit der Arbeit wie oben beschrieben.</p> + +<h3 id="Nützliche_Tipps">Nützliche Tipps</h3> + +<ul> + <li>Wenn Du an Bugs arbeitest die einem Mentor zugewiesen sind wird jemand aus dem Gaia Core Team diesen Vorgang beobachten und Dir mit Rat und Tat zur Seite stehen. Falls Du ein neuer Mitwirkender im Firefox OS Verbesserungs-Prozess bist, dann kann das Bearbeiten von solchen Fehlern sehr hilfreich sein. Einem Mentor zugewiesene Bugs haben in den Firefox OS Bugzilla-Seiten einen Eintrag im Feld "Mentors". Bugs Ahoy listet solche Bugs ebenfallls auf.</li> + <li>Wenn Du ein komplett neuer Bugzilla-Anwender bist, dann wirst Du Dich vielleicht nicht selbst einem Bug als Bearbeiter zuordnen können. Falls Du damit Probleme haben solltest, wende Dich an den im Bug angegebenen Mentor (falls vorhanden) oder schildere Dein Problem im Kommentar-Feld.</li> + <li>Wenn Du ein bischen mehr Erfahrung hast, dann kannst Du jemanden nach den entsprechenden Berechtigungen fragen, um Dir selbst Bugs zuzuweisen.</li> + <li>Eine andere gute Möglichkeit zum Finden offener Bugs ist <code>[good first bug]</code>, speziell wenn Du als Neu-Einsteiger mit etwas Einfacherem anfangen möchtest. Diese speziell für Neu-Einsteiger gefilterte Liste findest Du auf <a href="http://www.joshmatthews.net/bugsahoy/?b2g=1&simple=1">http://www.joshmatthews.net/bugsahoy/?b2g=1&simple=1</a>.</li> + <li>Du solltest Deine Suche nach für Dich geeigneten Projekten speichern. Beispiel für eine Bug-Suche für die Gaia App "Uhr" :</li> +</ul> + +<p><a href="https://bugzilla.mozilla.org/buglist.cgi?columnlist=product%2Ccf_blocking_b2g%2Cbug_status%2Cresolution%2Cshort_desc&resolution=---&query_based_on=CLOCK&query_format=advanced&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&component=Gaia%3A%3AClock&product=Boot2Gecko&known_name=CLOCK&list_id=10497922">https://bugzilla.mozilla.org/buglist.cgi?columnlist=product%2Ccf_blocking_b2g%2Cbug_status%2Cresolution%2Cshort_desc&resolution=---&query_based_on=CLOCK&query_format=advanced&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&component=Gaia%3A%3AClock&product=Boot2Gecko&known_name=CLOCK&list_id=9776392</a></p> + +<h2 id="Siehe_auch">Siehe auch</h2> + +<ul> + <li><a href="https://mozilla.app.box.com/s/wzgsb3lkqglv0dnfdgzs">Gaia powerpoints for visual/interaction specifications</a></li> + <li><a href="https://etherpad.mozilla.org/gaia-meeting-notes">Weekly Gaia meeting Etherpad</a></li> + <li><a href="https://datazilla.mozilla.org/">Datazilla</a>: Mozilla's Performance Test Werkzeug<br> + </li> +</ul> diff --git a/files/de/archive/b2g_os/index.html b/files/de/archive/b2g_os/index.html new file mode 100644 index 0000000000..4447e3c024 --- /dev/null +++ b/files/de/archive/b2g_os/index.html @@ -0,0 +1,163 @@ +--- +title: B2GOS +slug: Archive/B2G_OS +tags: + - Anfangen + - Anfänger + - B2G OS + - Basic + - Firefox OS + - Gaia + - Gecko + - Gonk + - NeedsTranslation + - TopicStub +translation_of: Archive/B2G_OS +--- +<div class="summary"> +<p><span class="seoSummary">B2G OS ist ein vollständiges, selbstständig arbeitendes Betriebssystem für das offene Web. Es ist ein von der Mozilla-Community entwickeltes Open-Source-Projekt und bildet die Grundlage der Firefox OS-Produkte.</span></p> +</div> + +<p><strong>B2G</strong> <strong>OS</strong> ist ein von der Community gepflegtes Open-Source-Betriebssystem für Smartphones, Tablets, Smart TVs und andere internetfähige Geräte. Das Projekt startete ursprünglich 2011 und basiert auf dem Linux-Kernel und der Rendering-Engine Gecko. Die komplette Nutzeroberfläche ist mit Web-Technologien geschrieben und kann zum Starten und Benutzen von <a href="/de/Apps">Web-Anwendungen</a> benutzt werden. Nachdem die Mozilla Corporation ihr kommerzielles Firefox OS Smartphone-Programm eingestellt hat, wird das Projekt für Smartphones von Mozillas Community weiterentwickelt und als B2G OS geführt.</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13140/B2g_wordmark.png" style="height: 193px; width: 555px;"></p> + +<div class="note"> +<p><strong>Hinweis</strong>: <a href="https://wiki.mozilla.org/B2G/Transition_Project/Call_For_Contribution">Aufruf zur Mitarbeit</a> & <a href="https://discourse.mozilla-community.org/t/updated-13th-july-call-for-app-maintainers-adopt-an-app/9300">Aufruf zur Appanpassung</a> um mehr Personen zu beteiligen. Hilf uns und teile ihn!</p> +</div> + +<div class="column-container"> +<div class="column-third"> +<h2 id="Mithelfen">Mithelfen</h2> + +<ul> + <li>Melde & behebe Fehler (Meta-Bug ist <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1252143">Bug 1252143</a>)</li> + <li>Hilf uns, fehlschlagende <a href="/en-US/docs/Archive/Firefox_OS/Automated_testing">Tests</a> zu reparieren</li> + <li>Portiere eine Gaia <a href="https://mozilla-b2g.github.io/gaia/">Smartphone-App</a>: + <ol> + <li>in eine Web-App (oder)</li> + <li>in eine chrome://-Anwendung (<a href="https://discourse.mozilla-community.org/t/why-gaia-apps-are-turned-to-chrome/8011">warum?</a>) und berichte darüber</li> + </ol> + </li> + <li><a href="/en-US/docs/Mozilla/B2G_OS/Porting_B2G_OS">Portiere B2G OS für dein Smartphone</a> und hilf uns, den Port zu pflegen</li> + <li>Hilf uns, diese Dokumentation und das Wiki zu verbessern und zu übersetzen</li> + <li>Schlage neue Smartphone-Funktionen vor und implementiere sie</li> +</ul> +</div> + +<div class="column-third"> +<h2 id="Mitreden">Mitreden</h2> + +<ul> + <li>Mailing-Liste (<a href="https://lists.mozilla.org/listinfo/dev-fxos">dev-fxos</a>)</li> + <li><a href="https://wiki.mozilla.org/IRC">IRC</a> (irc.mozilla.org #fxos)</li> + <li><a href="https://discourse.mozilla-community.org/c/b2g-os-participation">Discourse</a></li> + <li><a href="https://telegram.me/B2GOS">Telegram-Gruppe</a></li> + <li><a href="https://wiki.mozilla.org/B2G/Transition_Project/FAQ">Projekt-Wiki</a></li> + <li><a href="https://wiki.mozilla.org/B2G/Meeting">B2G Wöchentliches Meeting</a> für Status-Updates zum Engineering</li> + <li>Dokumentations-Probleme werden auf <a href="https://github.com/mozilla-b2g/B2GOS-community/issues">GitHub</a> gesammelt</li> + <li>Um an Meetings und Community Working Group-Meetings teilzunehmen, trage dich in diesen <a href="https://calendar.google.com/calendar/embed?src=mozilla.com_2d3638353137343333373332@resource.calendar.google.com">Kalender</a> ein. Sie werden auf <a href="https://discourse.mozilla-community.org/c/b2g-os-participation">Discourse</a> angekündigt. Dort findest du auch weitere Informationen dazu, wie du dich anmeldest und die Notizen.</li> + <li><a href="/en-US/docs/Mozilla/Firefox_OS/Preparing_for_your_first_B2G_build" title="Mozilla/Firefox_OS/Preparing for your first B2G build">Vorbereitung des ersten Builds</a></li> + <li><a href="/en-US/docs/Mozilla/Firefox_OS/Building" title="Mozilla/Firefox_OS/Building">B2G OS erstellen</a></li> +</ul> +</div> + +<div class="column-third"> +<h2 id="Geräte">Geräte</h2> + +<p>Informationen zu unterstützten Geräten, auf denen B2G OS laufen kann:</p> + +<ul> + <li><a href="https://discourse.mozilla-community.org/t/building-b2g-os-for-aries-z3c/8082">Sony Xperia Z3C</a> (Entwicklergerät)</li> + <li><a href="https://discourse.mozilla-community.org/t/flame-builds/8548">Flame</a> (Entwicklergerät)</li> + <li><a href="https://discourse.mozilla-community.org/t/zte-open-c/8402">ZTE Open C</a> (in Arbeit)</li> + <li>WileyFox Swift</li> + <li>Nexus 4 (in Arbeit)</li> + <li><a href="https://discourse.mozilla-community.org/t/fairphone-2-support-for-b2g-installer-landed/8334">Fairphone 2</a> (in Arbeit)</li> + <li><a href="https://discourse.mozilla-community.org/t/support-for-amami-xperia-z1c-building-debugging-providing-builds/8348">Sony Xperia Z1C</a> (in Arbeit)</li> + <li><a href="https://discourse.mozilla-community.org/t/b2g-os-flamingo-sony-xperia-e3-builds/8361">Sony Xperia E3</a> (in Arbeit)</li> +</ul> + +<p>Mehr Informationen finden sich <a href="/en-US/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">hier</a>.</p> + +<p>Dein Gerät ist nicht dabei? Probier die <a href="https://wiki.mozilla.org/Mulet">Mulet</a>-Desktopanwendung aus.</p> +</div> +</div> + +<div class="note"> +<p><strong>Hinweis:</strong> Einige Seiten wurden in das <a href="/en-US/docs/Archive/Firefox_OS">MDN-Archiv</a> verschoben. Lass es uns wissen, wenn du Schwierigkeiten hast, etwas zu finden oder ein Abschnitt aus dem Archiv hierher zurückgeholt werden sollte.</p> +</div> + +<p> </p> + +<h2 id="Subnav">Subnav</h2> + +<ol> + <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/B2G_OS_Architecture">B2G OS Architecture</a> + + <ol> + <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/B2G_OS_Architecture">B2G OS Architecture</a></li> + <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li> + </ol> + </li> + <li><a class="toggler" href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/Developing_Gaia">Gaia</a> + <ol> + <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/Developing_Gaia">Gaia overview</a></li> + <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li> + <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li> + <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Developing Gaia</a> + <ol> + <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li> + <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li> + <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li> + <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li> + <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li> + <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li> + <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li> + </ol> + </li> + </ol> + </li> + <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build B2G OS</a> + <ol> + <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build overview</a></li> + <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li> + <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li> + <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li> + <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/Building">Building B2G OS</a> + <ol> + <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li> + <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li> + <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/Building/Building_for_Fairphone">Building for Fairphone</a></li> + <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li> + </ol> + </li> + </ol> + </li> + <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Run B2G OS on Desktop</a> + <ol> + <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li> + <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/Mulet">Run B2G OS on desktop using Mulet</a></li> + </ol> + </li> + <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Install B2G OS on mobile</a> + <ol> + <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li> + <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li> + </ol> + </li> + <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li> + <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Create updates for B2G OS</a> + <ol> + <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li> + <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community build</a></li> + </ol> + </li> + <li><a class="toggler" href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting B2G OS</a> + <ol> + <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></li> + <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li> + <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li> + </ol> + </li> +</ol> diff --git a/files/de/archive/b2g_os/installing_on_a_mobile_device/index.html b/files/de/archive/b2g_os/installing_on_a_mobile_device/index.html new file mode 100644 index 0000000000..96a469353c --- /dev/null +++ b/files/de/archive/b2g_os/installing_on_a_mobile_device/index.html @@ -0,0 +1,81 @@ +--- +title: Installing Firefox OS on a mobile device +slug: Archive/B2G_OS/Installing_on_a_mobile_device +translation_of: Archive/B2G_OS/Installing_on_a_mobile_device +--- +<div class="summary"> + <p><span class="seoSummary">Once you've built Boot to Gecko for a <a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_build_prerequisites#Have_a_compatible_device_or_use_an_emulator">supported mobile device</a>, you can install it. This article will guide you through the process.</span></p> +</div> +<div class="note"> + <strong>Note:</strong> The first time you flash your phone, it <strong>must</strong> have Android 4 (Ice Cream Sandwich) installed. The process will not work correctly otherwise. Once you've done your first install of B2G, however, you can simply update on top of it.</div> +<h2 id="Installing_ADB">Installing ADB</h2> +<p><strong>On OSX</strong></p> +<p>If you have homebrew on OSX:</p> +<pre>brew install android-platform-tools</pre> +<p>Otherwise, download the Android Developer Tools and add the binaries to your PATH.</p> +<p><strong>On Ubuntu</strong></p> +<pre>sudo apt-get install android-tools-adb</pre> +<h2 id="Flashing_your_phone">Flashing your phone</h2> +<p>To flash everything to your phone, simply connect your phone and type:</p> +<pre>./flash.sh +</pre> +<p>That's it. The B2G you've currently got built will flash onto your device.</p> +<p>Note that If you are updating across revisions with significant Gaia changes, you might need also do:</p> +<pre class="brush: bash">cd gaia +make reset-gaia</pre> +<p>This will wipe all of your data stored in Gaia, but also clear out obsolete Gaia settings and prefs so that you'll boot into a "clean" Gaia. In theory <code>./flash.sh</code> should do this already, but for some devices (e.g. hamachi) <code>./flash.sh</code> only flashes a subset of modules (<code>./flash.sh -f</code> will force flash everything.)</p> +<h3 id="Configuring_the_udev_rule_for_your_device">Configuring the udev rule for your device</h3> +<p>On Linux, if you get this,</p> +<pre>< waiting for device ></pre> +<p>that probably means that you haven't added a udev rule for the fastboot device, which is not the same as the one for adb. (Though it also might just mean you need to run ./flash.sh with sudo) You can get the USB vendor ID by running <code>lsusb</code> now, but typically it's Google's: 18d1, so adding this line in your <code>/etc/udev/rules.d/51-android.rules</code> would work:</p> +<pre>SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"</pre> +<div class="note"> + <strong>Note:</strong> If you get a very helpful <code>libusb</code> error "-3" on Linux, it means you need to be root to have the needed access to the USB device. Run the script again using <code>sudo</code>.</div> +<div class="note"> + <strong>Note 2</strong>: If you have an Unagi or a Geeksphone Keon phone, you need two lines like this - one for the original phone vendor's ID, and one for Google's.</div> +<h3 id="Special_notes_for_Hamachi_Helix_and_Leo_devices">Special notes for Hamachi, Helix, and Leo devices</h3> +<p>If your phone is a hamachi, helix or leo device, the ./flash.sh script will now default to flashing only gecko and gaia. It is recommended that you flash with the OEM as a base build to get the firmware and the gonk layers and then flash the gecko and gaia on top. If you want to flash using the images, there is an override flash where you can ./flash.sh -f and it will use the image files to flash your device.</p> +<h3 id="Special_notes_for_the_Samsung_Galaxy_S2">Special notes for the Samsung Galaxy S2</h3> +<p>If your phone is a Galaxy S2 and you are using heimdall 1.3.2 (the latest version; use <code>heimdall version</code> to check), you may see an alarming error "FACTORYFS upload failed!" followed by "Heimdall flashing failed" and some additional information. This is actually a success condition, and you can ignore the advice.</p> +<p>To get rid of this strange behavior, grab a <a class="link-https" href="https://github.com/Benjamin-Dobell/Heimdall" title="https://github.com/Benjamin-Dobell/Heimdall">source copy</a> of heimdall, downgrading to the 1.3.1 release ("<code>git checkout fbbed42c1e5719cc7a4dceeba098981f19f37c06</code>"), then compile it according to the <code>README</code>, then install that to make the error go away. However, this isn't strictly necessary.</p> +<p>All versions of heimdall are unable to flash a system.img larger than 100MB. Do:</p> +<pre>ls -l ./out/target/product/galaxys2/system.img +</pre> +<p>to see how big yours is. If it's too large, ask in IRC for advice; there are ways to do it in two stages.</p> +<h2 id="Added_step_for_the_Samsung_Galaxy_S2">Added step for the Samsung Galaxy S2</h2> +<p>If you're flashing onto the Galaxy S2, there is an additional step to follow. Gaia does not get flashed automatically by the <code>flash.sh</code> script; you'll need to also do:</p> +<pre>./flash.sh gaia +</pre> +<h2 id="Flashing_specific_partitions_to_fastboot_phones">Flashing specific partitions to fastboot phones</h2> +<p>You can flash specific partitions to fastboot phones (that is, any phone other than the Samsung Galaxy S2). For example:</p> +<pre>./flash.sh system +./flash.sh boot +./flash.sh user +</pre> +<p><strong>WARNING</strong>: flashing user (at least) may delete your user-specific data (contacts, etc.).</p> +<h2 id="Updating_specific_modules">Updating specific modules</h2> +<p>You can update specific components of B2G by specifying their names when flashing. For example:</p> +<pre>./flash.sh gaia +./flash.sh gecko +</pre> +<p>In order to update only one application you can use BUILD_APP_NAME environment variable:</p> +<pre>BUILD_APP_NAME=calendar ./flash.sh gaia</pre> +<p>If your phone is not for developer (you aren't interested on test apps and/or require optimization), you can update gaia using:</p> +<pre>VARIANT=user ./flash.sh gaia</pre> +<h2 id="Next_steps">Next steps</h2> +<p>At this point, your phone should be running Boot to Gecko! It's time to experiment, <a href="/en-US/docs/Mozilla/Firefox_OS/Application_development" title="en-US/docs/Mozilla/Firefox_OS/Application_development">write some code</a>, <a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Testing" title="en-US/docs/Mozilla/Firefox_OS/Platform/Testing">test</a>, or <a href="/en-US/docs/Mozilla/Firefox_OS/Debugging" title="en-US/docs/Mozilla/Firefox_OS/Debugging">do some debugging</a>!</p> +<div class="note"> + <strong>Note:</strong> A helpful usage tip: if your build of B2G starts up with the lock screen requesting a pass code to unlock the phone, the default code is 0000.</div> +<h2 class="note" id="Troubleshooting">Troubleshooting</h2> +<p>Here are a some tips for what to do if your device doesn't work right after installing B2G, or updating it to a new version</p> +<h3 class="note" id="If_the_UI_doesnt_start_up">If the UI doesn't start up</h3> +<p>If you update your phone and the user interface doesn't start up, you can reset it to clear out out-of-date configuration and the like. This may bring it back to life, but note that it may also delete your user-specific data (contacts, etc.). Here's how:</p> +<pre>cd gaia +make reset-gaia +</pre> +<h3 class="note" id="If_you_want_change_from_developer_to_production_mode">If you want change from developer to production mode</h3> +<pre>cd gaia +make reset-gaia PRODUCTION=1</pre> +<p><strong>WARNING</strong>: reset-gaia may delete your user-specific data (contacts, etc.).</p> +<h3 class="note" id="image_is_too_large_error_message_on_.flash.sh_execution">"image is too large" error message on ./flash.sh execution</h3> +<p>It might mean that you phone needs to be rooted first before flashing it. As b2g needs to be written on root partition, your phone needs to be rooted in order to install it.</p> diff --git a/files/de/archive/b2g_os/introduction/index.html b/files/de/archive/b2g_os/introduction/index.html new file mode 100644 index 0000000000..606b63f0e7 --- /dev/null +++ b/files/de/archive/b2g_os/introduction/index.html @@ -0,0 +1,84 @@ +--- +title: Einführung in Firefox OS +slug: Archive/B2G_OS/Introduction +translation_of: Archive/B2G_OS/Introduction +--- +<p><strong>Firefox OS</strong> (auch unter seinem Codenamen "Boot to Gecko" oder "B2G" bekannt) ist Mozillas Open Source Betriebssystem für mobile Endgeräte, das auf Linux und Mozillas Gecko-Technologie basiert. Firefox OS ist ein mobiles Betriebssystem, das ohne proprietäre Technologie auskommt und dennoch Anwendungsentwicklern eine leistungsstarke Plattform bietet, um hervorragende Produkte zu erstellen. Darüber hinaus ist es flexibel und leistungsfähig genug, um auch den Endprodukt-Nutzer glücklich zu machen.</p> +<p>Für Web-Entwickler ist es am Wichtigsten zu verstehen, dass die gesamte Benutzeroberfläche eine Web-Anwendung ist, von der aus sich andere Web-Anwendungen anzeigen und ausführen lassen. Jede deiner Veränderungen an der Benutzeroberfläche und jegliche Anwendung, die du für den Betrieb unter Firefox OS erstellst, sind Webseiten. Allerdings: Mit erweitertem Zugriff auf Hardware und Dienste des mobilen Endgeräts.</p> +<p>Wie man Firefox OS installiert, kannst du unserer <a href="/en-US/docs/Mozilla/Firefox_OS/Building_and_installing_Firefox_OS" title="en-US/docs/Mozilla/Firefox_OS/Building_and_installing_Firefox_OS">Handy-Anleitung entnehmen</a>.</p> +<h2 id="Hardware-Voraussetzungen">Hardware-Voraussetzungen</h2> +<p>Die Portierung von Firefox OS sollte für die meisten aktuellen Mobilgeräte mit ARM-Chips gelingen. Der vorliegende Abschnitt beschreibt die grundlegenden Hardware-Anforderungen sowie empfohlene Eigenschaften der Hardware.</p> +<p> </p> +<table> + <thead> + <tr> + <th scope="col">Komponente</th> + <th scope="col">Minimum</th> + <th scope="col">Empfohlen</th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">CPU</th> + <td>ARMv6</td> + <td>Cortex A5 class oder besser<br> + ARMv7a mit NEON</td> + </tr> + <tr> + <th scope="row">GPU</th> + <td>—</td> + <td>Adreno 200 class oder besser</td> + </tr> + <tr> + <th scope="row">Verbindungen</th> + <td>—</td> + <td>WiFi<br> + 3G</td> + </tr> + <tr> + <th scope="row">Sensoren</th> + <td>—</td> + <td>Accelerometer<br> + Proximity<br> + Ambient light<br> + A-GPS</td> + </tr> + </tbody> +</table> +<p>Es wird außerdem empfohlen, dass die Geräte ein einheitliches Farbprofil anbieten sollen (was über den Treiber der Grafikeinheit zu implementieren wäre). Ebenso sollen sie das Stummstellen und die Wiedergabe-Funktion via Kopfhörer-Fernbedienung unterstützen. Beides sind gängige Fähigkeiten moderner Smartphones.</p> +<h2 id="Hinweise_zur_Benutzung">Hinweise zur Benutzung</h2> +<p>Dieser Abschnitt bietet dir einige Hinweise zur Verwendung von Firfox OS. Dabei handelt es sich um eine Art Platzhalter, bis wir eine echte Benutzer-Dokumentation zur Verfügung haben.</p> +<h3 id="Entsperren_des_Telefons">Entsperren des Telefons</h3> +<p>Falls dein aus dem Quellcode erstelltes Firefox OS mit der Frage nach einem Entsperr-Code hochfährt, so lautet dieser standardmäßig 0000. Das liegt daran, dass wir bei diesen Code-Versionen mit der Entwicklung und dem Testen des Sperr-Bildschirms (Lock-Screen) beschäftigt sind.</p> +<h3 id="Erstellen_eines_Screenshots">Erstellen eines Screenshots</h3> +<p>Ein Screenshot lässt sich ganz einfach durch gleichzeitiges Drücken von Power- und Home-Taste erzeugen. Das entsprechende Bild wird unter <code>/sdcard/screenshots</code> auf deinem Gerät abgelegt. Du kannst darauf auch mit Hilfe der Galerie-App deines Telefons zugreifen.</p> +<p>Sollte das aus irgendeinem Grund nicht funktionieren, kannst du auch jederzeit über ein Terminal des Linux- oder MacOSX-Computers, auf dem ein Firefox OS installiert ist, darauf zugreifen.</p> +<ol> + <li>Stell sicher, dass bei dir <code>ffmpeg</code> installiert ist. + <ol> + <li>Wenn Du MacPorts verwendest, kannst du das auf dem Mac mit <code>sudo port install ffmpeg</code> nachholen. Mit homebrew verwende <code>brew install ffmpeg</code>.</li> + <li>Unter Linux (Ubuntu/Debian) verwende <code>sudo apt-get install ffmpeg</code>.</li> + </ol> + </li> + <li>Schließe dein Telefon mit einem USB-Kabel an deinen Rechner an.</li> + <li>Erzeuge auf deinem Telefon die Situation, von der Du einen Screenshot willst.</li> + <li>Wechsle mit <code>cd</code> ins <code>B2G/gaia</code> Verzeichnis.</li> + <li><code>make screenshot</code></li> + <li>Du hast einen Screenshot namens <code>screenshot.png</code> erstellt.</li> +</ol> +<h3 id="Tasten_und_Bedienelemente">Tasten und Bedienelemente</h3> +<p>Ein typisches Firefox OS-Gerät verfügt hardwareseitig nur über eine geringe Zahl physischer Bedienelemente:</p> +<dl> + <dt> + Home-Taste</dt> + <dd> + Diese Taste befindet sich im Allgemeinen mittig unterhalb des Bildschirms. Bei Tastendruck wird man zum App-Launcher zurückgeführt. Bei Halten der Taste wird die Ansicht zum Umschalten der Karten geöffnet: Hochwischen auf einer App entfernt diese.</dd> + <dt> + Lautstärken-Wippe</dt> + <dd> + Entlang der linken Seite befindet sich die Lautstärken-Wippe. Druck auf die obere Hälfte erhöht die Lautstärke, Druck auf die untere senkt sie.</dd> + <dt> + Power-Taste</dt> + <dd> + Die Power-Taste befindet sich an der oberen rechten Ecke des Geräts.</dd> +</dl> diff --git a/files/de/archive/b2g_os/phone_guide/alcatel_one_touch_fire/index.html b/files/de/archive/b2g_os/phone_guide/alcatel_one_touch_fire/index.html new file mode 100644 index 0000000000..4ba54a945b --- /dev/null +++ b/files/de/archive/b2g_os/phone_guide/alcatel_one_touch_fire/index.html @@ -0,0 +1,102 @@ +--- +title: Alcatel One Touch Fire +slug: Archive/B2G_OS/Phone_guide/Alcatel_One_Touch_Fire +tags: + - Alcatel One Touch Fire + - Firefox OS +translation_of: Archive/B2G_OS/Phone_guide/Alcatel_One_Touch_Fire +--- +<div class="column-container"> +<div class="column-half"><img alt="" src="https://mdn.mozillademos.org/files/10285/alcatel-onetouchfire.7e8f7701bbff.png" style="height: 366px; width: 200px;"></div> + +<div class="column-half"> +<p>Das Alcatel One Touch Fire Smartphone mit Firefox OS verfügt über einen 1 GHz Prozessor und einer rückseitigen 3.2 Megapixel Kamera. Es wird von einer großen Vielzahl von Mobilfunkanbietern in verschiedenen Teilen der Welt angeboten.</p> + +<h2 id="Besorge_dir_ein_Gerät">Besorge dir ein Gerät</h2> + +<p>Das Alcatel One Touch Fire ist im allgemeinen Handel erhältlich.</p> + +<h2 id="Verfügbare_Länder">Verfügbare Länder</h2> + +<div class="column-container"> +<div class="column-half"> +<ul> + <li>Brasilien</li> + <li>Chile</li> + <li>Kolumbien</li> + <li>Deutschland</li> + <li>Griechenland</li> + <li>Ungarn</li> + <li>Italien</li> +</ul> +</div> + +<div class="column-half"> +<ul> + <li>Mexico</li> + <li>Montenegro</li> + <li>Peru</li> + <li>Polen</li> + <li>Serbien</li> + <li>Venezuela</li> +</ul> +</div> +</div> + +<h2 id="Mobilfunkanbieter">Mobilfunkanbieter</h2> + +<div class="column-container"> +<div class="column-half"> +<ul class="comma-list"> + <li>Congstar</li> + <li>Cosmote</li> + <li>Movistar</li> + <li>T-Mobile</li> +</ul> +</div> + +<div class="column-half"> +<ul> + <li>Telcel</li> + <li>Telenor</li> + <li>TIM</li> + <li>Vivo</li> +</ul> +</div> +</div> +</div> +</div> + +<h2 id="Software_-_Updates_Upgrades">Software - Updates & Upgrades</h2> + +<p>Das Systemabbild des Gerätes ist durch den Mobilfunkanbieter gesperrt. Aus diesem Grund kann ein Update der Software nur durchgeführt werden wenn der Netzbetreiber ein OTA Update veröffentlicht.</p> + +<h2 id="Geräteeigenschaften">Geräteeigenschaften</h2> + +<p>Mehr Geräteeigenschaften sind auf der <a href="http://www.alcatelonetouch.com/global-en/products/smartphones/one_touch_fire.html#.VQPk8DWnWPs">Alcatel Website</a> unter dem Reiter "Specification" aufgelistet.</p> + +<ul> + <li><strong>CPU</strong>: Qualcomm Snapdragon MSM7227A, 1 GHz CPU</li> + <li><strong>Kamera</strong>: 3.2 megapixel rear</li> + <li><strong>Batterie</strong>: 1400 mAh</li> + <li><strong>Display</strong>: 3.5” HVGA TFT 262K color display</li> + <li><strong>Auflösung</strong>: 320x480 pixels</li> + <li><strong>Interner Speicher</strong>: 512MB NAND + 256MB RAM</li> + <li><strong>Externer Speicher</strong>: MicroSD Card: up to 32GB</li> + <li><strong>Maße</strong>: <span>115 x 62.3 x 12.2 mm</span></li> + <li><strong>Gewicht</strong>: Approx. <span>108g</span></li> +</ul> + +<h2 id="Verfügbare_Farben">Verfügbare Farben</h2> + +<ul> + <li>Mozilla Orange</li> + <li>Pure White</li> + <li>Apple Green</li> +</ul> + +<h2 id="Weitere_Informationen">Weitere Informationen</h2> + +<ul> + <li><a href="http://www.alcatelonetouch.com/global-en/products/smartphones/one_touch_fire.html#.VQPk8DWnWPs">Alcatel One Touch Fire</a><a href="http://www.zenmobile.in/category-ultrafone/105-fire"> </a></li> +</ul> diff --git a/files/de/archive/b2g_os/phone_guide/flame/index.html b/files/de/archive/b2g_os/phone_guide/flame/index.html new file mode 100644 index 0000000000..b8e75bb09a --- /dev/null +++ b/files/de/archive/b2g_os/phone_guide/flame/index.html @@ -0,0 +1,39 @@ +--- +title: Flame +slug: Archive/B2G_OS/Phone_guide/Flame +translation_of: Archive/B2G_OS/Phone_guide/Flame +--- +<div> + <h3 id="Coming_soon"><img alt="A picture of the Flame device, showing the Firefox OS homescreen containing several app icons." src="https://mdn.mozillademos.org/files/7697/Firefox-OS-Flame-Reference-Device-small.png" style="float: left; margin-right: 50px; margin-bottom: 20px;">Coming soon</h3> + <p><span class="seoSummary">The Flame developer reference phone is a milestone in Firefox OS device releases. The Flame hardware offers a representative set of specs — including FWVGA display and dual-core processor (see <a href="/en-US/Firefox_OS/Developer_phone_guide/Phone_specs">Phone and device specs</a> for full specs) — to help developers build great content and experiences. A single hardware platform is also good for testers, making it easier to test and address specific software issues without having to worry about device model-specific bugs, etc.</span></p> +</div> +<p>If you have your phone in hand and want to start playing with it, developing and distributing apps, or contributing to the Firefox platform, the following links will get you where you need to go:</p> +<ul> + <li><a href="/en-US/Firefox_OS">Firefox OS zone</a>: For creating your own Firefox OS builds and contributing to the B2G and Gaia projects.</li> + <li><a href="/en-US/Apps">App Center zone</a>: For building open web apps compatible with Firefox OS.</li> + <li><a href="/en-US/Marketplace">Marketplace zone</a>: For information on publishing and distributing apps.</li> + <li><a href="https://marketplace.firefox.com/">Firefox Marketplace</a>: The best source to find and publish new Firefox OS apps.</li> +</ul> +<p style="">If you’d like to purchase a phone or find out more about using it, you’ll find the information you need below.</p> +<h2 id="Purchasing_a_device">Purchasing a device</h2> +<p>Our device manufacturer partner is making the device available for purchase in the latter part of Q2, 2014, retailing at approximately US$170, global shipping included. Available for pre-order soon!</p> +<h2 id="Emergency_download_mode">Emergency download mode</h2> +<p>When flashing a new build to your phone fails to work, your phone becomes unresponsive, and the phone cannot enter fastboot mode, you can use emergency download mode for recovery.</p> +<p>A USB cable and the Emergency Download Tool are required to enter emergency download mode. (Tool download coming soon.)</p> +<h2 id="Recovery_mode">Recovery mode</h2> +<p>You can enter recovery mode to clear your phone data or manually update the firmware. There are two ways to enter this mode:</p> +<ul> + <li>If <a href="/en-US/Firefox_OS/Debugging/Installing_ADB">ADB</a> tools are available, make sure Remote debugging is turned on in the phone's <a href="/en-US/Firefox_OS/Debugging/Developer_settings#Remote_debugging">Developer settings</a>, connect your phone to your computer via USB and enter <code>adb reboot recovery</code> on the command line.</li> + <li>If your phone is powered off, press the Volume Up + Power buttons together.</li> +</ul> +<p>When in recovery mode, press the Volume up/down keys to move the selection highlight, and the Power key to select. Make sure you have your phone data (Contacts, SMS, etc.) backed up before clearing data, and your upgrade packages downloaded before updating.</p> +<h2 id="RAM_adjustment">RAM adjustment</h2> +<p>You can adjust the available RAM capacity to see how apps perform on Firefox OS phones with lower memory footprints.</p> +<p>This is accomplished by entering fastboot mode (install fastboot first, which is available in the same SDK page as <a href="/en-US/Firefox_OS/Debugging/Installing_ADB">ADB</a>) and typing:</p> +<pre class="brush: bash">fastboot oem mem [0|256-1024]</pre> +<p>“0” is the memory automatically detected and “256-1024” is the number of megabytes. For example, if you want to adjust device RAM capacity to 512M, enter <code>fastboot oem mem 512</code>.</p> +<p>You'll need to then reboot your device for the settings to take effect. This can be done using:</p> +<pre class="brush: bash">fastboot reboot</pre> +<p>The current memory size can be returned by entering fastboot mode and typing:</p> +<pre class="brush: bash">fastboot getvar mem +</pre> diff --git a/files/de/archive/b2g_os/phone_guide/geeksphone/index.html b/files/de/archive/b2g_os/phone_guide/geeksphone/index.html new file mode 100644 index 0000000000..b9bc2572df --- /dev/null +++ b/files/de/archive/b2g_os/phone_guide/geeksphone/index.html @@ -0,0 +1,202 @@ +--- +title: Geeksphone +slug: Archive/B2G_OS/Phone_guide/Geeksphone +translation_of: Archive/B2G_OS/Phone_guide/Geeksphone +--- +<div class="summary"> +<p><span class="seoSummary">Developer Preview editions of the Firefox OS phone are now becoming widely available to the community, mainly through <a href="http://www.geeksphone.com/">Geeksphone</a>. Since these are for developers, naturally we want to encourage you to tinker and play with them as much as possible! In this article we cover some basic tips on how to keep your phone up to date and how to tweak the system Gaia applications.</span></p> +</div> + +<div class="note"> +<p><strong>Bitte beachten</strong>: Diese Anleitungen sind für die älteren Modelle Keon und Peak gedacht und nicht für das aktuellste Geeksphone Revolution.</p> +</div> + +<h2 id="Geeksphone_auf_das_letzte_Abbild_upgraden">Geeksphone auf das letzte Abbild upgraden</h2> + +<p>Firefox OS Updates können über die Settings App heruntergeladen werden. Die Funktionalität befindet sich unter Device Informationen. Das Smartphone kann so eingestellt werden, dass es auf neue Updates täglich, wöchentlich oder monatlich prüft. Zusätzlich besteht die Möglichkeit über den "check now" Button eine Aktualisierung durchzuführen. Sobald ein neues Update verfügbar ist wird dies angezeigt und der Download und die Installation der aktuellen Version kann beginnen.</p> + +<p><img alt="The screen for checking updates on the Firefox OS settings app" src="https://mdn.mozillademos.org/files/6051/checkupate.png" style="width: 318px; height: 478px; display: block; margin: 0px auto;"></p> + +<h2 id="Das_Telefon_flashen">Das Telefon flashen</h2> + +<p>Das Team von Geeksphone stellt die "latest stable" und die "nightly builds" als eigenständige Downloads zum selbstständigen flashen zur Verfügung.</p> + +<h3 id="Telefon_und_Computer_vorbereiten">Telefon und Computer vorbereiten</h3> + +<p><span style="line-height: 1.572;">Bevor man mit dem flashen des Smartphone beginnen sollte, sollte man die Anleitung im Abschnitt “Setting Up the Geeksphone Device” in </span><a href="https://hacks.mozilla.org/2013/05/pushing-firefox-os-apps-to-the-geeksphone/" style="line-height: 1.572;">Pushing Firefox OS Apps to the Geeksphone</a><span style="line-height: 1.572;"> beachten und die dort beschriebenen Voraussetzungen schaffen. Diese stellt sicher, dass man Daten an das Telefon übertragen kann. Ebenfalls sollte man, die im gleichen Abschnitt beschriebene Anleitung zur Installation der korrekten USB-Treiber beachten.</span></p> + +<div class="note"> +<p><strong>Bitte beachten:</strong> Es ist besonders wichtig, dass auf Windows Computer die korrekten Treiber installiert sind.</p> +</div> + +<p>Die aktuellen Build befinden sich auf der <a href="http://downloads.geeksphone.com/">Geeksphone Download-Seite</a>. Auf dieser Seite erhält man nun die Option das korrekte Gerät und den gewünschten Build auszuwählen.</p> + +<p><img alt="Two phone images side by side, the Geeksphone Keon and Peak, with different software download options below each one." src="https://mdn.mozillademos.org/files/6055/geeksphone-download.png" style="width: 530px; height: 486px; display: block; margin: 0px auto;"></p> + +<p>Lade nun den zu deinem Gerät passenden Build herunten und entpacke die Archive-Datei auf deine Festplatte. Das Archive beinhaltet das Abbild und die benötigten Befehle um das Gerät zu aktualisieren. Dabei stehen Befehle für Windows, Mac OS oder Linux zur Verfügung. Um das Gerät nun zu aktualisieren muss "Remote debugging" unter Einstellungen aktiviert sein.</p> + +<p><code><strong>Settings</strong> -> <strong>Device information</strong> -> <strong>More information</strong> -> <strong>Developer</strong></code><strong> tab</strong>.</p> + +<div class="note"> +<p><strong>Bitte beachten:</strong> Stelle sicher dass dein Handy eine Akkuladung von mit 50% aufweist. Um die System-Dateien zu verändern Bedarf es mehrere Restarts, welche im Falle von fehlender Akkuleistung zu einer Beschädigung führen kann.</p> +</div> + +<p><img alt="Enabling remote debugging on the Firefox OS Settings app" src="https://mdn.mozillademos.org/files/6049/remote-debugging.png" style="width: 320px; height: 480px; display: block; margin: 0px auto;"></p> + +<div class="note"> +<p><strong>Bitte beachten:</strong> Sollte dein Gerät, obwohl es angesteckt ist, von den mitgelieferten Skripten in den ersten Schritten nicht erkannt werden, musst ggf. das Handy entsperren und warten bis das USB-Zeichen im System-Tray auftaucht.</p> +</div> + +<div class="note"> +<p><strong>Bitte beachten:</strong> Das Flashen des Smartphone wird all deine Daten vom Telefon entfernen. Wenn du deine Daten zuvor sichern möchtest, solltest du die folgende Anleitung befolgen:<span style="line-height: 1.5;"> </span><a href="/en-US/Firefox_OS/Firefox_OS_build_prerequisites#Backup_the_phone_system_partition" style="line-height: 1.5;">Back up the phone system partition</a><span style="line-height: 1.5;">.</span></p> +</div> + +<h3 id="Windows">Windows</h3> + +<div class="note"> +<p><strong>Bitte Beachten:</strong> Es müssten möglicherweise USB-Treiber für Windows installiert werden. Eine Anleitung befindet sich in der folgenden Anleitung<span style="line-height: 1.572;"> “Setting Up the Geeksphone Device” in </span><a href="https://hacks.mozilla.org/2013/05/pushing-firefox-os-apps-to-the-geeksphone/" style="line-height: 1.572;">Pushing Firefox OS Apps to the Geeksphone</a><span style="line-height: 1.572;">.</span></p> +</div> + +<p>Öffne zuerst eine Konsole (Start > Tippe <code>cmd</code> in der Suchfeld > Enter drücken, Unter Windows 7, Windows Taste + X > Wähle Command Prompt unter Windows 8) und wechsel in das Verzeichnis wo sich die entpackten Daten befinden. Führe den folgenden Befehlt aus:</p> + +<pre class="brush: bash" lang="bash">flash.bat +</pre> + +<p>Dieser Befehl sollte nun das neue Abbild auf das Telefon flashen. Das Telefon muss nun nochmals erneut aufgesetzt werden, da ja wie zuvor beschrieben alle Daten gelöscht wurden.</p> + +<h3 id="Mac_OS">Mac OS</h3> + +<p>Öffnen eines Terminals(<code>Cmd + space -> type terminal -> enter</code>) Fensters und wechsle mit cd in das Verzeichnis wo sich die entpackten Daten befinden. Führe den folgenden Befehlt aus:</p> + +<pre class="brush: bash" lang="bash">./flash_mac.sh +</pre> + +<p>Dieser Befehl sollte nun das neue Abbild auf das Telefon flashen. Das Telefon muss nun nochmals erneut aufgesetzt werden, da ja wie zuvor beschrieben alle Daten gelöscht wurden.</p> + +<h3 id="Linux">Linux</h3> + +<p>Um ein Keon unter Ubuntu zu fläschen müssten die folgenden Regeln in /etc/udev/rules.d/51-android.rules hinzugefügt werden:</p> + +<div>SUBSYSTEM=="usb", ATTR{idVendor}=="05c6", ATTR{idProduct}=="8013", MODE="0666"</div> + +<div>SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d00d", MODE="0666"</div> + +<div> </div> + +<p>Öffne nun ein Terminal (control-alt-t unter Ubuntu) Fehnster und welche in das Verzeichnis wo sich die entapckten Daten befinden. Führe den folgenden Befehl aus:</p> + +<pre class="brush: bash" lang="bash">./flash.sh +</pre> + +<p>Dieser Befehl sollte nun das neue Abbild auf das Telefon flashen. Das Telefon muss nun nochmals erneut aufgesetzt werden, da ja wie zuvor beschrieben alle Daten gelöscht wurden.</p> + +<div class="note"> +<p><strong>Ein anderer Weg das Keon unter Ubuntu zu aktualisieren ist der folgende:-</strong></p> +</div> + +<p>Schritt 1: Das Gerät verbinden</p> + +<p>Schritt 2: Ein Terminal öffnen</p> + +<p>Schritt 3: Den Befehl <span class="st"><em>sudo nautilus </em>eintippen und das Root-Passwort eingeben um den Root-Ordner zu öffnen</span></p> + +<pre class="brush: bash" lang="bash"><span class="st"><em>sudo nautilus</em></span></pre> + +<pre class="brush: bash" lang="bash"><span class="st"><em>sudo nautilus "root password"</em></span></pre> + +<p>Schritt 4: Kopiere den Download des Firefox O.S Geeks Phone Builds in das Root-Verzeichnis</p> + +<p>Schritt 5: Klicke auf die Datei mit dem Namen "flash.sh"</p> + +<pre class="brush: bash" lang="bash">./flash.sh</pre> + +<p> </p> + +<h2 id="If_you_have_an_'unagi'_or_developer_preview_phone_that_is_not_a_Geeksphone">If you have an 'unagi' or developer preview phone that is not a Geeksphone</h2> + +<p>If you have a developer phone that is not a Geeksphone such as an 'unagi' or a previously Android-based device, you may need to perform the following steps. If this is not you, please skip to the next section.</p> + +<p>You will need to install <strong>adb</strong> and <strong>fastboot</strong>. These utilities can be found in the Android Developer Toolkit.</p> + +<p>It is not necessary to install the entire toolkit. Download the toolkit from here and extract the contents. adb and fastboot are found in the /platform-tools/ folder. They can be copied to the /usr/bin of your Linux or Mac OS machine, or copied to another folder as long as that folder is added to your $PATH.</p> + +<p>If you are attempting to flash your device and have another device plugged in via USB, your phone may not be detected by these utilities correctly. Only have your phone plugged in while trying to flash it.</p> + +<h2 id="Tweaking_Gaia">Tweaking Gaia</h2> + +<p>If you are the industrious sort, you may want to tweak the default applications in Gaia — the UI in Firefox OS. In this section we will cover some of the basics for cloning Gaia and making changes to the default system apps. Bear in mind these tips are “at your own risk” and may involve you later referring to the section “Ok, I bricked my phone”. Before proceeding make sure that you have adb and fastboot installed on your system. To verify if these are installed open a terminal and type adb devices with your phone connected. You should see your phone listed under the attached devices.</p> + +<p>You should also be able to run fastboot from the terminal. If you run fastboot, a set of parameter options should be displayed. If you do not have adb or fastboot installed, a quick Google search with your operating system will return several quick starts on how to install them. In addition to adb and fastboot you will need Git. If you do not currently have Git installed, have a look at this <a href="https://help.github.com/articles/set-up-git">setup guide</a>. Finally make sure your phone is set up for remote debugging as described in the previous section.</p> + +<p>Once you have the prerequisites you can open a terminal and cd to the directory you would like to clone the Gaia source code to. Type the following commands:</p> + +<pre class="brush: bash" lang="bash">git clone git://github.com/mozilla-b2g/gaia.git gaia +cd gaia +</pre> + +<p>This will clone the current Gaia code to your system.</p> + +<div class="warning"> +<p>If you plan on submitting changes back to the Gaia source, be sure to fork the source before cloning as described in <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Platform/Gaia/Hacking">Hacking Gaia</a>.</p> +</div> + +<p>Currently the Geeksphone Keon uses the v1.0.1 branch of Gaia code, so set the proper branch using the following command before you do anything else:</p> + +<pre class="brush: bash" lang="bash">git checkout -b v1.0.1 origin/v1.0.1 +</pre> + +<p>Most of the system apps are located in the apps subdirectory of gaia. You can now make any changes to these Firefox OS apps you wish. Once you have made changes, make sure your device is mounted properly by first running:</p> + +<pre class="brush: bash">adb remount</pre> + +<p>Next, run the following command to push the modified apps to your phone. This will by default push all the system apps to the phone:</p> + +<pre class="brush: bash" lang="bash">B2G_SYSTEM_APPS=1 make install-gaia +</pre> + +<p>If you only changed one of the apps you can specify the particular app using similar syntax. In this example only the calendar app will be pushed to the phone:</p> + +<pre class="brush: bash" lang="bash">APP=calendar B2G_SYSTEM_APPS=1 make install-gaia +</pre> + +<p>If you have issues while making the changes, you can reset the phone to default values using either of the following commands:</p> + +<pre class="brush: bash" lang="bash">make production +make reset-gaia +</pre> + +<div class="note"> +<p><strong>Note</strong>: Bear in mind that either of the above commands will clear any data or apps that you have pushed to the phone. If you want to back up your data and restore afterwards, you can follow the instructions at <a href="/en-US/Firefox_OS/Firefox_OS_build_prerequisites#Backup_the_phone_system_partition">Back up the phone system partition</a>.</p> +</div> + +<h2 id="Ok_I_bricked_my_phone">"Ok, I bricked my phone"</h2> + +<p>If you are in the process of modifying your phone and it becomes “unresponsive” you should be able to recover it using fastboot with a simple procedure. The following illustrates resetting the Keon but other phones should have a similar process. You will also need to verify that you have fastboot and ADB installed (try typing <code>fastboot</code> and <code>adb</code> in the command line if you are not sure).</p> + +<ol> + <li>Remove the USB cable and then remove the battery from the phone for 30 seconds.</li> + <li>Reinsert the battery and hold down the volume up and power buttons at the same time, for a few seconds, until the system recovery menu appears.</li> + <li>Reconnect the USB cable</li> + <li>Type in the command run adb reboot bootloader.</li> + <li>When the phone reboots and starts to show the Geeskphone logo, you are now in fastboot mode; run the following commands from a terminal window in the directory that contains the latest img files described in the first section of this post:</li> +</ol> + +<pre class="brush: bash" lang="bash">fastboot flash recovery recovery.img +fastboot flash boot boot.img +fastboot flash userdata userdata.img +fastboot flash system system.img +fastboot reboot +</pre> + +<p>This process should recover your phone. If it doesn't seem to work, you may have to try it a second time.</p> + +<h2 id="Go_play!">Go play!</h2> + +<p>We hope these instructions are useful to you, and naturally we want you to be as happy about Firefox OS and the possibilities as we are! Feel free to play around with updating your devices, make changes/updates to Gaia apps, and also be inspired to build you own open web apps.</p> + +<h2 id="See_also">See also</h2> + +<ul> + <li><a href="/en-US/Firefox_OS/Developer_phone_guide/Geeksphone/Geeksphone_FAQ">Geeksphone FAQ</a></li> + <li><a href="/en-US/Apps/Quickstart/Build/Intro_to_open_web_apps">Introduction to open web apps</a></li> +</ul> diff --git a/files/de/archive/b2g_os/phone_guide/index.html b/files/de/archive/b2g_os/phone_guide/index.html new file mode 100644 index 0000000000..472fcd195f --- /dev/null +++ b/files/de/archive/b2g_os/phone_guide/index.html @@ -0,0 +1,44 @@ +--- +title: Firefox OS developer phone guide +slug: Archive/B2G_OS/Phone_guide +tags: + - B2G + - Firefox OS + - NeedsTranslation + - Phones + - TopicStub +translation_of: Archive/B2G_OS/Phone_guide +--- +<div class="summary"> + <p>This section contains developer information relevant to specific phones that run Firefox OS. We have general information available on <a href="/en-US/docs/Mozilla/Firefox_OS/Building_and_installing_Firefox_OS" title="Building and installing Firefox OS">Building and installing Firefox OS</a> and <a href="/en-US/docs/Mozilla/Firefox_OS/Hacking_Firefox_OS" title="/en-US/docs/Mozilla/Firefox_OS/Hacking_Firefox_OS">Hacking Firefox OS</a>, so please go there for information about building and installing the platform from scratch. Developers with specific phones in their possession may however find the following articles useful.</p> +</div> +<h2 id="Specific_device_information">Specific device information</h2> +<dl> + <dt> + <a href="/en-US/docs/Mozilla/Firefox_OS/Phones">Firefox OS phone data</a></dt> + <dd> + In this article we list the various available Firefox OS phones along with information such as their code names, availability, and specific hardware features.</dd> + <dt> + <a href="/en-US/Firefox_OS/Developer_phone_guide/Geeksphone">Geeksphone</a></dt> + <dd> + In this article we cover some basic tips on how to keep your Geeksphone up-to-date and how to tweak the system Gaia applications.</dd> + <dt> + <a href="/en-US/docs/Mozilla/Firefox_OS/Developer_phone_guide/ZTE_OPEN">The Firefox OS ZTE OPEN</a></dt> + <dd> + This article exists to share the information we have available on the ZTE OPEN Firefox OS device.</dd> +</dl> +<h2 id="General_Firefox_OS_information">General Firefox OS information</h2> +<dl> + <dt> + <a href="/en-US/Firefox_OS/Developer_phone_guide/Firefox_OS_device_features">General device features</a></dt> + <dd> + This page lists typical Firefox OS hardware features and minimum hardware requirements.</dd> + <dt> + <a href="/en-US/docs/Mozilla/Firefox_OS/Troubleshooting">Troubleshooting</a></dt> + <dd> + This article provides tips for resolving common problems you may have while using Firefox OS.</dd> + <dt> + <a href="/en-US/Firefox_OS/Developer_phone_guide/Best_practices_open_reference_devices">Best practices for open reference devices</a></dt> + <dd> + A set of best practices that we believe should come highly recommended for any widely available open reference devices. All of the recent Firefox OS reference devices have followed these practices.</dd> +</dl> diff --git a/files/de/archive/b2g_os/phone_guide/phone_specs/index.html b/files/de/archive/b2g_os/phone_guide/phone_specs/index.html new file mode 100644 index 0000000000..8cf863e090 --- /dev/null +++ b/files/de/archive/b2g_os/phone_guide/phone_specs/index.html @@ -0,0 +1,800 @@ +--- +title: Firefox OS Geräte und Spezifikationen +slug: Archive/B2G_OS/Phone_guide/Phone_specs +tags: + - Firefox OS + - Gerät + - Handy + - Smartphone +translation_of: Archive/B2G_OS/Phone_guide/Phone_specs +--- +<div class="summary"> +<p><span class="seoSummary">Dieser Artikel enthält Informationen über Firefox OS Geräte und deren Spezifikationen, Code-Namen, standardmäßig installierten FIrefox OS Versionen und mehr.</span></p> +</div> + +<h2 id="Verfügbare_Firefox_OS_Smartphones">Verfügbare Firefox OS Smartphones</h2> + +<p>Die folgende Tabelle enthält Informationen zu den verfügbaren und ehemals verfügbaren Firefox OS Smartphones.</p> + +<div class="note"> +<p><strong>Hinweis</strong>: Nähere Informationen zu den verfügbaren Firefox OS Smartphones und die Länder, in denen sie verfügbar sind, findest Du auf <a href="http://www.mozilla.org/en-US/firefox/os/devices/">Firefox OS devices</a>.</p> +</div> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col"> + <p>Name / Code-Name</p> + </th> + <th scope="col"> + <p>Datum der Veröffentlichung</p> + </th> + <th scope="col">FxOS<br> + version</th> + <th scope="col">Verfügbarkeit</th> + <th scope="col">Weitere Informationen</th> + </tr> + </thead> + <tbody> + <tr> + <td> + <p><a href="https://developer.mozilla.org/en-US/Firefox_OS/Phone_guide/Alcatel_One_Touch_Fire">Alcatel One Touch Fire</a></p> + + <p><em>hamachi, buri</em></p> + </td> + <td>12. Juli 2013</td> + <td>1.0.1</td> + <td>Zur Zeit verfügbar</td> + <td>Verfügbar in Brasilien, Uruguay, Italien, Deutschland, Griechenland, Serbien, Ungarn und Polen.<br> + Erhältlich auf eBay.</td> + </tr> + <tr> + <td><a href="https://developer.mozilla.org/en-US/Firefox_OS/Phone_guide/Alcatel_One_Touch_Fire_E">Alcatel One Touch Fire E</a></td> + <td>18. Juli 2014</td> + <td>1.3.0</td> + <td>Zur Zeit verfügbar</td> + <td>Verfügbar in Tschechien, Deutschland, Ungarn, Polen, Russland.</td> + </tr> + <tr> + <td><em>otoro, unagi, inari</em></td> + <td> </td> + <td> </td> + <td> </td> + <td>nicht erhältliche ZTE Entwicklermodelle, Vorgänger des ZTE Open.</td> + </tr> + <tr> + <td> + <p><a href="/en-US/docs/Mozilla/Firefox_OS/Developer_phone_guide/ZTE_OPEN">ZTE Open</a></p> + + <p><em>ikura</em></p> + </td> + <td>2. Juli 2013</td> + <td>1.0.1</td> + <td>Zur Zeit verfügbar</td> + <td>Baugleich mit inari, erhältlich auf eBay.</td> + </tr> + <tr> + <td> + <p><a href="https://developer.mozilla.org/en-US/Firefox_OS/Phone_guide/LG_fireweb">LG Fireweb</a></p> + + <p><em>leo</em></p> + </td> + <td>24. Oktober 2013</td> + <td>1.1</td> + <td>Zur Zeit verfügbar</td> + <td>Verfügbar in Brasilien.</td> + </tr> + <tr> + <td> + <p><a href="/en-US/docs/Mozilla/Firefox_OS/Developer_phone_guide/Updating_and_Tweaking_Geeksphone">Geeksphone Keon</a></p> + + <p><em>keon</em></p> + </td> + <td>24. April 2013</td> + <td>1.0.1</td> + <td> + <p>Zur Zeit nicht verfügbar</p> + </td> + <td>Nur für Entwickler</td> + </tr> + <tr> + <td> + <p><a href="/en-US/docs/Mozilla/Firefox_OS/Developer_phone_guide/Updating_and_Tweaking_Geeksphone">Geeksphone Peak</a></p> + + <p><em>peak</em></p> + </td> + <td>24. April 2013</td> + <td>1.0.1</td> + <td>Zur Zeit nicht verfügbar</td> + <td>ehemaliger Code-Name "twist", nur für Entwickler</td> + </tr> + <tr> + <td><a href="/en-US/docs/Mozilla/Firefox_OS/Developer_phone_guide/Updating_and_Tweaking_Geeksphone">Geeksphone Peak+</a></td> + <td>-</td> + <td>-</td> + <td>-</td> + <td><a href="http://www.geeksphone.com/?wysija-page=1&controller=email&action=view&email_id=15">gestoppt</a></td> + </tr> + <tr> + <td>Geeksphone Revolution</td> + <td>4. März 2014</td> + <td>1.3pre</td> + <td>Zur Zeit verfügbar</td> + <td><a href="http://shop.geeksphone.com/moviles/9-revolution.html">Online erhältlich</a></td> + </tr> + <tr> + <td> + <p>LG Google Nexus 4</p> + + <p><em>nexus-4</em></p> + </td> + <td> </td> + <td> </td> + <td> </td> + <td>Test-Gerät. Weder von LG noch von Google unterstützt. Nicht mehr unterstützte Hardware.</td> + </tr> + <tr> + <td> + <p><a href="/en-US/Firefox_OS/Developer_phone_guide/Flame">Flame</a></p> + + <p><em>Mozillas Referenz-Gerät</em></p> + </td> + <td>April 2014</td> + <td>1.3</td> + <td> </td> + <td> + <p><a href="http://www.everbuying.com/product549652.html">Auf Vorbestellung erhältlich</a></p> + + <p>Ausverkauft seit Dezember 2014</p> + </td> + </tr> + <tr> + <td> + <p>Spreadtrum</p> + + <p><em>tarako</em></p> + </td> + <td>Ende Q2 2014?</td> + <td> </td> + <td>Demnächst verfügbar</td> + <td> </td> + </tr> + <tr> + <td><a href="https://developer.mozilla.org/en-US/Firefox_OS/Phone_guide/ZTE_OPEN_C">ZTE Open C</a></td> + <td>13. Mai 2014</td> + <td>1.3</td> + <td>Zur Zeit verfügbar</td> + <td><a href="http://www.ebay.co.uk/itm/eBay-exclusive-ZTE-OPEN-C-Latest-Firefox-OS-Dual-Core-3G-Unlocked-Smartphone-/171301269724?pt=UK_Mobile_Phones&hash=item27e259f0dc">Online erhältlich</a></td> + </tr> + <tr> + <td><a href="https://developer.mozilla.org/en-US/Firefox_OS/Phone_guide/Symphony_GoFox_F15">Symphony GoFox F15</a></td> + <td>16. September 2014</td> + <td>1.4</td> + <td>Zur Zeit verfügbar</td> + <td>Nur in Bangladesch erhältlich bei Grameenphone Vertriebspartnern</td> + </tr> + <tr> + <td><a href="https://developer.mozilla.org/en-US/Firefox_OS/Phone_guide/Intex_Cloud_FX">Intex Cloud Fx</a></td> + <td> </td> + <td>1.3 </td> + <td>Nicht mehr verfügbar</td> + <td> </td> + </tr> + <tr> + <td><a href="https://developer.mozilla.org/en-US/Firefox_OS/Phone_guide/Spice_Fire_One_MI_FX1">Spice Fire One (Mi-FX1)</a></td> + <td> </td> + <td>1.3 </td> + <td>Nicht mehr verfügbar</td> + <td> </td> + </tr> + <tr> + <td><a href="https://developer.mozilla.org/en-US/Firefox_OS/Phone_guide/Alcatel_Onetouch_Fire_C_4020D">Alcatel OneTouch Fire C 4020D</a></td> + <td>1. Oktober 2014</td> + <td>1.3 </td> + <td>Nicht mehr verfügbar</td> + <td> </td> + </tr> + <tr> + <td><a href="https://developer.mozilla.org/en-US/Firefox_OS/Phone_guide/Zen_U105_Fire">Zen U105 Fire</a></td> + <td>16. Oktober 2014</td> + <td>1.3 </td> + <td>Zur Zeit verfügbar</td> + <td>Erhältlich auf <a href="http://www.homeshop18.com/zen-fire-fox-phone-u105/mobiles/mobile-phones/product:32873765/cid:3027/">Homeshop18</a>, Indien</td> + </tr> + <tr> + <td><a href="https://developer.mozilla.org/en-US/Firefox_OS/Phone_guide/Cherry_Mobile_Ace">Cherry Mobile Ace</a></td> + <td>November 2014</td> + <td>1.3T</td> + <td>Zur Zeit verfügbar</td> + <td>Erhältlich auf den Philippinen.</td> + </tr> + <tr> + <td><a href="https://developer.mozilla.org/en-US/Firefox_OS/Phone_guide/Fx0">Fx0</a></td> + <td>Dezember 2014</td> + <td>2.0</td> + <td>Zur Zeit verfügbar</td> + <td>Erhältlich in Japan (KDDI.)</td> + </tr> + <tr> + <td><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Phone_guide/Orange_Klif">Orange Klif</a></td> + <td>2015</td> + <td>2.0</td> + <td>Zur Zeit verfügbar</td> + <td>Erhältlich in vielen afrikanischen Ländern.</td> + </tr> + <tr> + <td>ZTE Open C2</td> + <td>2015</td> + <td>2.1</td> + <td>Zur Zeit verfügbar</td> + <td>Online erhältlich</td> + </tr> + </tbody> +</table> + +<h2 id="Firefox_OS_Versionen">Firefox OS Versionen</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Version</th> + <th scope="col"> + <p>Feature Complete (FC) Datum</p> + </th> + <th scope="col">Release To Partner<br> + (RTP) Datum</th> + <th scope="col">Codename</th> + <th scope="col">Gecko Version</th> + <th scope="col">Enthaltene Security Fixes</th> + <th scope="col">Release Infos</th> + </tr> + </thead> + <tbody> + <tr> + <td>1.0</td> + <td>22. Dezember 2012</td> + <td>21. Februar 2013</td> + <td>TEF</td> + <td>Gecko 18</td> + <td>Gecko 18</td> + <td> </td> + </tr> + <tr> + <td>1.0.1</td> + <td>15. Januar 2013</td> + <td>6. September 2013</td> + <td>Shira</td> + <td>Gecko 18</td> + <td>Gecko 20</td> + <td><a href="https://developer.mozilla.org/en-US/Firefox_OS/Releases/1.0.1">Entwickler</a><br> + <a href="https://support.mozilla.org/en-US/kb/whats-new-firefox-os-v11">Anwender</a></td> + </tr> + <tr> + <td>1.1</td> + <td>29. März 2013</td> + <td>9. Oktober 2013</td> + <td>Leo</td> + <td>Gecko 18+ (new <a href="http://en.wikipedia.org/wiki/Application_programming_interface" title="Application programming interface">APIs</a>)</td> + <td>Gecko 23</td> + <td><a href="https://developer.mozilla.org/en-US/Firefox_OS/Releases/1.1">Entwickler</a><br> + <a href="http://www.mozilla.org/en-US/firefox/os/notes/1.1/">Anwender</a></td> + </tr> + <tr> + <td>1.1.1</td> + <td> </td> + <td>TBD</td> + <td>HD</td> + <td>Wie 1.1.0 mit WVGA</td> + <td>Gecko 23</td> + <td> </td> + </tr> + <tr> + <td>1.2</td> + <td>15. September 2013</td> + <td>9. Dezember 2013</td> + <td>Koi</td> + <td>Gecko 26<sup><a href="http://en.wikipedia.org/wiki/Firefox_OS#cite_note-39"><span>[</span>39<span>]</span></a></sup></td> + <td>Gecko 26</td> + <td><a href="/en-US/Firefox_OS/Releases/1.2">Entwickler</a><br> + <a href="http://www.mozilla.org/en-US/firefox/os/notes/1.2/">Anwender</a></td> + </tr> + <tr> + <td>1.3</td> + <td>9. December 2013</td> + <td>TBD</td> + <td> </td> + <td>Gecko 28</td> + <td>Gecko 28</td> + <td><a href="/en-US/Firefox_OS/Releases/1.3">Entwickler</a><br> + <a href="http://www.mozilla.org/en-US/firefox/os/notes/1.3/">Anwender</a></td> + </tr> + <tr> + <td>1.4</td> + <td>17. März 2014</td> + <td>TBD</td> + <td> </td> + <td>Gecko 30</td> + <td>Gecko 30</td> + <td><a href="/en-US/Firefox_OS/Releases/1.4">Entwickler</a><br> + Anwender (TBD)</td> + </tr> + <tr> + <td>2.0</td> + <td>TBD</td> + <td>TBD</td> + <td> </td> + <td>Gecko 32</td> + <td>Gecko 32</td> + <td><a href="/en-US/Firefox_OS/Releases/2.0">Entwickler</a><br> + Anwender (TBD)</td> + </tr> + <tr> + <td>2.1</td> + <td>Januar 2015?</td> + <td>TBD</td> + <td> </td> + <td>Gecko 34</td> + <td>Gecko 34</td> + <td><a href="https://developer.mozilla.org/en-US/Firefox_OS/Releases/2.1">Entwickler</a></td> + </tr> + <tr> + <td>2.2</td> + <td>Juni 2015</td> + <td>TBD</td> + <td> </td> + <td>Gecko 37</td> + <td>Gecko 37</td> + <td><a href="https://developer.mozilla.org/en-US/Firefox_OS/Releases/2.2">Entwickler</a></td> + </tr> + <tr> + <td>2.5</td> + <td>November 2015</td> + <td>TBD</td> + <td> </td> + <td>TBD</td> + <td>TBD</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Geräte-Spezifikationen">Geräte-Spezifikationen</h2> + +<p>Bitte beachte, dass wir in einigen Fällen bereits vor öffentlicher Verfügbarkeit eines angekündigten Gerätes dessen Code-Namen und einige seiner Eigenschaften hier veröffentlichen. Bitte FÜGE KEINE zusätzlichen Informationen zu diesen Geräten hinzu bevor Andreas Gal oder jemand vergleichbares diese Informationen veröffentlicht hat. Im Zweifelsfall wende Dich bitte an den Firefox OS Program Manager.</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Name</th> + <th scope="col">Versionen</th> + <th scope="col">Auflösung</th> + <th scope="col">Display (Inches)</th> + <th scope="col">CPU</th> + <th scope="col">Kamera(s), Mpx</th> + <th scope="col">RAM</th> + <th scope="col">ROM</th> + <th scope="col">Speicher</th> + <th scope="col">Batterie (mAh)</th> + </tr> + </thead> + <tbody> + <tr> + <td> + <p>Alcatel One Touch Fire</p> + + <p><em>hamachi, buri</em></p> + </td> + <td>v1.0.1/v1.1</td> + <td> + <p>320 x 480<br> + PX=1</p> + </td> + <td>3.5</td> + <td>Qualcomm Snapdragon S1 MSM7227A 1 GHz</td> + <td>Rückseite: 3.2</td> + <td>256MB</td> + <td>512MB</td> + <td>/data: wahrscheinlich identisch mit inari; <a href="http://www.alcatelonetouch.com/global-en/products/smartphones/one_touch_fire.html#.Unyg5UOVt1M">laut Hersteller</a> 160MB Speicher für Anwendungen;<br> + Wahrscheinlich kein interner DeviceStorage, MicroSD Karte (max. 32GB) benötigt<br> + </td> + <td>1400</td> + </tr> + <tr> + <td><a href="https://developer.mozilla.org/en-US/Firefox_OS/Phone_guide/Alcatel_One_Touch_Fire_E">Alcatel One Touch Fire E</a></td> + <td>v1.3.0</td> + <td>540 x 960</td> + <td>4.5</td> + <td>Qualcomm Snapdragon 200<br> + MSM8210<br> + 1.2 GHz<br> + dual-core</td> + <td>Rückseite: 5.0</td> + <td>512MB</td> + <td> </td> + <td> </td> + <td> </td> + </tr> + <tr> + <td> + <p>ZTE Open / variants</p> + + <p><em>ikura</em></p> + </td> + <td>v1.0.1 (as shipped)</td> + <td>320 x 480<br> + PX=1</td> + <td>3.5</td> + <td>Qualcomm Snapdragon S1 MSM7225A 800 MHz</td> + <td>Rückseite: 3.2</td> + <td>256MB</td> + <td>512MB</td> + <td> + <p>/data: 152M<br> + Kein interner DeviceStorage, MicroSD Karte benötigt</p> + </td> + <td>1200</td> + </tr> + <tr> + <td> + <p>LG Fireweb</p> + + <p><em>leo</em></p> + </td> + <td>v1.1</td> + <td>320 x 480<br> + PX=1</td> + <td>4</td> + <td>Qualcomm Snapdragon S1 MSM7227A 1 GHz</td> + <td>Rückseite: 5.0</td> + <td>512MB</td> + <td>4GB</td> + <td> + <p>/data: 1007.90M<br> + interner DeviceStorage: ja, Größe ungewiss, möglicherweise 3.7G, könnte aber auch eine falsche Berechnung sein. Der Wert von /sys/devices/platform/msm_sdcc.3/mmc_host/mmc0/mmc0:0001/block/mmcblk0/block ist 7733248, bei einer angenommenen Blockgröße von 512 byte kommen wir auf 3.7G.</p> + </td> + <td>1540</td> + </tr> + <tr> + <td> + <p><a href="/en-US/docs/Mozilla/Firefox_OS/Developer_phone_guide/Updating_and_Tweaking_Geeksphone">Geeksphone Keon</a></p> + + <p><em>keon</em></p> + </td> + <td> + <p>v1.0.1 - nightly<br> + <a href="/en-US/docs/">downloads here</a></p> + </td> + <td>320 x 480<br> + PX=1</td> + <td>3.5</td> + <td>Qualcomm Snapdragon S1 7225AB 1 GHz</td> + <td>Rückseite: 3.0</td> + <td>512MB</td> + <td>4GB</td> + <td> + <p>/data: 1.5G<br> + interner DeviceStorage: 1023.4M</p> + </td> + <td>1580</td> + </tr> + <tr> + <td> + <p><a href="/en-US/docs/Mozilla/Firefox_OS/Developer_phone_guide/Updating_and_Tweaking_Geeksphone">Geeksphone Peak</a></p> + + <p><em>peak</em></p> + </td> + <td>v1.0.1 - nightly<br> + <a href="/en-US/docs/">downloads here</a></td> + <td>540 x 960<br> + PX=1.5</td> + <td>4.3</td> + <td>Qualcomm Snapdragon S4 8225 1.2 GHz dual-core</td> + <td> + <p>Frontseite: 2.0<br> + Rückseite: 8.0</p> + </td> + <td>512MB</td> + <td>4GB</td> + <td>/data: 1.5G<br> + interner DeviceStorage: 1023.4M</td> + <td>1800</td> + </tr> + <tr> + <td>Geeksphone Revolution</td> + <td>v1.3pre (as shipped)</td> + <td>540 x 960 PX=1.5</td> + <td>4.7</td> + <td><span class="mini-text">Dual-core Intel® Atom™ processor Z2560<span class="mini-text"> with up to 1.6GHz</span></span></td> + <td> + <p>Frontseite: 1.3 Rückseite: 8.0</p> + </td> + <td>1GB</td> + <td>4GB</td> + <td> + <p>/data: 2G<br> + interner DeviceStorage: 2.5GB</p> + </td> + <td>2000</td> + </tr> + <tr> + <td> + <p>Nexus 4</p> + + <p><em>nexus-4</em></p> + </td> + <td>v1.3 - nightly</td> + <td>768 x 1280<br> + 720p</td> + <td>4.7</td> + <td> + <p>Qualcomm<br> + <span class="mw-redirect">Snapdragon S4 Pro</span><br> + 1.5 GHz quad-core</p> + </td> + <td>Rückseite: 8.0</td> + <td>2GB</td> + <td>8 or 16GB</td> + <td>Hier wird alles in einem ziemlich undurchsichtigen Bereich gespeichert, es gibt keinen externen Speicher (MicroSD). Die Größe des Bereichs variiert je nach dem, welches Nexus 4 Modell Du hast.</td> + <td>2100</td> + </tr> + <tr> + <td> + <p><a href="https://wiki.mozilla.org/FirefoxOS/TCP">Foxconn InFocus</a></p> + + <p><em>flatfish</em></p> + </td> + <td> </td> + <td>1280 x 800</td> + <td>10</td> + <td>Allwinner A31, Cortex A7 Quad-Core 1.0 GHz</td> + <td> + <p>Frontseite: 2.0<br> + Rückseite: 5.0</p> + </td> + <td>2GB</td> + <td>16GB</td> + <td> </td> + <td>7000</td> + </tr> + <tr> + <td> + <p><a href="https://wiki.mozilla.org/Platform/2013-11-05">some phone thing</a></p> + + <p><em>fugu</em></p> + </td> + <td>v1.2f (branch) <a href="https://groups.google.com/d/msg/mozilla.dev.b2g/JKAu9UNjBf8/9zj5Y3m6518J">per</a></td> + <td>320 x 480</td> + <td> </td> + <td> </td> + <td> </td> + <td>256MB</td> + <td> </td> + <td> </td> + <td> </td> + </tr> + <tr> + <td> + <p><a href="https://wiki.mozilla.org/FirefoxOS/Tarako">Spreadtrum SC6821</a></p> + + <p><em>tarako</em></p> + </td> + <td>v1.3 <a href="https://wiki.mozilla.org/FirefoxOS/Tarako">per</a></td> + <td>HVGA<br> + 320 x 480</td> + <td>3.5</td> + <td>Spreadtrum SC6821, Cortex A5 1GHz</td> + <td>0.3 (nur Rückseite?)</td> + <td>128MB (zram)</td> + <td>2GB NAND flash (external) + 1GB LPDDR1 (embedded)</td> + <td>32GB micro SD card</td> + <td>1100</td> + </tr> + <tr> + <td> + <p><a href="https://hacks.mozilla.org/2014/02/open-applications-tcp/">VIA Vixen</a></p> + + <p><em><a href="https://wiki.mozilla.org/Platform/2014-03-18">community-driven customization of flatfish</a>?</em></p> + </td> + <td> </td> + <td>1024 x 600</td> + <td>7</td> + <td>Cortex-A9 Dual Core 1.2 GHz</td> + <td> + <p>Frontseite: 0.3 Rückseite: 2.0</p> + </td> + <td>1GB</td> + <td>8GB</td> + <td> </td> + <td> </td> + </tr> + <tr> + <td> + <p><a href="https://blog.mozilla.org/press/2014/02/developer-momentum-2/">Flame</a></p> + + <p><em>Mozillas Referenz-Gerät</em></p> + </td> + <td>v1.3</td> + <td> + <p>FWVGA<br> + 854 × 480<br> + PX=1.5<br> + </p> + </td> + <td>4.5 capacitive touch</td> + <td> + <p>Qualcomm Snapdragon 200 MSM8210, 1.2GHZ Dual core processor</p> + </td> + <td> + <p>Frontseite: 2.0<br> + Rückseite: 5.0 Auto-Fokus und Blitz<br> + </p> + </td> + <td>256MB–1GB (adjustable by developer)</td> + <td>8GB</td> + <td>32GB micro SD card (USB 2.0)</td> + <td>1800</td> + </tr> + <tr> + <td><a href="https://developer.mozilla.org/en-US/Firefox_OS/Phone_guide/ZTE_OPEN_C">ZTE Open C</a></td> + <td>v1.3</td> + <td>800 x 480</td> + <td>4</td> + <td>Qualcomm Snapdragon 200 MSM8210, 1.2GHZ Dual core processor</td> + <td>Rückseite: 3.0</td> + <td>512MB</td> + <td>4GB</td> + <td> + <p>/data: 1G</p> + </td> + <td>1400</td> + </tr> + <tr> + <td><a href="https://developer.mozilla.org/en-US/Firefox_OS/Phone_guide/Symphony_GoFox_F15">Symphony GoFox F15</a></td> + <td>v1.4</td> + <td>320 x 480<br> + PX=?</td> + <td>3.5</td> + <td>Spreadtrum 1 GHz Single Core Processor</td> + <td>Frontseite: 0.3<br> + Rückseite: 3.2 mit Blitz</td> + <td>512MB</td> + <td>512MB</td> + <td> </td> + <td>1450</td> + </tr> + <tr> + <td><a href="https://developer.mozilla.org/en-US/Firefox_OS/Phone_guide/Intex_Cloud_FX">Intex Cloud Fx</a></td> + <td>V 1.3</td> + <td>320 x 480</td> + <td>3.5</td> + <td>Spreadtrum 1 GHz</td> + <td>Rückseite: 2.0 ohne Blitz</td> + <td>128 MB</td> + <td>256MB</td> + <td> + <p>Data : 2G</p> + + <p>Interner Speicher: 46 MB (User Memory)</p> + + <p>Externer Speicher (Micro SD Card): max. 4GB</p> + </td> + <td>1250</td> + </tr> + <tr> + <td><a href="https://developer.mozilla.org/en-US/Firefox_OS/Phone_guide/Spice_Fire_One_MI_FX1">Spice Fire One (Mi-FX1)</a></td> + <td>V 1.3</td> + <td>320 x 480</td> + <td>3.5</td> + <td>Spreadtrum 1 GHz</td> + <td> + <p>Frontseite: VGA</p> + + <p>Rückseite: 1.3</p> + </td> + <td>128 MB</td> + <td>512MB</td> + <td> + <p>Data : 2G</p> + + <p>Interner Speicher: 67.9 MB (User Memory)</p> + + <p>Externer Speicher (Micro SD Card): max. 4GB</p> + </td> + <td>1400</td> + </tr> + <tr> + <td><a href="https://developer.mozilla.org/en-US/Firefox_OS/Phone_guide/Alcatel_Onetouch_Fire_C_4020D">Alcatel OneTouch Fire C 4020D</a></td> + <td>V 1.3</td> + <td>320 x 480</td> + <td>3.5</td> + <td>Spreadtrum 1 GHz</td> + <td> </td> + <td>128 MB</td> + <td>256MB</td> + <td> + <p>Data : 2G</p> + + <p>Interner Speicher : 65 MB (User Memory)</p> + + <p>Externer Speicher (Micro SD Card): max. 32GB</p> + </td> + <td>1000</td> + </tr> + <tr> + <td><a href="https://developer.mozilla.org/en-US/Firefox_OS/Phone_guide/Zen_U105_Fire">Zen U105 Fire</a></td> + <td>V 1.3</td> + <td>320 x 480</td> + <td>3.5</td> + <td>Spreadtrum 1 GHz</td> + <td> + <p>Frontseite: VGA</p> + Rückseite: 2.0</td> + <td>128 MB</td> + <td>256MB</td> + <td> + <p>Data : 2G</p> + + <p>Externer Speicher (Micro SD Card): max. 16GB</p> + </td> + <td>1200</td> + </tr> + <tr> + <td><a href="https://developer.mozilla.org/en-US/Firefox_OS/Phone_guide/Fx0">Fx0</a></td> + <td>V 2.0</td> + <td>1280 x 720</td> + <td>4.7</td> + <td>Qualcomm Snapdragon S4 MSM8926 1.2GHz quad-core</td> + <td> + <p>Frontseite: 8.0</p> + + <p>Rückseite: 2.1</p> + </td> + <td>1.5 GB</td> + <td>16GB</td> + <td>microSDXC Karte: max. 64GB</td> + <td>2370</td> + </tr> + <tr> + <td>Orange Klif</td> + <td>V 2.0</td> + <td>480 x 320</td> + <td>3.5</td> + <td>MediaTek dual-core 1Ghz MT6572M</td> + <td>Rückseite: 2.0</td> + <td>256MB</td> + <td>512MB</td> + <td>TBC</td> + <td>1300</td> + </tr> + <tr> + <td>ZTE Open C 2</td> + <td>V 2.1</td> + <td>WVGA</td> + <td>4.0</td> + <td>Spreadturn SC7715 1GB</td> + <td>Rückseite: 2.0</td> + <td>512MB</td> + <td>4GB</td> + <td>Externer Speicher (Micro SD Card): max. 32GB</td> + <td>1400</td> + </tr> + </tbody> +</table> + +<p>Anmerkungen zu den Spalten:</p> + +<ul> + <li>Auflösung: + <ul> + <li>horizontal x vertikal</li> + <li>PX=1, PX=1.5, oder PX=2 ist die GAIA_DEV_PIXELS_PER_PX Einstellung, die für dieses Gerät verwendet werden sollte</li> + </ul> + </li> + <li>Speicher: + <ul> + <li>"/data" ist der interne Speicher. Hier wird u.a. die IndexedDB gespeichert. Jede App bekommt hier einen separaten Bereich zugewiesen. Auf diesen Speicher kann nicht über USB zugegriffen werden. Ein Zugriff über adb ist bei entsprechenden Berechtigungen möglich.</li> + <li>Im DeviceStorage werden die Daten des <a href="https://developer.mozilla.org/en-US/docs/WebAPI/Device_Storage">DeviceStorage API</a> gespeichert. Manche Geräte haben einen internen Speicher (ex: leo), andere wiederum haben einen externen Speicher auf einer MicroSD Karte und einige Geräte unterstützen sowohl internen als auch externen Speicher (ex: leo). Der Zugriff auf diesen Speicher ist bei entsprechenden Berechtigungen sowohl für die Apps als auch über USB möglich.</li> + <li>Einige Werte in der Spalte "Speicher" wurden mit "adb shell df" ermittelt und sind deshalb nicht unbedingt schön und rund.</li> + </ul> + </li> +</ul> diff --git a/files/de/archive/b2g_os/phone_guide/zte_open_c/index.html b/files/de/archive/b2g_os/phone_guide/zte_open_c/index.html new file mode 100644 index 0000000000..7b74fddbf2 --- /dev/null +++ b/files/de/archive/b2g_os/phone_guide/zte_open_c/index.html @@ -0,0 +1,82 @@ +--- +title: ZTE OPEN C +slug: Archive/B2G_OS/Phone_guide/ZTE_OPEN_C +tags: + - Update + - Upgrade + - ZTE Open C + - reagiert nicht mehr +translation_of: Archive/B2G_OS/Phone_guide/ZTE_OPEN_C +--- +<div class="summary"> + <p><span class="seoSummary">Das ZTE Open C Firefox OS Handy ist ein fortgeschrittenes Firefox OS Gerät von ZTE das über bessere Hardware verfügt, die unter anderem eine 3MP Kamera und einen 4-inch WVGA Display umfasst und bei dem Firefox OS 1.3 vorinstalliert ist. Dieser Artikel enthält Informationen über das Gerät, darunter Anleitungen zum Updaten und zur Fehlerbeseitigung.</span></p> +</div> +<div class="note"> + <p><strong>Bitte Beachten: </strong>Diese Anleitungen sind<strong> nicht </strong>für das ZTE Open. Wenn Sie ein ZTE Open haben, sollten Sie stattdessen zu unterer <a href="/en-US/Firefox_OS/Developer_phone_guide/ZTE_OPEN">ZTE Open</a> Seite gehen.</p> +</div> +<div class="note"> + <p><strong>Bitte beachten</strong>: Das Upgrade-Programm welches Sie benötigen, um das Handy zu entsprechen (s.u.) ist derzeit nur für Windows erhältlich. Kaufen Sie das Handy nicht, wenn Sie nicht über ein Windows-System verfügen und trotzdem selbst Ihre eigenen Versionen von Firefox OS installieren wollen.</p> +</div> +<p>Das ZTE Open C ist das erste Handy mit dem jüngsten<a href="http://blog.mozilla.org/futurereleases/2014/05/08/firefox-os-update-adds-new-features-including-dual-sim-support-and-enhancements-for-music-lovers-and-gamers"> update für Firefox OS</a>. Es bietet viele neue Funktionen, darunter den Direktzugriff auf den Musikplayer vom Sperrbildschirm oder dem Benachrichtigungsfeld aus und Bluetooth sharing, mit dem dem Sie mehrere Dateien gleichzeitig übertragen können. Nutzer können jetzt schneller durch die Menüs navigieren mithilfe von intelligenten Ordnern, die automatisch Apps oder die Suche nach Apps nach Kategorien ordnen mit verbesserter Geschwindigkeit beim Scrollen und einem schnelleren Start von Systen-Apps wie Kalender, Addressbuch und Kamera.</p> +<h2 id="Der_Kauf_eines_Geräts">Der Kauf eines Geräts</h2> +<p>Das Gerät kostet US$99.99, es ist bei eBay erhältlich:</p> +<ul> + <li><a href="http://item.ebay.com/291125433026">ZTE eBay US store</a></li> + <li><a href="http://item.ebay.co.uk/171301269724">ZTE eBay UK store</a> (Kunden aus Frankreich und einiger angrenzender Länder sollten diesen Store benutzen)</li> + <li><a href="http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&item=131151681046&ssPageName=STRK:MESE:IT">ZTE eBay DE store</a></li> + <li><a href="http://www.ebay.com/itm/111326263156">ZTE eBay RU and EU stores</a></li> +</ul> +<div class="note"> + <p><strong>Bitte beachten</strong>: Sie erhalten das Gerät ohne dass irgendwelche Netzwerk-spezifischen Apps oder Dienste installert wären. Es handelt sich um eine entsperrte, global erhältliche Variante, die für early Adopters gedacht ist.</p> +</div> +<h2 id="Einzelheiten_zum_Handy">Einzelheiten zum Handy</h2> +<p>Siehe <a href="/en-US/Firefox_OS/Developer_phone_guide/Phone_specs">Phone and device specs</a>.</p> +<h2 id="Wie_Sie_Firefox_OS_upgraden">Wie Sie Firefox OS upgraden</h2> +<p>Der einfachste Weg, um die Software Ihres Open C upzugraden ist es, die Dateien von der ZTE-Webseite zu verwenden. Um die richtige Datei zu finden, gehen Sie zu <a href="http://www.ztedevices.com/support/selectproduct.html?type=software">ZTE's Software support page</a>, wählen Sie Ihre Region aus der Liste auf der linken Seite, wählen Sie <em>Smart Phones</em> in der mittleren Liste und Open C(European Standard) bzw. Open C(American Standard), je nachdem, wo Sie das Gerät gekauft haben. Klicken Sie dann auf <em>Selected</em> um zu Ihrer Download-Seite zu gelangen.</p> +<p>Sobald Ihr Download beendet ist, finden Sie ein PDF in der ZIP-Datei, das Ihnen erklärt, wie das Upgrade zu installieren ist.</p> +<h2 id="Manuelle_Updates">"Manuelle" Updates</h2> +<p>Wenn Sie selbst Gecko oder Gaia updaten wollen, ist der Vorgang etwas verzwickter, weil das Handy standardmäßig gesperrt ist und Sie keinen Root-Zugang haben. Um das Gerät zu entsperren, können Sie folgendes Programm von comebuy.com benutzen:<a href="http://en.comebuy.com/developer-firefox-os-open-c.html">Open_C_upgrade_Tool</a>. Durch die Installation dieses Programms wird die Fimware Ihres Geräts so verändert, dass der Root-Zugang Fastboot aktiviert werden und Sie die Möglichkeit haben, Ihr Telefon mit neuen Softwarekomponenten zu flashen.</p> +<div class="note"> + <p><strong>Bitte beachten</strong>: Dieses Upgrade-Programm ist derzeit nur für Windows verfügbar.</p> +</div> +<h3 id="Gecko_und_Gaia_upgraden">Gecko und Gaia upgraden</h3> +<p>Sobald Sie Fastboot aktiviert haben, können Sie neue Firefox OS/B2G Gecko und Gaia Komponenten erstellen und installieren: <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Building_and_installing_Firefox_OS">build and install new Firefox OS/B2G</a>.</p> +<ol> + <li>Beginnen Sie mit folgender Anleitung: <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_build_prerequisites">build prerequisite</a>, wobei Sie das Open C zum Zwecke der Konfiguration wie ein Flame behandeln: Beide, Flame und Open C basieren auf dem Android Jellybean Basissystem.</li> + <li>Während der Konfiguration müssen Sie ein sog. "Custom Manifest File" für das Open C referenzieren. Laden Sie den Anhang zur Fehlermeldung auf folgender Seite herunter: <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1016867">Download the attachment on this bug</a> und speichern Sie ihn an einem Ort auf ihrem Computer, den Sie leicht wiederfinden unter dem Dateinamen openc.xml.</li> + <li>Räumen Sie das B2G Verzeichnis auf und löschen Sie nicht benötigte Unterverzeichnisse:<br> + <pre class="brush: bash" id="comment_text_2">rm -rf objdir-gecko/ out/ backup-flame/</pre> + </li> + <li>Konfigurieren Sie jetzt Firefox OS mit dem nachfolgenden Befehl:<br> + <pre class="brush: bash language-html">./config.sh flame /PATH/TO/openc.xml</pre> + </li> + <li>Sie können jetzt die Gecko Komponenten mit den nachfolgenden Befehlen bauen und auf Ihr Gerät flashen: + <pre class="brush: bash language-html">./build.sh gecko +./flash.sh gecko</pre> + </li> + <li>Jetzt sollten Sie auch Gaia upgraden, damit die upgegradete Version von Gecko mit der Gaia-Version auf Ihrem Gerät zusammenarbeietet: + <pre class="brush: bash language-html">cd gaia +make reset-gaia</pre> + </li> +</ol> +<div class="warning"> + <p><strong>Achtung</strong>: Der Versuch, ein Image für das Flame auf Ihr Gerät zu flashen würde dieses unbrauchbar machen, weswegen hiervon abgeraten wird.</p> +</div> +<h3 id="Gaia_upgraden">Gaia upgraden</h3> +<p>Wenn Sie nur ein Update von Gaia und nicht auch von Gecko durchführen wollen, müssen Sie zunächst das Gaia Repo auf Github forken und klonen und das Ergebnis auf Ihr Gerät flashen.</p> +<ol dir="ltr"> + <li>Stellen Sie sicher dass <a href="https://developer.mozilla.org/en-US/Firefox_OS/Debugging/Installing_ADB">ADB</a> installiert ist.</li> + <li>Gehen Sie zu <a href="https://github.com/mozilla-b2g/gaia">https://github.com/mozilla-b2g/gaia</a>, klicken Sie dann auf den "fork" button in der oben rechten Ecke um in Ihr eigenes Repo zu forken.</li> + <li>Klonen Sie den Code von ihrem geforkten Repo auf Ihren eigenen Rechner, indem Sie folgenden Befehl ausführen: + <pre class="brush: bash language-html">git clone https://github.com/your-github-username/gaia.git</pre> + </li> + <li><code>Wechseln Sie in das hierdurch erstellte Verzeichnis.</code></li> + <li>Schalten Sie auf ihrem Gerät <a href="https://developer.mozilla.org/en-US/Firefox_OS/Debugging/Developer_settings#Debugging_via_USB">remote debugging</a> ein (wählen Sie die ADB und Devtools option).</li> + <li>Verbinden Sie jetzt Ihr Handy per USB mit Ihrem Computer, stellen Sie sicher, dass das Gerät erkannt wird, indem Sie den Befehl <code>adb devices</code> im terminal eingeben.</li> + <li>Führen Sie folgenden Befehl aus, um Ihr Handy neu zu starten und es mit dem neuesten Gaia Sourcecode upzudaten + <pre class="brush: bash language-html">make reset-gaia</pre> + </li> +</ol> +<h2 id="Mein_Handy_reagiert_nicht_mehr">Mein Handy reagiert nicht mehr</h2> +<p>Wenn Ihr Gerät nicht mehr reagiert, ist es unter Umständen möglich, es mit der unter <a href="http://www.ztedevices.com/support/smart_phone/65229ec9-3165-424e-a7dd-3759356325fd.html">ZTE Open C user manual</a> auf der Webseite von ZTE verfügbaren Anleitung und der Anleitung auf dieser Seite wieder zum Leben zu erwecken.</p> +<p>Weitere Informationen sind unter Umständen hier: <a href="https://support.mozilla.org/en-US/questions/1003136">reference this support entry</a> verfügbar.</p> diff --git a/files/de/archive/b2g_os/platform/app_architektur/index.html b/files/de/archive/b2g_os/platform/app_architektur/index.html new file mode 100644 index 0000000000..315efb5b4e --- /dev/null +++ b/files/de/archive/b2g_os/platform/app_architektur/index.html @@ -0,0 +1,29 @@ +--- +title: Firefox OS App-Architektur +slug: Archive/B2G_OS/Platform/App_Architektur +tags: + - Anleitung + - Apps + - B2G + - Firefox OS +translation_of: Archive/B2G_OS/Platform/Apps_architecture +--- +<div class="summary"> + <p>Dieser Artikel beschreibt die Details, wie Apps in Firefox OS gestartet und verwaltet werden. Diese Informationen sind hilfreich sowohl für Firefox OS-Plattformentwickler als auch für Gruppen, die das Betriebssystem auf neue Hardware portieren. Als App-Entwickler benötigt man diesen Artikel nicht unbedingt, aber er könnte trotzdem interessant sein.</p> +</div> +<h2 id="Der_App-Startprozess">Der App-Startprozess</h2> +<p>Wenn der Nutzer eine App, die er starten möchte, auswählt oder eine App auf andere Weise gestartet werden soll, startet die Home-Screen-App, indem sie sich eine App-Referenz von der {{domxref("App")}}-API holt und dann die Methode {{domxref("App.launch()")}} aufruft, um die App zu starten.</p> +<p>Gecko empfängt diese Anforderung und sendet das {{domxref("mozChromeEvent")}} mit den App-Details zur System-App. Die System-App verarbeitet dieses Ereignis, indem sie ein neues {{HTMLElement("iframe")}}-Element in den DOM-Baum einfügt und die App in dieses neue {{HTMLElement("iframe")}}-Element lädt. Dieser Rahmen ist dann die Heimat der App, bis sie beendet wird.</p> +<p>Jede App benötigt ein Manifest, das sie beschreibt, und hat eine spezielle Dateihierarchie im Paket. Details stehen im Artikel <a href="/en-US/docs/Web/Apps/App_Manifest">App manifest</a>.</p> +<h2 id="Kommunikation_mit_Gecko">Kommunikation mit Gecko</h2> +<p>Die Kommunikation zwischen Gecko und Gaia's System-App passiert über {{domxref("mozChromeEvent")}} und {{domxref("mozContentEvent")}}. <code>mozChromeEvent</code>s werden von Chrome zum Inhalt und <code>mozContentEvent</code>s vom Inhalt zu Chrome gesendet. Diese Kommunikation wird benutzt, um die Erzeugung und das Schließen der vertrauten Benutzeroberfläche zu steuern und die benötigten Funktionen für Benachrichtigungen und andere Aufgaben bereitzustellen, dazu gehört auch, der System-App mitzuteilen, dass eine App gestartet werden soll.</p> +<div class="note"> + <p><strong>Anmerkung:</strong> Mehr dazu, wie diese Ereignisse funktionieren, findet man in der <a href="/en-US/Firefox_OS/Platform/Gaia/Gaia_apps/System">System-App-Dokumentation</a>. Eine andere Quelle, wie man die Ereignisse benutzt, findet man im Quellcode in {{source("b2g/chrome/content/shell.js")}}.</p> +</div> +<h2 id="See_also">See also</h2> +<ul> + <li><a href="/en-US/docs/Web/Apps">Apps</a></li> + <li>{{domxref("App")}}</li> + <li><a href="/en-US/Firefox_OS/Platform/Gaia/Gaia_apps/System">System app</a></li> + <li><a href="/en-US/Firefox_OS/Platform/Architecture">Firefox OS architecture</a></li> +</ul> diff --git a/files/de/archive/b2g_os/platform/architektur/index.html b/files/de/archive/b2g_os/platform/architektur/index.html new file mode 100644 index 0000000000..c438e89c9f --- /dev/null +++ b/files/de/archive/b2g_os/platform/architektur/index.html @@ -0,0 +1,740 @@ +--- +title: Firefox OS Architektur +slug: Archive/B2G_OS/Platform/Architektur +translation_of: Archive/B2G_OS/Architecture +--- +<div class="summary"> +<p><span class="seoSummary">Dieser Artikel gibt eine Übersicht über die Architektur der Firefox OS Plattform und beschreibt die grundlegenden Konzepte und wie die einzelnen Komponenten prinzipiell zusammen arbeiten.</span></p> +</div> + +<div class="note"> +<p><strong>Hinweis:</strong> Bitte denke daran, dass Firefox OS noch nicht veröffentlicht ist. Die hier beschriebene Architektur ist möglicherweise noch nicht endgültig und es können sich noch ein paar Dinge ändern.</p> +</div> + +<h2 id="Firefox_OS_Begriffserklärungen">Firefox OS Begriffserklärungen</h2> + +<p>Einige Begriffe solltest Du kennen, bevor Du die Dokumentation von Firefox OS liest.</p> + +<dl> + <dt>B2G</dt> + <dd>Kurzform von "Boot to Gecko"</dd> + <dt>Boot to Gecko</dt> + <dd>Der interne Code-Name für das Firefox OS Betriebssystem. Du wirst diesen Begriff häufig als Synonym für Firefox OX finden, weil dieser Code-Name schon lange genutzt wurde bevor das Projekt einen offiziellen Namen hatte.</dd> + <dt>Firefox OS</dt> + <dd>Firefox OS stellt im Grunde das Mozilla Branding (und das von OEM Partnern) und verschiedene Support-Programme über der <strong>Boot to Gecko</strong> Ebene bereit, um aus den einzelnen Komponenten ein marktfähiges Produkt zu machen.</dd> + <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Gaia" title="/en-US/docs/Mozilla/Firefox_OS/Gaia">Gaia</a></dt> + <dd>Das ist die Benutzeroberfläche (User Interface) der Firefox OS Plattform. Alles, was nach dem Start von Firefox OS auf dem Bildschirm zu sehen ist wird von der Gaia Schicht erzeugt. Gaia implementiert den Sperrbildschirm, die Startseite und alle Apps, die man von einem modernen Smartphone erwartet. Die Gaia Schicht wurde vollständig in HTML, CSS und JavaScript geschrieben. Gaia kommuniziert mit dem darunter liegenden Betriebssystem ausschließlich über offene Web APIs, die durch Gecko bereit gestellt werden. Anwendungen von Drittanbietern können neben Gaia installiert werden.</dd> + <dt><a href="https://developer.mozilla.org/en-US/docs/Gecko">Gecko</a></dt> + <dd>Gecko ist die Laufzeitumgebung von Firefox OS. Diese Schicht stellt alles zur Verfügung, was für die drei offenen Standards HTML, CSS und JavaScript benötigt wird. Gecko stellt sicher, dass diese APIs auf jedem von Gecko unterstützten Betriebssystem gut funktionieren. Zu diesem Zweck beinhaltet Gecko unter anderem Netzwerk-, Grafik- und Layoutstacks sowie eine Virtuelle Maschine für JavaScript und Schichten für die Portierung.</dd> + <dt><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Gonk">Gonk</a></dt> + <dd>Gonk ist eine tiefer liegende Schicht des Firefox OS Betriebsystems, bestehend aus dem Linux Kernel (basierend auf dem <a href="http://source.android.com/">Android Open Source Project</a> (AOSP)) und der Hardware-Abstraktionsschicht (hardware abstraction layer, HAL). Der Linux Kernel und einige der Anwendungs-Bibliotheken sind allgemeine Open Source Projekte: Linux, libusb, bluez und andere. Einige Pakete des HAL sind Gemeinschafts-Projekte mit AOSP: GPS, Kamera und andere. Man könnte sagen, Gonk ist eine sehr einfache Linux Distribution. Gonk ist ein <strong>Port</strong> von Gecko. Das heißt, es gibt einen Port von Gecko zu Gonk, so wie es Ports von Gecko zu Mac OS X, Windows und Android gibt. Seit das Firefox OS Projekt die alleinige Kontrolle über Gonk hat können wir Schnittstellen zu Gecko entwickeln, die auf anderen Betriebssystemen nicht möglich sind. Zum Beispiel hat Gecko auf Gonk direkten Zugriff zur gesamten Telefonie-Einheit und zum Display Frame Buffer. Auf anderen Betriebssystemen ist dies nicht möglich.</dd> + <dt><a name="Jank">Jank</a></dt> + <dd>Dieser im Bereich der mobilen Web Apps häufig genutzte Begriff bezeichnet den Effekt von langsamem und ineffizientem Code in einer App, wodurch die Aktualisierung der Benutzeroberfläche blockiert wird und diese nur noch langsam oder überhaupt nicht mehr reagiert. Unsere Gaia Entwickler nutzen verschiedene Optimierungs-Techniken, um diese Probleme unter allen Umständen zu verhindern.</dd> +</dl> + +<h2 id="Overall_architecture">Overall architecture</h2> + +<p>The following figure compares architectures between proprietary platforms and Firefox OS.</p> + +<p><img alt="on the left is a native mobile architecture stack, on the right is the Firefox OS architecture. they are similarm except that the native stack is all proprietary device functionality, and the Firefox OS stack is all done with open source and web technologies." src="https://mdn.mozillademos.org/files/9487/general-architecture.png" style="display: block; height: 488px; margin: 0px auto; width: 997px;"></p> + +<p>Firefox OS eliminates the native API layer between the operating system and application layers. This integrated design reduces platform overhead and simplifies security without sacrificing performance or a rich user smart phone experience.</p> + +<ol> + <li><a href="https://developer.mozilla.org/en-US/Firefox_OS/Platform/Gaia">Gaia</a> is the core web apps of the device, and user interface layer, all written in HTML5, CSS and JavaScript, with a number of exposed APIs to allow the UI code to interact with the phone hardware and Gecko functionality.</li> + <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Gecko">Gecko</a> is the web engine and presentation layer in Firefox OS that connects hardware to HTML by serving as the interface between web content and the underlying device. Gecko provides an HTML5 parsing and rendering engine, programmatic access to hardware functionality via secure web APIs, a comprehensive security framework, update management, and other core services.</li> + <li><a href="https://developer.mozilla.org/en-US/Firefox_OS/Platform/Gonk">Gonk</a> is the kernel-level component in the Firefox OS stack that serves as the interface between Gecko and the underlying hardware. Gonk controls the underlying hardware and exposes hardware capabilities to Web APIs implemented in Gecko. Gonk can be seen as the “black box” that does all the complex, detailed work behind the scenes to control the mobile device by enacting requests at the hardware level.</li> + <li>The mobile device is the mobile phone hardware running Firefox OS. The OEM (Original Equipment Manifacturer) is responsible for providing the mobile device.</li> +</ol> + +<h2 id="Specific_Firefox_OS_architecture">Specific Firefox OS architecture</h2> + +<p><img alt="Firefox OS Architecture" src="https://developer.mozilla.org/files/4605/FirefoxOS.png" style="display: block; height: 915px; margin: 0px auto; width: 754px;"></p> + +<h2 id="Firefox_OS_bootup_procedure">Firefox OS bootup procedure</h2> + +<p>This section describes the process by which Firefox OS devices boot, what parts are involved, and where. As a quick reference, the general system bootup flow goes from bootloaders in the Kernel space, to init in the native code, to B2G and then Gecko in the user space, and then finally to the system app, window manager, then homescreen app inside Gecko. This is what all other apps are executed on top of.</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/7491/bootup.png" style="display: block; height: 1979px; margin: 0px auto; width: 2112px;"></p> + +<h3 id="The_bootstrapping_process">The bootstrapping process</h3> + +<p>When a Firefox OS device is first turned on, execution begins in the primary bootloader. From there, the process of loading the main operating system proceeds in the typical way; a succession of increasingly higher-level bootloaders bootstrap the next loader in the chain. At the end of the process, execution is handed off to the Linux kernel.</p> + +<p>There are a few points worth noting about the boot process:</p> + +<ul> + <li>The bootloaders usually display the first splash screen seen by the user during device startup; this is typically a vendor logo.</li> + <li>The bootloaders implement flashing an image to the device. Different devices use different protocols; most phones use the <a href="http://android-dls.com/wiki/index.php?title=Fastboot" title="http://android-dls.com/wiki/index.php?title=Fastboot">fastboot protocol</a>, but the Samsung Galaxy S II uses the odin protocol.</li> + <li>By the end of the bootstrapping process, the modem image is usually loaded and running on the modem processor. How this happens is highly device-specific and may be proprietary.</li> +</ul> + +<h3 id="The_Linux_kernel">The Linux kernel</h3> + +<p>The Linux kernel(s) used by Gonk is very similar to the upstream Linux from which it's derived (based on the <a href="http://source.android.com/" title="http://source.android.com/">Android Open Source Project</a>). There are a few changes made by the AOSP that have not yet been upstreamed. In addition, vendors sometimes modify the kernel and upstream those changes on their own schedule. In general, though, the Linux kernel is close to stock.</p> + +<p>The <a href="http://en.wikipedia.org/wiki/Linux_startup_process" title="http://en.wikipedia.org/wiki/Linux_startup_process">startup process for Linux</a> is well-documented elsewhere on the Internet, so this article won't cover that.</p> + +<p>The Linux Kernel will bring up devices and run essential processes. It will execute processes defined in <code>init.rc</code> and the successor <a href="https://github.com/mozilla-b2g/gonk-misc/blob/master/init.b2g.rc">init.b2g.rc</a> to boot essential process such as <code>b2g</code> (FirefoxOS basic process, containing Gecko) and <code>rild</code> (telephony related process that might proprietary by different chipsets) — see below for more details. At the end of the process, a userspace <code>init</code> process is launched, as it is in most UNIX-like operating systems.</p> + +<p>Once the <code>init</code> process is launched, the Linux kernel handles system calls from userspace, and interrupts and the like from hardware devices. Many hardware features are exposed to userspace through <a href="http://en.wikipedia.org/wiki/Sysfs" title="http://en.wikipedia.org/wiki/Sysfs"><code>sysfs</code></a>. For example, here's a <a href="https://github.com/cgjones/mozilla-central/blob/master/hal/gonk/GonkHal.cpp#L277" title="https://github.com/cgjones/mozilla-central/blob/master/hal/gonk/GonkHal.cpp#L277">code snippet</a> that reads the battery state in Gecko:</p> + +<pre class="brush:cpp; line-numbers language-cpp"><code class="language-cpp">FILE <span class="operator token">*</span>capacityFile <span class="operator token">=</span> <span class="function token">fopen</span><span class="punctuation token">(</span><span class="string token">"/sys/class/power_supply/battery/capacity"</span><span class="punctuation token">,</span> <span class="string token">"r"</span><span class="punctuation token">)</span><span class="punctuation token">;</span> +double capacity <span class="operator token">=</span> dom<span class="punctuation token">:</span><span class="punctuation token">:</span>battery<span class="punctuation token">:</span><span class="punctuation token">:</span>kDefaultLevel <span class="operator token">*</span> <span class="number token">100</span><span class="punctuation token">;</span> +<span class="keyword token">if</span> <span class="punctuation token">(</span>capacityFile<span class="punctuation token">)</span> <span class="punctuation token">{</span> + <span class="function token">fscanf</span><span class="punctuation token">(</span>capacityFile<span class="punctuation token">,</span> <span class="string token">"%lf"</span><span class="punctuation token">,</span> <span class="operator token">&</span>capacity<span class="punctuation token">)</span><span class="punctuation token">;</span> + <span class="function token">fclose</span><span class="punctuation token">(</span>capacityFile<span class="punctuation token">)</span><span class="punctuation token">;</span> +<span class="punctuation token">}</span></code></pre> + +<h3 id="More_on_the_init_process">More on the init process</h3> + +<p>The <code>init</code> process in Gonk handles mounting the required file systems and spawns system services. After that, it stays around to serve as a process manager. This is quite similar to init on other UNIX-like operating systems. It interprets scripts (that is, the <code>init*.rc</code> files) that consist of commands describing what should be done to start various services. The Firefox OS <code>init.rc</code> is typically the stock Android <code>init.rc</code> for that device patched to include the things required to kick-start Firefox OS, and varies from device to device.</p> + +<p>One key task the <code>init</code> process handles is starting up the <code>b2g</code> process; this is the core of the Firefox OS operating system.</p> + +<p>The code in <code>init.rc</code> that starts this up looks like this:</p> + +<pre class="line-numbers language-html"><code class="language-html">service b2g /system/bin/b2g.sh + class main + onrestart restart media</code></pre> + +<div class="note"> +<p><strong>Note:</strong> Exactly how much <code>init.rc</code> differs from the Android version varies from device to device; sometimes, <code>init.b2g.rc</code> is simply appended, and sometimes the patches are more significant.</p> +</div> + +<h2 id="The_userspace_process_architecture">The userspace process architecture</h2> + +<p>Now it's useful to take a high-level look at how the various components of Firefox OS fit together and interact with one another. This diagram shows the primary userspace processes in Firefox OS.</p> + +<p><a href="https://developer.mozilla.org/files/3849/B2G%20userspace%20architecture.svg"><img alt="Userspace diagram" src="https://developer.mozilla.org/files/3849/B2G%20userspace%20architecture.svg" style="float: right; height: 491px; position: relative; width: 520px;"></a></p> + +<div class="note"> +<p><strong>Note:</strong> Keep in mind that since Firefox OS is under active development, this diagram is subject to change, and may not be entirely accurate.</p> +</div> + +<p>The <code>b2g</code> process is the primary system process. It runs with high privileges; it has access to most hardware devices. <code>b2g</code> communicates with the modem, draws to the display framebuffer, and talks to GPS, cameras, and other hardware features. Internally, <code>b2g</code> runs the Gecko layer (implemented by <code>libxul.so</code>). See <a href="#Gecko">Gecko</a> for details on how the Gecko layer works, and how <code>b2g</code> communicates with it.</p> + +<h3 id="b2g">b2g</h3> + +<p>The <code>b2g</code> process may, in turn, spawn a number of low-rights <strong>content processes</strong>. These processes are where web applications and other web content are loaded. These processes communicate with the main Gecko server process through <a href="https://developer.mozilla.org/en-US/docs/IPDL" title="/en-US/docs/IPDL">IPDL</a>, a message-passing system.</p> + +<p>The <code>b2g</code> process runs libxul, which references <code>b2g/app/b2g.js</code> to get default preferences. From the preferences it will open the described HTML file <code>b2g/chrome/content/shell.html</code>, which is compiled within the <code>omni.ja</code> file. <code>shell.html</code> includes <code>b2g/chrome/content/shell.js</code> file, which triggers the Gaia <code>system</code> app.</p> + +<h3 id="rild">rild</h3> + +<p>The <code>rild</code> process is the interface to the modem processor. <code>rild</code> is the daemon that implements the <strong>Radio Interface Layer</strong> (RIL). It's a proprietary piece of code that's implemented by the hardware vendor to talk to their modem hardware. <code>rild</code> makes it possible for client code to connect to a UNIX-domain socket to which it binds. It's started up by code like this in the <code>init</code> script:</p> + +<pre class="line-numbers language-html"><code class="language-html">service ril-daemon /system/bin/rild + socket rild stream 660 root radio</code></pre> + +<h3 id="rilproxy">rilproxy</h3> + +<p>In Firefox OS, the <code>rild</code> client is the <code>rilproxy</code> process. This acts as a dumb forwarding proxy between <code>rild</code> and <code>b2g</code>. This proxy is needed as an implementation detail; suffice it to say, it is indeed necessary. The <a href="https://github.com/mozilla-b2g/rilproxy" title="https://github.com/mozilla-b2g/rilproxy"><code>rilproxy</code> code can be found on GitHub</a>.</p> + +<h3 id="mediaserver">mediaserver</h3> + +<p>The <a href="https://github.com/android/platform_frameworks_base/tree/ics-mr0-release/media/libmediaplayerservice" title="https://github.com/android/platform_frameworks_base/tree/ics-mr0-release/media/libmediaplayerservice"><code>mediaserver</code> process</a> controls audio and video playback. Gecko talks to it through an Android Remote Procedure Call (RPC) mechanism. Some of the media that Gecko can play (OGG Vorbis audio, OGG Theora video, and <a href="http://www.webmproject.org/about/" title="http://www.webmproject.org/about/">WebM</a> video) are decoded by Gecko and sent directly to the <code>mediaserver</code> process. Other media files are decoded by <code>libstagefright</code>, which is capable of accessing proprietary codecs and hardware encoders.</p> + +<div class="note"> +<p><strong>Note:</strong> The <code>mediaserver</code> process is a "temporary" component of Firefox OS; it's there to aid in our initial development work, but is expected to go away eventually. This will most likely not happen until Firefox OS 2.0 at the earliest, however.</p> +</div> + +<h3 id="netd">netd</h3> + +<p>The <code>netd</code> process is used to configure network interfaces.</p> + +<h3 id="wpa_supplicant">wpa_supplicant</h3> + +<p>The <code>wpa_supplicant</code> process is the standard UNIX-style daemon that handles connectivity with WiFi access points.</p> + +<h3 id="dbus-daemon">dbus-daemon</h3> + +<p>The dbus-daemon implements <a href="http://www.freedesktop.org/wiki/Software/dbus" title="http://www.freedesktop.org/wiki/Software/dbus">D-Bus</a>, a message bus system that Firefox OS uses for Bluetooth communication.</p> + +<h2 id="Gecko">Gecko</h2> + +<p><a href="https://developer.mozilla.org/en-US/docs/Gecko" title="/en-US/docs/Gecko">Gecko</a>, as previously mentioned, is the implementation of web standards (<a href="https://developer.mozilla.org/en-US/docs/HTML" title="/en-US/docs/HTML">HTML</a>, <a href="https://developer.mozilla.org/en-US/docs/CSS" title="/en-US/docs/CSS">CSS</a>, and <a href="https://developer.mozilla.org/en-US/docs/JavaScript" title="/en-US/docs/JavaScript">JavaScript</a>) that is used to implement everything the user sees on Firefox OS, and control interactions with the phone hardware. Web apps connect HTML5 to hardware via controlled, secure Web APIs, implemented in Gecko. The Web APIs provide programmatic access to features in the underlying mobile device hardware (such as the battery or vibration), along with data that is stored on, or available to, a device (such as the calendar or contacts). Web content invokes the accessible Web APIs within HTML5.</p> + +<p>An app consists of a collection of related HTML5 web content. To build web apps that run on Firefox OS mobile devices, developers simply assemble, package, and distribute this web content. At run time, this web content is interpreted, compiled, and rendered in a web browser. For more information on Apps, see the <a href="https://developer.mozilla.org/en-US/Apps">App Center</a>.</p> + +<div class="note"> +<p><strong>Note</strong>: To search the Gecko codebase, you could use <a href="http://dxr.mozilla.org">http://dxr.mozilla.org</a>. It’s more fancy and provides good reference features, but with limited repositories. Or you could try the traditional <a href="http://mxr.mozilla.org">http://mxr.mozilla.org</a>, which contains more Mozilla projects.</p> +</div> + +<h3 id="Gecko_architecture_diagram">Gecko architecture diagram</h3> + +<p><img alt="" src="https://mdn.mozillademos.org/files/5027/securityframework.png" style="height: 591px; width: 979px;"></p> + +<ul> + <li><strong>Security Framework</strong>: contains + + <ul> + <li><strong>Permission Manager</strong>: Gateway to accessing functionality in the Web API.</li> + <li><strong>Access Control List</strong>: Matrix of roles and permissions required to access Web API functionality.</li> + <li><strong>Credential Validation</strong>: Authentication of apps/users.</li> + <li><strong>Permissions Store</strong>: Set of privileges required to access Web API functionality.</li> + </ul> + </li> + <li><strong>Web API</strong>: Set of standard APIs that exposes hardware functionality to web content. Provides web apps with secure, programmatic access to features in the underlying mobile device hardware, along with data that is stored on—or available to—a device.</li> + <li><strong>I/O</strong>: Interface to the hardware and data store(s).</li> + <li><strong>Software Updates</strong>: Obtain and install updates to system software and third-party apps.</li> + <li><strong>Content Layout & Rendering</strong>: Engine that parses, interprets, and executes web content and, with formatting information, displays the formatted content to the user.</li> + <li><strong>b2g process</strong>: (Gecko) runs in a highly-privileged system process that has access to hardware features in the mobile phone. Running apps are child processes of b2g.</li> +</ul> + +<h3 id="Gecko_files_related_to_Firefox_OS">Gecko files related to Firefox OS</h3> + +<h4 id="b2g_2">b2g/</h4> + +<p>The b2g folder contains mainly Firefox OS-related functions.</p> + +<h5 id="b2gchromecontent">b2g/chrome/content</h5> + +<p>Contains Javascript files run above the system app.</p> + +<h5 id="b2gchromecontentshell.html">b2g/chrome/content/shell.html</h5> + +<p>The entry point into Gaia — the HTML for the system app. <code>shell.html</code> pulls in <code>settings.js</code> and <code>shell.js</code>:</p> + +<pre class="brush: html line-numbers language-html"><code class="language-html"><span class="tag token"><span class="tag token"><span class="punctuation token"><</span>script</span> <span class="attr-name token">type</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>application/javascript;version<span class="punctuation token">=</span>1.8<span class="punctuation token">"</span></span> <span class="attr-name token">src</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>chrome://browser/content/settings.js<span class="punctuation token">"</span></span><span class="punctuation token">></span></span><span class="language-javascript script token"> </span><span class="tag token"><span class="tag token"><span class="punctuation token"></</span>script</span><span class="punctuation token">></span></span> +<span class="tag token"><span class="tag token"><span class="punctuation token"><</span>script</span> <span class="attr-name token">type</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>application/javascript;version<span class="punctuation token">=</span>1.8<span class="punctuation token">"</span></span> <span class="attr-name token">src</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>chrome://browser/content/shell.js<span class="punctuation token">"</span></span><span class="punctuation token">></span></span><span class="language-javascript script token"> </span><span class="tag token"><span class="tag token"><span class="punctuation token"></</span>script</span><span class="punctuation token">></span></span></code></pre> + +<p><code>settings.js</code> contains system default setting parameters.</p> + +<h5 id="b2gchromecontentshell.js">b2g/chrome/content/shell.js</h5> + +<p><code>shell.js</code> is the first script to load in the Gaia <code>system</code> app.</p> + +<p><code>shell.js</code> imports all required modules, registers key listeners, defines <code>sendCustomEvent</code> and <code>sendChromeEvent</code> to communicate with Gaia, and provides webapp install helpers: indexedDB quota, RemoteDebugger, keyboard helper, and screenshot tool.</p> + +<p>But the most important function of <code>shell.js</code> is to launch the Gaia <code>system</code> app, then hand over the overall systems related management work to the Gaia <code>system</code> app.</p> + +<pre class="brush: js line-numbers language-js"><code class="language-js"><span class="keyword token">let</span> systemAppFrame <span class="operator token">=</span> + document<span class="punctuation token">.</span><span class="function token">createElementNS</span><span class="punctuation token">(</span><span class="string token">'http://www.w3.org/1999/xhtml'</span><span class="punctuation token">,</span> <span class="string token">'html:iframe'</span><span class="punctuation token">)</span><span class="punctuation token">;</span> + <span class="punctuation token">.</span><span class="punctuation token">.</span><span class="punctuation token">.</span> + container<span class="punctuation token">.</span><span class="function token">appendChild</span><span class="punctuation token">(</span>systemAppFrame<span class="punctuation token">)</span><span class="punctuation token">;</span></code></pre> + +<h5 id="b2gappb2g.js">b2g/app/b2g.js</h5> + +<p>This script contains predefined settings, like about:config in browser, and the same as Gaia's pref.js. These settings can be changed from the Settings app, and can be overwritten with Gaia’s user.js in the Gaia build script.</p> + +<h4 id="domAPI">dom/{API}</h4> + +<p>New API implementations (post-b2g) will be located in <code>dom/</code>. Older APIs will be located in <code>dom/base</code>, for example <code>Navigator.cpp</code>.</p> + +<h5 id="domapps">dom/apps</h5> + +<p><code>.jsm</code> will be loaded — <code>.js</code> API implementations such as <code>webapp.js</code> install, <code>getSelf</code>, etc.</p> + +<h5 id="domappsPermissionsTable.jsm">dom/apps/PermissionsTable.jsm</h5> + +<p>All permissions are defined in <a href="http://mxr.mozilla.org/mozilla-central/source/dom/apps/PermissionsTable.jsm">PermissionsTable.jsm</a></p> + +<h4 id="domwebidl">dom/webidl</h4> + +<p>WebIDL is the language used to define web APIs. For supported attributes, read <a href="https://developer.mozilla.org/en-US/docs/Mozilla/WebIDL_bindings">WebIDL_bindings</a>.</p> + +<h4 id="halgonk">hal/gonk</h4> + +<p>This directory contains files related to the gonk port layer.</p> + +<h4 id="Generated_files">Generated files</h4> + +<h5 id="modulelibprefsrcinitall.js">module/libpref/src/init/all.js</h5> + +<p>Contains all config files.</p> + +<h5 id="systemb2g_omni.ja_and_omni.js">/system/b2g/ omni.ja and omni.js</h5> + +<p>Contains the pack of styles for resources in the device.</p> + +<h3 id="Processing_input_events">Processing input events</h3> + +<p>Most action inside Gecko is triggered by user actions. These actions are represented by input events (such as button presses, touches to a touch screen device, and so forth). These events enter Gecko through the <a href="https://dxr.mozilla.org/mozilla-central/source/widget/gonk/nsAppShell.cpp" rel="custom">Gonk implementation</a> of <code><a href="/de/docs/XPCOM_Interface_Referenz/nsIAppShell" title="">nsIAppShell</a></code>, a Gecko interface that is used to represent the primary entrance points for a Gecko application; that is, the input device driver calls methods on the <code>nsAppShell</code> object that represents the Gecko subsystem in order to send events to the user interface.</p> + +<p>For example:</p> + +<pre class="brush:cpp; line-numbers language-cpp"><code class="language-cpp">void GeckoInputDispatcher<span class="punctuation token">:</span><span class="punctuation token">:</span><span class="function token">notifyKey</span><span class="punctuation token">(</span>nsecs_t eventTime<span class="punctuation token">,</span> + int32_t deviceId<span class="punctuation token">,</span> + int32_t source<span class="punctuation token">,</span> + uint32_t policyFlags<span class="punctuation token">,</span> + int32_t action<span class="punctuation token">,</span> + int32_t flags<span class="punctuation token">,</span> + int32_t keyCode<span class="punctuation token">,</span> + int32_t scanCode<span class="punctuation token">,</span> + int32_t metaState<span class="punctuation token">,</span> + nsecs_t downTime<span class="punctuation token">)</span> <span class="punctuation token">{</span> + UserInputData data<span class="punctuation token">;</span> + data<span class="punctuation token">.</span>timeMs <span class="operator token">=</span> <span class="function token">nanosecsToMillisecs</span><span class="punctuation token">(</span>eventTime<span class="punctuation token">)</span><span class="punctuation token">;</span> + data<span class="punctuation token">.</span>type <span class="operator token">=</span> UserInputData<span class="punctuation token">:</span><span class="punctuation token">:</span>KEY_DATA<span class="punctuation token">;</span> + data<span class="punctuation token">.</span>action <span class="operator token">=</span> action<span class="punctuation token">;</span> + data<span class="punctuation token">.</span>flags <span class="operator token">=</span> flags<span class="punctuation token">;</span> + data<span class="punctuation token">.</span>metaState <span class="operator token">=</span> metaState<span class="punctuation token">;</span> + data<span class="punctuation token">.</span>key<span class="punctuation token">.</span>keyCode <span class="operator token">=</span> keyCode<span class="punctuation token">;</span> + data<span class="punctuation token">.</span>key<span class="punctuation token">.</span>scanCode <span class="operator token">=</span> scanCode<span class="punctuation token">;</span> + <span class="punctuation token">{</span> + MutexAutoLock <span class="function token">lock</span><span class="punctuation token">(</span>mQueueLock<span class="punctuation token">)</span><span class="punctuation token">;</span> + mEventQueue<span class="punctuation token">.</span><span class="function token">push</span><span class="punctuation token">(</span>data<span class="punctuation token">)</span><span class="punctuation token">;</span> + <span class="punctuation token">}</span> + gAppShell<span class="operator token">-</span><span class="operator token">></span><span class="function token">NotifyNativeEvent</span><span class="punctuation token">(</span><span class="punctuation token">)</span><span class="punctuation token">;</span> +<span class="punctuation token">}</span></code></pre> + +<p>These events come from the standard Linux <code>input_event</code> system. Firefox OS uses a <a href="https://dxr.mozilla.org/mozilla-central/source/widget/gonk/libui/InputReader.cpp" rel="custom">light abstraction layer</a> over that; this provides some nice features like event filtering. You can see the code that creates input events in the <code>EventHub::getEvents()</code> method in <a href="https://dxr.mozilla.org/mozilla-central/source/widget/gonk/libui/EventHub.cpp" rel="custom">widget/gonk/libui/EventHub.cpp</a>.</p> + +<p>Once the events are received by Gecko, they're dispatched into the DOM by <code><a href="https://dxr.mozilla.org/mozilla-central/source/widget/gonk/nsAppShell.cpp" rel="custom">nsAppShell</a></code>:</p> + +<pre class="brush:cpp; line-numbers language-cpp"><code class="language-cpp">static nsEventStatus <span class="function token">sendKeyEventWithMsg</span><span class="punctuation token">(</span>uint32_t keyCode<span class="punctuation token">,</span> + uint32_t msg<span class="punctuation token">,</span> + uint64_t timeMs<span class="punctuation token">,</span> + uint32_t flags<span class="punctuation token">)</span> <span class="punctuation token">{</span> + nsKeyEvent <span class="function token">event</span><span class="punctuation token">(</span><span class="boolean token">true</span><span class="punctuation token">,</span> msg<span class="punctuation token">,</span> NULL<span class="punctuation token">)</span><span class="punctuation token">;</span> + event<span class="punctuation token">.</span>keyCode <span class="operator token">=</span> keyCode<span class="punctuation token">;</span> + event<span class="punctuation token">.</span>location <span class="operator token">=</span> nsIDOMKeyEvent<span class="punctuation token">:</span><span class="punctuation token">:</span>DOM_KEY_LOCATION_MOBILE<span class="punctuation token">;</span> + event<span class="punctuation token">.</span>time <span class="operator token">=</span> timeMs<span class="punctuation token">;</span> + event<span class="punctuation token">.</span>flags <span class="operator token">|</span><span class="operator token">=</span> flags<span class="punctuation token">;</span> + <span class="keyword token">return</span> nsWindow<span class="punctuation token">:</span><span class="punctuation token">:</span><span class="function token">DispatchInputEvent</span><span class="punctuation token">(</span>event<span class="punctuation token">)</span><span class="punctuation token">;</span> +<span class="punctuation token">}</span></code></pre> + +<p>After that, the events are either consumed by Gecko itself or are dispatched to Web applications as <a href="https://developer.mozilla.org/en-US/docs/DOM_Client_Object_Cross-Reference/DOM_Events" title="/en-US/docs/DOM_Client_Object_Cross-Reference/DOM_Events">DOM events</a> for further processing.</p> + +<h3 id="Graphics">Graphics</h3> + +<p>At the very lowest level, Gecko uses <a href="http://www.khronos.org/opengles/2_X/" title="http://www.khronos.org/opengles/2_X/">OpenGL ES 2.0</a> to draw to a GL context that wraps the hardware frame buffers. This is done in the Gonk implementation of <code><a href="https://dxr.mozilla.org/mozilla-central/source/widget/gonk/nsWindow.cpp" rel="custom">nsWindow</a></code> by code similar to this:</p> + +<pre class="brush:cpp; line-numbers language-cpp"><code class="language-cpp">gNativeWindow <span class="operator token">=</span> <span class="keyword token">new</span> <span class="class-name token">android</span><span class="punctuation token">:</span><span class="punctuation token">:</span><span class="function token">FramebufferNativeWindow</span><span class="punctuation token">(</span><span class="punctuation token">)</span><span class="punctuation token">;</span> +sGLContext <span class="operator token">=</span> GLContextProvider<span class="punctuation token">:</span><span class="punctuation token">:</span><span class="function token">CreateForWindow</span><span class="punctuation token">(</span>this<span class="punctuation token">)</span><span class="punctuation token">;</span></code></pre> + +<p>The <code>FramebufferNativeWindow</code> class is brought in directly from Android; see <a href="https://github.com/android/platform_frameworks_base/blob/ics-mr1-release/libs/ui/FramebufferNativeWindow.cpp" title="https://github.com/android/platform_frameworks_base/blob/ics-mr1-release/libs/ui/FramebufferNativeWindow.cpp"><code>FramebufferNativeWindow.cpp</code></a>. This uses the <strong>gralloc</strong> API to access the graphics driver in order to map buffers from the framebuffer device into memory.</p> + +<p>Gecko uses its <a href="https://developer.mozilla.org/en-US/docs/Gecko/Layers" title="/en-US/docs/Gecko/Layers">Layers</a> system to composite drawn content to the screen. In summary, what happens is this:</p> + +<ol> + <li>Gecko draws separate regions of pages into memory buffers. Sometimes these buffers are in system memory; other times, they're textures mapped into Gecko's address space, which means that Gecko is drawing directly into video memory. This is typically done in the method <a href="http://mxr.mozilla.org/mozilla-central/source/gfx/layers/basic/BasicThebesLayer.cpp#83" title="http://mxr.mozilla.org/mozilla-central/source/gfx/layers/basic/BasicThebesLayer.cpp#201"><code>BasicThebesLayer::PaintThebes()</code></a>.</li> + <li>Gecko then composites all of these textures to the screen using OpenGL commands. This composition occurs in <a href="http://mxr.mozilla.org/mozilla-central/source/gfx/layers/opengl/ThebesLayerOGL.cpp#124" title="http://mxr.mozilla.org/mozilla-central/source/gfx/layers/basic/BasicThebesLayer.cpp#201"><code>ThebesLayerOGL::RenderTo()</code></a>.</li> +</ol> + +<p>The details of how Gecko handles the rendering of web content is outside the scope of this document.</p> + +<h3 id="Hardware_Abstraction_Layer_(HAL)">Hardware Abstraction Layer (HAL)</h3> + +<p>The Gecko hardware abstraction layer is one of the porting layers of Gecko. It handles low-level access to system interfaces across multiple platforms using a C++ API that's accessible to the higher levels of Gecko. These APIs are implemented on a per-platform basis inside the Gecko HAL itself. This hardware abstraction layer is not exposed directly to JavaScript code in Gecko — this part of the interaction is handled by the Web APIs.</p> + +<p>Let's look at the process form a high level. When a user makes a request to use a phone feature (such as dialing a number, accessing a local wifi network, or connecting via Bluetooth), all layers in the Firefox OS technology stack are involved in carrying out the request. Apps and web content in the Gaia layer submits requests to access the underlying device via Web API calls (invoked from within HTML5 functions), which are implemented in Gecko. Gecko in turn submits the request to Gonk. A single request from Gecko can trigger a complex series of operations, initiated and managed by Gonk, in the mobile phone.</p> + +<h4 id="How_the_HAL_works">How the HAL works</h4> + +<p>Let's consider the <a href="/de/docs/Web/API/Window/navigator/vibrate" title="Die Beschreibung hierüber wurde bisher noch nicht geschrieben; bitte erwäge, mitzuwirken!"><code>Vibration</code></a> API as an example. The Gecko HAL for this API is defined in <a href="https://dxr.mozilla.org/mozilla-central/source/hal/Hal.h" rel="custom">hal/Hal.h</a>. In essence (simplifying the method signature for clarity's sake), you have this function:</p> + +<pre class="line-numbers language-html"><code class="language-html">void Vibrate(const nsTArray<span class="tag token"><span class="tag token"><span class="punctuation token"><</span>uint32</span><span class="punctuation token">></span></span> &pattern);</code></pre> + +<p>This is the function called by Gecko code to turn on vibration of the device according to the specified pattern; a corresponding function exists to cancel any ongoing vibration. The Gonk implementation of this method is in <a href="https://dxr.mozilla.org/mozilla-central/source/hal/gonk/GonkHal.cpp" rel="custom">hal/gonk/GonkHal.cpp</a>:</p> + +<pre class="brush:cpp; line-numbers language-cpp"><code class="language-cpp">void <span class="function token">Vibrate</span><span class="punctuation token">(</span>const nsTArray<span class="operator token"><</span>uint32_t<span class="operator token">></span> <span class="operator token">&</span>pattern<span class="punctuation token">)</span> <span class="punctuation token">{</span> + <span class="function token">EnsureVibratorThreadInitialized</span><span class="punctuation token">(</span><span class="punctuation token">)</span><span class="punctuation token">;</span> + sVibratorRunnable<span class="operator token">-</span><span class="operator token">></span><span class="function token">Vibrate</span><span class="punctuation token">(</span>pattern<span class="punctuation token">)</span><span class="punctuation token">;</span> +<span class="punctuation token">}</span></code></pre> + +<p>This code sends the request to start vibrating the device to another thread, which is implemented in <code>VibratorRunnable::Run()</code>. This thread's main loop looks like this:</p> + +<pre class="brush:cpp; line-numbers language-cpp"><code class="language-cpp"><span class="keyword token">while</span> <span class="punctuation token">(</span><span class="operator token">!</span>mShuttingDown<span class="punctuation token">)</span> <span class="punctuation token">{</span> + <span class="keyword token">if</span> <span class="punctuation token">(</span>mIndex <span class="operator token"><</span> mPattern<span class="punctuation token">.</span><span class="function token">Length</span><span class="punctuation token">(</span><span class="punctuation token">)</span><span class="punctuation token">)</span> <span class="punctuation token">{</span> + uint32_t duration <span class="operator token">=</span> mPattern<span class="punctuation token">[</span>mIndex<span class="punctuation token">]</span><span class="punctuation token">;</span> + <span class="keyword token">if</span> <span class="punctuation token">(</span>mIndex <span class="operator token">%</span> <span class="number token">2</span> <span class="operator token">==</span> <span class="number token">0</span><span class="punctuation token">)</span> <span class="punctuation token">{</span> + <span class="function token">vibrator_on</span><span class="punctuation token">(</span>duration<span class="punctuation token">)</span><span class="punctuation token">;</span> + <span class="punctuation token">}</span> + mIndex<span class="operator token">++</span><span class="punctuation token">;</span> + mMonitor<span class="punctuation token">.</span><span class="function token">Wait</span><span class="punctuation token">(</span><span class="function token">PR_MillisecondsToInterval</span><span class="punctuation token">(</span>duration<span class="punctuation token">)</span><span class="punctuation token">)</span><span class="punctuation token">;</span> + <span class="punctuation token">}</span> + <span class="keyword token">else</span> <span class="punctuation token">{</span> + mMonitor<span class="punctuation token">.</span><span class="function token">Wait</span><span class="punctuation token">(</span><span class="punctuation token">)</span><span class="punctuation token">;</span> + <span class="punctuation token">}</span> +<span class="punctuation token">}</span></code></pre> + +<p><code>vibrator_on()</code> is the Gonk HAL API that turns on the vibrator motor. Internally, this method sends a message to the kernel driver by writing a value to a kernel object using <code>sysfs</code>.</p> + +<h4 id="Fallback_HAL_API_implementations">Fallback HAL API implementations</h4> + +<p>The Gecko HAL APIs are supported across all platforms. When Gecko is built for a platform that doesn't expose an interface to vibration motors (such as a desktop computer), then a fallback implementation of the HAL API is used. For vibration, this is implemented in <a href="https://dxr.mozilla.org/mozilla-central/source/hal/fallback/FallbackVibration.cpp" rel="custom">hal/fallback/FallbackVibration.cpp</a>.</p> + +<pre class="brush:cpp; line-numbers language-cpp"><code class="language-cpp">void <span class="function token">Vibrate</span><span class="punctuation token">(</span>const nsTArray<span class="operator token"><</span>uint32_t<span class="operator token">></span> <span class="operator token">&</span>pattern<span class="punctuation token">)</span> <span class="punctuation token">{</span> +<span class="punctuation token">}</span></code></pre> + +<h4 id="Sandbox_implementations">Sandbox implementations</h4> + +<p>Because most web content runs in content processes with low privileges, we can't assume those processes have the privileges needed to be able to (for example), turn on and off the vibration motor. In addition, we want to have a central location for handling potential race conditions. In the Gecko HAL, this is done through a "sandbox" implementation of the HAL. This sandbox implementation simply proxies requests made by content processes and forwards them to the "Gecko server" process. The proxy requests are sent using IPDL.</p> + +<p>For vibration, this is handled by the <code>Vibrate()</code> function implemented in <a href="https://dxr.mozilla.org/mozilla-central/source/hal/sandbox/SandboxHal.cpp" rel="custom">hal/sandbox/SandboxHal.cpp</a>:</p> + +<pre class="brush:cpp; line-numbers language-cpp"><code class="language-cpp">void <span class="function token">Vibrate</span><span class="punctuation token">(</span>const nsTArray<span class="operator token"><</span>uint32_t<span class="operator token">></span><span class="operator token">&</span> pattern<span class="punctuation token">,</span> const WindowIdentifier <span class="operator token">&</span>id<span class="punctuation token">)</span> <span class="punctuation token">{</span> + AutoInfallibleTArray<span class="operator token"><</span>uint32_t<span class="punctuation token">,</span> <span class="number token">8</span><span class="operator token">></span> <span class="function token">p</span><span class="punctuation token">(</span>pattern<span class="punctuation token">)</span><span class="punctuation token">;</span> + + WindowIdentifier <span class="function token">newID</span><span class="punctuation token">(</span>id<span class="punctuation token">)</span><span class="punctuation token">;</span> + newID<span class="punctuation token">.</span><span class="function token">AppendProcessID</span><span class="punctuation token">(</span><span class="punctuation token">)</span><span class="punctuation token">;</span> + <span class="function token">Hal</span><span class="punctuation token">(</span><span class="punctuation token">)</span><span class="operator token">-</span><span class="operator token">></span><span class="function token">SendVibrate</span><span class="punctuation token">(</span>p<span class="punctuation token">,</span> newID<span class="punctuation token">.</span><span class="function token">AsArray</span><span class="punctuation token">(</span><span class="punctuation token">)</span><span class="punctuation token">,</span> <span class="function token">GetTabChildFrom</span><span class="punctuation token">(</span>newID<span class="punctuation token">.</span><span class="function token">GetWindow</span><span class="punctuation token">(</span><span class="punctuation token">)</span><span class="punctuation token">)</span><span class="punctuation token">)</span><span class="punctuation token">;</span> +<span class="punctuation token">}</span></code></pre> + +<p>This sends a message defined by the <code>PHal</code> interface, described by IPDL in <a href="https://dxr.mozilla.org/mozilla-central/source/hal/sandbox/PHal.ipdl" rel="custom">hal/sandbox/PHal.ipdl</a>. This method is described more or less as follows:</p> + +<pre class="line-numbers language-html"><code class="language-html">Vibrate(uint32_t[] pattern);</code></pre> + +<p>The receiver of this message is the <code>HalParent::RecvVibrate()</code> method in <a href="https://dxr.mozilla.org/mozilla-central/source/hal/sandbox/SandboxHal.cpp" rel="custom">hal/sandbox/SandboxHal.cpp</a>, which looks like this:</p> + +<pre class="brush:cpp; line-numbers language-cpp"><code class="language-cpp">virtual bool <span class="function token">RecvVibrate</span><span class="punctuation token">(</span>const InfallibleTArray<span class="operator token"><</span>unsigned int<span class="operator token">></span><span class="operator token">&</span> pattern<span class="punctuation token">,</span> + const InfallibleTArray<span class="operator token"><</span>uint64_t<span class="operator token">></span> <span class="operator token">&</span>id<span class="punctuation token">,</span> + PBrowserParent <span class="operator token">*</span>browserParent<span class="punctuation token">)</span> MOZ_OVERRIDE <span class="punctuation token">{</span> + + hal<span class="punctuation token">:</span><span class="punctuation token">:</span><span class="function token">Vibrate</span><span class="punctuation token">(</span>pattern<span class="punctuation token">,</span> newID<span class="punctuation token">)</span><span class="punctuation token">;</span> + <span class="keyword token">return</span> <span class="boolean token">true</span><span class="punctuation token">;</span> +<span class="punctuation token">}</span></code></pre> + +<p>This omits some details that aren't relevant to this discussion; however, it shows how the message progresses from a content process through Gecko to Gonk, then to the Gonk HAL implementation of <code>Vibrate()</code>, and eventually to the Vibration driver.</p> + +<h3 id="DOM_APIs">DOM APIs</h3> + +<p><strong>DOM interfaces</strong> are, in essence, how web content communicates with Gecko. There's more involved than that, and if you're interested in added details, you can read <a href="https://developer.mozilla.org/en-US/docs/DOM/About_the_Document_Object_Model" title="/en-US/docs/DOM/About_the_Document_Object_Model">about the DOM</a>. DOM interfaces are defined using <a href="https://developer.mozilla.org/en-US/docs/XPIDL" title="/en-US/docs/XPIDL">IDL</a>, which comprises both a foreign function interface (FFI) and object model (OM) between JavaScript and C++.</p> + +<p>The vibration API is exposed to web content through an IDL interface, which is provided in <code><a href="https://dxr.mozilla.org/mozilla-central/source/dom/interfaces/base/nsIDOMNavigator.idl" rel="custom">nsIDOMNavigator.idl</a>:</code></p> + +<pre class="line-numbers language-html"><code class="language-html">[implicit_jscontext] void mozVibrate(in jsval aPattern);</code></pre> + +<p>The <a href="https://developer.mozilla.org/en-US/docs/SpiderMonkey/JSAPI_Reference/Jsval" title="/en-US/docs/SpiderMonkey/JSAPI_Reference/JSVAL_IS_OBJECT"><code>jsval</code></a> argument indicates that <code>mozVibrate()</code> (which is our vendor-prefixed implementation of this non-finalized vibration specification) accepts as input any JavaScript value. The IDL compiler, <a href="https://developer.mozilla.org/en-US/docs/XPIDL/xpidl" title="/en-US/docs/XPIDL/xpidl"><code>xpidl</code></a>, generates a C++ interface that's then implemented by the <code>Navigator</code> class in <code><a href="https://dxr.mozilla.org/mozilla-central/source/dom/base/Navigator.cpp" rel="custom">Navigator.cpp</a></code>.</p> + +<pre class="brush:cpp; line-numbers language-cpp"><code class="language-cpp">NS_IMETHODIMP Navigator<span class="punctuation token">:</span><span class="punctuation token">:</span><span class="function token">MozVibrate</span><span class="punctuation token">(</span>const jsval<span class="operator token">&</span> aPattern<span class="punctuation token">,</span> JSContext<span class="operator token">*</span> cx<span class="punctuation token">)</span> <span class="punctuation token">{</span> + <span class="comment token">// ...</span> + hal<span class="punctuation token">:</span><span class="punctuation token">:</span><span class="function token">Vibrate</span><span class="punctuation token">(</span>pattern<span class="punctuation token">)</span><span class="punctuation token">;</span> + <span class="keyword token">return</span> NS_OK<span class="punctuation token">;</span> +<span class="punctuation token">}</span></code></pre> + +<p>There's a lot more code in this method than what you see here, but it's not important for the purposes of this discussion. The point is that the call to <code>hal::Vibrate()</code> transfers control from the DOM to the Gecko HAL. From there, we enter the HAL implementation discussed in the previous section and work our way down toward the driver. On top of that, the DOM implementation doesn't care at all what platform it's running on (Gonk, Windows, OS X, or anything else). It also doesn't care whether the code is running in a content process or in the Gecko server process. Those details are all left to lower levels of the system to deal with.</p> + +<p>The vibration API is a very simple API, which makes it a good example. The <a href="https://developer.mozilla.org/en-US/docs/API/WebSMS" title="/en-US/docs/API/WebSMS">SMS API</a> is an example of a more complex API which uses its own "remoting" layer connecting content processes to the server.</p> + +<h2 id="Radio_Interface_Layer_(RIL)">Radio Interface Layer (RIL)</h2> + +<p>The RIL was mentioned in the section <a href="#The_userspace_process_architecture">The userspace process architecture</a>. This section will examine how the various pieces of this layer interact in a bit more detail.</p> + +<p>The main components involved in the RIL are:</p> + +<dl> + <dt><code>rild</code></dt> + <dd>The daemon that talks to the proprietary modem firmware.</dd> + <dt><code>rilproxy</code></dt> + <dd>The daemon that proxies messages between <code>rild</code> and Gecko (which is implemented in the <code>b2g</code> process). This overcomes the permission problem that arises when trying to talk to <code>rild</code> directly, since <code>rild</code> can only be communicated with from within the <code>radio</code> group.</dd> + <dt><code>b2g</code></dt> + <dd>This process, also known as the <strong>chrome process</strong>, implements Gecko. The portions of it that relate to the Radio Interface Layer are <a href="https://dxr.mozilla.org/mozilla-central/source/dom/system/gonk/ril_worker.js" rel="custom">dom/system/gonk/ril_worker.js</a>, which implements a worker thread that talks to <code>rild</code> through <code>rilproxy</code> and implements the radio state machine; and the <code><a href="/de/docs/XPCOM_Interface_Referenz/nsIRadioInterfaceLayer" title="">nsIRadioInterfaceLayer</a></code> interface, which is the main thread's <a href="https://developer.mozilla.org/en-US/docs/XPCOM" title="/en-US/docs/XPCOM">XPCOM</a> service that acts primarily as a message exchange between the <code>ril_worker.js</code> thread and various other Gecko components, including the Gecko content process.</dd> + <dt>Gecko's content process</dt> + <dd>Within Gecko's content process, the <code><a href="/de/docs/XPCOM_Interface_Referenz/nsIRILContentHelper" title="">nsIRILContentHelper</a></code> interface provides an XPCOM service that lets code implementing parts of the DOM, such as the <a href="https://developer.mozilla.org/en-US/docs/API/WebTelephony" title="/en-US/docs/API/WebTelephony">Telephony</a> and <a href="https://developer.mozilla.org/en-US/docs/API/WebSMS" title="/en-US/docs/API/WebSMS">SMS</a> APIs talk to the radio interface, which is in the chrome process.</dd> +</dl> + +<h3 id="Example_Communicating_from_rild_to_the_DOM">Example: Communicating from rild to the DOM</h3> + +<p>Let's take a look at an example of how the lower level parts of the system communicate with DOM code. When the modem receives an incoming call, it notifies <code>rild</code> using a proprietary mechanism. <code>rild</code> then prepares a message for its client according to the "open" protocol, which is described in <a href="https://github.com/mozilla-b2g/android-hardware-ril/blob/master/include/telephony/ril.h" title="https://github.com/mozilla-b2g/android-hardware-ril/blob/master/include/telephony/ril.h"><code>ril.h</code></a>. In the case of an incoming call, a <code>RIL_UNSOL_RESPONSE_CALL_STATE_CHANGED</code> message is generated and sent by <code>rild</code> to <code>rilproxy</code>.</p> + +<p><code>rilproxy</code>, implemented in <a href="https://github.com/mozilla-b2g/rilproxy/blob/master/src/rilproxy.c" title="https://github.com/mozilla-b2g/rilproxy/blob/master/src/rilproxy.c"><code>rilproxy.c</code></a>, receives this message in its main loop, which polls its connection to <code>rild</code> using code like this:</p> + +<pre class="brush:cpp; line-numbers language-cpp"><code class="language-cpp">ret <span class="operator token">=</span> <span class="function token">read</span><span class="punctuation token">(</span>rilproxy_rw<span class="punctuation token">,</span> data<span class="punctuation token">,</span> <span class="number token">1024</span><span class="punctuation token">)</span><span class="punctuation token">;</span> + +<span class="keyword token">if</span><span class="punctuation token">(</span>ret <span class="operator token">></span> <span class="number token">0</span><span class="punctuation token">)</span> <span class="punctuation token">{</span> + <span class="function token">writeToSocket</span><span class="punctuation token">(</span>rild_rw<span class="punctuation token">,</span> data<span class="punctuation token">,</span> ret<span class="punctuation token">)</span><span class="punctuation token">;</span> +<span class="punctuation token">}</span></code></pre> + +<p>Once the message is received from <code>rild</code>, it's then forwarded along to Gecko on the socket that connects <code>rilproxy</code> to Gecko. Gecko receives the forwarded message on its <a href="https://dxr.mozilla.org/mozilla-central/source/ipc/ril/Ril.cpp" rel="custom">IPC thread</a>:</p> + +<pre class="brush:cpp; line-numbers language-cpp"><code class="language-cpp">int ret <span class="operator token">=</span> <span class="function token">read</span><span class="punctuation token">(</span>fd<span class="punctuation token">,</span> mIncoming<span class="operator token">-</span><span class="operator token">></span>Data<span class="punctuation token">,</span> <span class="number token">1024</span><span class="punctuation token">)</span><span class="punctuation token">;</span> +<span class="comment token">// ... handle errors ...</span> +mIncoming<span class="operator token">-</span><span class="operator token">></span>mSize <span class="operator token">=</span> ret<span class="punctuation token">;</span> +sConsumer<span class="operator token">-</span><span class="operator token">></span><span class="function token">MessageReceived</span><span class="punctuation token">(</span>mIncoming<span class="punctuation token">.</span><span class="function token">forget</span><span class="punctuation token">(</span><span class="punctuation token">)</span><span class="punctuation token">)</span><span class="punctuation token">;</span></code></pre> + +<p>The consumer of these messages is <a href="https://dxr.mozilla.org/mozilla-central/source/dom/system/gonk/SystemWorkerManager.cpp" rel="custom">SystemWorkerManager</a>, which repackages the messages and dispatches them to the <code><a href="https://dxr.mozilla.org/mozilla-central/source/dom/system/gonk/ril_worker.js" rel="custom">ril_worker.js</a></code> thread that implements the RIL state machine; this is done in the <code>RILReceiver::MessageReceived()</code> method:</p> + +<pre class="brush:cpp; line-numbers language-cpp"><code class="language-cpp">virtual void <span class="function token">MessageReceived</span><span class="punctuation token">(</span>RilRawData <span class="operator token">*</span>aMessage<span class="punctuation token">)</span> <span class="punctuation token">{</span> + nsRefPtr<span class="operator token"><</span>DispatchRILEvent<span class="operator token">></span> <span class="function token">dre</span><span class="punctuation token">(</span><span class="keyword token">new</span> <span class="class-name token">DispatchRILEvent</span><span class="punctuation token">(</span>aMessage<span class="punctuation token">)</span><span class="punctuation token">)</span><span class="punctuation token">;</span> + mDispatcher<span class="operator token">-</span><span class="operator token">></span><span class="function token">PostTask</span><span class="punctuation token">(</span>dre<span class="punctuation token">)</span><span class="punctuation token">;</span> +<span class="punctuation token">}</span></code></pre> + +<p>The task posted to that thread in turn calls the <code>onRILMessage()</code> function, which is implemented in JavaScript. This is done using the JavaScript API function <code><a href="https://developer.mozilla.org/en-US/docs/SpiderMonkey/JSAPI_Reference/JS_CallFunctionName" title="/en-US/docs/SpiderMonkey/JSAPI_Reference/JS_CallFunctionName">JS_CallFunctionName</a>()</code>:</p> + +<pre class="line-numbers language-html"><code class="language-html">return JS_CallFunctionName(aCx, obj, "onRILMessage", NS_ARRAY_LENGTH(argv), + argv, argv);</code></pre> + +<p><code>onRILMessage()</code> is implemented in <a href="https://dxr.mozilla.org/mozilla-central/source/dom/system/gonk/ril_worker.js" rel="custom">dom/system/gonk/ril_worker.js</a>, which processes the message bytes and chops them into parcels. Each complete parcel is then dispatched to individual handler methods as appropriate:</p> + +<pre class="brush:js; line-numbers language-js"><code class="language-js">handleParcel<span class="punctuation token">:</span> <span class="keyword token">function</span> <span class="function token">handleParcel</span><span class="punctuation token">(</span>request_type<span class="punctuation token">,</span> length<span class="punctuation token">)</span> <span class="punctuation token">{</span> + <span class="keyword token">let</span> method <span class="operator token">=</span> <span class="keyword token">this</span><span class="punctuation token">[</span>request_type<span class="punctuation token">]</span><span class="punctuation token">;</span> + <span class="keyword token">if</span> <span class="punctuation token">(</span><span class="keyword token">typeof</span> method <span class="operator token">==</span> <span class="string token">"function"</span><span class="punctuation token">)</span> <span class="punctuation token">{</span> + <span class="keyword token">if</span> <span class="punctuation token">(</span>DEBUG<span class="punctuation token">)</span> <span class="function token">debug</span><span class="punctuation token">(</span><span class="string token">"Handling parcel as "</span> <span class="operator token">+</span> method<span class="punctuation token">.</span>name<span class="punctuation token">)</span><span class="punctuation token">;</span> + method<span class="punctuation token">.</span><span class="function token">call</span><span class="punctuation token">(</span><span class="keyword token">this</span><span class="punctuation token">,</span> length<span class="punctuation token">)</span><span class="punctuation token">;</span> + <span class="punctuation token">}</span> +<span class="punctuation token">}</span></code></pre> + +<p>This code works by getting the request type from the object, making sure it's defined as a function in the JavaScript code, then calling the method. Since ril_worker.js implements each request type in a method given the same name as the request type, this is very simple.</p> + +<p>In our example, <code>RIL_UNSOL_RESPONSE_CALL_STATE_CHANGED</code>, the following handler is called:</p> + +<pre class="brush:js; line-numbers language-js"><code class="language-js">RIL<span class="punctuation token">[</span>UNSOLICITED_RESPONSE_CALL_STATE_CHANGED<span class="punctuation token">]</span> <span class="operator token">=</span> <span class="keyword token">function</span> <span class="function token">UNSOLICITED_RESPONSE_CALL_STATE_CHANGED</span><span class="punctuation token">(</span><span class="punctuation token">)</span> <span class="punctuation token">{</span> + <span class="keyword token">this</span><span class="punctuation token">.</span><span class="function token">getCurrentCalls</span><span class="punctuation token">(</span><span class="punctuation token">)</span><span class="punctuation token">;</span> +<span class="punctuation token">}</span><span class="punctuation token">;</span></code></pre> + +<p>As you see in the code above, when notification is received that the call state has changed, the state machine simply fetches the current call state by calling the <code>getCurrentCall()</code> method:</p> + +<pre class="brush:js; line-numbers language-js"><code class="language-js">getCurrentCalls<span class="punctuation token">:</span> <span class="keyword token">function</span> <span class="function token">getCurrentCalls</span><span class="punctuation token">(</span><span class="punctuation token">)</span> <span class="punctuation token">{</span> + Buf<span class="punctuation token">.</span><span class="function token">simpleRequest</span><span class="punctuation token">(</span>REQUEST_GET_CURRENT_CALLS<span class="punctuation token">)</span><span class="punctuation token">;</span> +<span class="punctuation token">}</span></code></pre> + +<p>This sends a request back to <code>rild</code> to request the state of all currently active calls. The request flows back along a similar path the <code>RIL_UNSOL_RESPONSE_CALL_STATE_CHANGED</code> message followed, but in the opposite direction (that is, from <code>ril_worker.js</code> to <code>SystemWorkerManager</code> to <code>Ril.cpp</code>, then <code>rilproxy</code> and finally to the <code>rild</code> socket). <code>rild</code> then responds in kind, back along the same path, eventually arriving in <code>ril_worker.js</code>'s handler for the <code>REQUEST_GET_CURRENT_CALLS</code> message. And thus bidirectional communication occurs.</p> + +<p>The call state is then processed and compared to the previous state; if there's a change of state, ril_worker.js notifies the <code><a href="/de/docs/XPCOM_Interface_Referenz/nsIRadioInterfaceLayer" title="">nsIRadioInterfaceLayer</a></code> service on the main thread:</p> + +<pre class="brush:js; line-numbers language-js"><code class="language-js">_handleChangedCallState<span class="punctuation token">:</span> <span class="keyword token">function</span> <span class="function token">_handleChangedCallState</span><span class="punctuation token">(</span>changedCall<span class="punctuation token">)</span> <span class="punctuation token">{</span> + <span class="keyword token">let</span> message <span class="operator token">=</span> <span class="punctuation token">{</span>type<span class="punctuation token">:</span> <span class="string token">"callStateChange"</span><span class="punctuation token">,</span> + call<span class="punctuation token">:</span> changedCall<span class="punctuation token">}</span><span class="punctuation token">;</span> + <span class="keyword token">this</span><span class="punctuation token">.</span><span class="function token">sendDOMMessage</span><span class="punctuation token">(</span>message<span class="punctuation token">)</span><span class="punctuation token">;</span> +<span class="punctuation token">}</span></code></pre> + +<p><code><a href="/de/docs/XPCOM_Interface_Referenz/nsIRadioInterfaceLayer" title="">nsIRadioInterfaceLayer</a></code> is implemented in <a href="https://dxr.mozilla.org/mozilla-central/source/dom/system/gonk/RadioInterfaceLayer.js" rel="custom">dom/system/gonk/RadioInterfaceLayer.js</a>; the message is received by its <code>onmessage()</code> method:</p> + +<pre class="brush:js; line-numbers language-js"><code class="language-js">onmessage<span class="punctuation token">:</span> <span class="keyword token">function</span> <span class="function token">onmessage</span><span class="punctuation token">(</span>event<span class="punctuation token">)</span> <span class="punctuation token">{</span> + <span class="keyword token">let</span> message <span class="operator token">=</span> event<span class="punctuation token">.</span>data<span class="punctuation token">;</span> + <span class="function token">debug</span><span class="punctuation token">(</span><span class="string token">"Received message from worker: "</span> <span class="operator token">+</span> JSON<span class="punctuation token">.</span><span class="function token">stringify</span><span class="punctuation token">(</span>message<span class="punctuation token">)</span><span class="punctuation token">)</span><span class="punctuation token">;</span> + <span class="keyword token">switch</span> <span class="punctuation token">(</span>message<span class="punctuation token">.</span>type<span class="punctuation token">)</span> <span class="punctuation token">{</span> + <span class="keyword token">case</span> <span class="string token">"callStateChange"</span><span class="punctuation token">:</span> + <span class="comment token">// This one will handle its own notifications.</span> + <span class="keyword token">this</span><span class="punctuation token">.</span><span class="function token">handleCallStateChange</span><span class="punctuation token">(</span>message<span class="punctuation token">.</span>call<span class="punctuation token">)</span><span class="punctuation token">;</span> + <span class="keyword token">break</span><span class="punctuation token">;</span> + <span class="punctuation token">.</span><span class="punctuation token">.</span><span class="punctuation token">.</span></code></pre> + +<p>All this really does is dispatch the message to the content process using the Parent Process Message Manager (PPMM):</p> + +<pre class="brush:js; line-numbers language-js"><code class="language-js">handleCallStateChange<span class="punctuation token">:</span> <span class="keyword token">function</span> <span class="function token">handleCallStateChange</span><span class="punctuation token">(</span>call<span class="punctuation token">)</span> <span class="punctuation token">{</span> + <span class="punctuation token">[</span>some internal state updating<span class="punctuation token">]</span> + ppmm<span class="punctuation token">.</span><span class="function token">sendAsyncMessage</span><span class="punctuation token">(</span><span class="string token">"RIL:CallStateChanged"</span><span class="punctuation token">,</span> call<span class="punctuation token">)</span><span class="punctuation token">;</span> +<span class="punctuation token">}</span></code></pre> + +<p>In the content process, the message is received by <code>receiveMessage()</code> method in the <code><a href="/de/docs/XPCOM_Interface_Referenz/nsIRILContentHelper" title="">nsIRILContentHelper</a></code> service, from the Child Process Message Manager (CPMM):</p> + +<pre class="brush:js; line-numbers language-js"><code class="language-js">receiveMessage<span class="punctuation token">:</span> <span class="keyword token">function</span> <span class="function token">receiveMessage</span><span class="punctuation token">(</span>msg<span class="punctuation token">)</span> <span class="punctuation token">{</span> + <span class="keyword token">let</span> request<span class="punctuation token">;</span> + <span class="function token">debug</span><span class="punctuation token">(</span><span class="string token">"Received message '"</span> <span class="operator token">+</span> msg<span class="punctuation token">.</span>name <span class="operator token">+</span> <span class="string token">"': "</span> <span class="operator token">+</span> JSON<span class="punctuation token">.</span><span class="function token">stringify</span><span class="punctuation token">(</span>msg<span class="punctuation token">.</span>json<span class="punctuation token">)</span><span class="punctuation token">)</span><span class="punctuation token">;</span> + <span class="keyword token">switch</span> <span class="punctuation token">(</span>msg<span class="punctuation token">.</span>name<span class="punctuation token">)</span> <span class="punctuation token">{</span> + <span class="keyword token">case</span> <span class="string token">"RIL:CallStateChanged"</span><span class="punctuation token">:</span> + <span class="keyword token">this</span><span class="punctuation token">.</span><span class="function token">_deliverTelephonyCallback</span><span class="punctuation token">(</span><span class="string token">"callStateChanged"</span><span class="punctuation token">,</span> + <span class="punctuation token">[</span>msg<span class="punctuation token">.</span>json<span class="punctuation token">.</span>callIndex<span class="punctuation token">,</span> msg<span class="punctuation token">.</span>json<span class="punctuation token">.</span>state<span class="punctuation token">,</span> + msg<span class="punctuation token">.</span>json<span class="punctuation token">.</span>number<span class="punctuation token">,</span> msg<span class="punctuation token">.</span>json<span class="punctuation token">.</span>isActive<span class="punctuation token">]</span><span class="punctuation token">)</span><span class="punctuation token">;</span> + <span class="keyword token">break</span><span class="punctuation token">;</span></code></pre> + +<p>This, in turn, calls the <code><a href="https://developer.mozilla.org/de/docs/XPCOM_Interface_Reference/nsIRILTelephonyCallback#callStateChanged()">nsIRILTelephonyCallback.callStateChanged()</a></code> methods on every registered telephony callback object. Every web application that accesses the <a href="/de/docs/Web/API/Window/navigator/mozTelephony" title="Die Beschreibung hierüber wurde bisher noch nicht geschrieben; bitte erwäge, mitzuwirken!"><code>window.navigator.mozTelephony</code></a> API has registered one such callback object that dispatches events to the JavaScript code in the web application, either as a state change of an existing call object or a new <code>incoming</code> call event.</p> + +<pre class="brush:cpp; line-numbers language-cpp"><code class="language-cpp">NS_IMETHODIMP Telephony<span class="punctuation token">:</span><span class="punctuation token">:</span><span class="function token">CallStateChanged</span><span class="punctuation token">(</span>PRUint32 aCallIndex<span class="punctuation token">,</span> PRUint16 aCallState<span class="punctuation token">,</span> + const nsAString<span class="operator token">&</span> aNumber<span class="punctuation token">,</span> bool aIsActive<span class="punctuation token">)</span> <span class="punctuation token">{</span> + <span class="punctuation token">[</span><span class="punctuation token">.</span><span class="punctuation token">.</span><span class="punctuation token">.</span><span class="punctuation token">]</span> + + <span class="keyword token">if</span> <span class="punctuation token">(</span>modifiedCall<span class="punctuation token">)</span> <span class="punctuation token">{</span> + <span class="comment token">// Change state.</span> + modifiedCall<span class="operator token">-</span><span class="operator token">></span><span class="function token">ChangeState</span><span class="punctuation token">(</span>aCallState<span class="punctuation token">)</span><span class="punctuation token">;</span> + + <span class="comment token">// See if this should replace our current active call.</span> + <span class="keyword token">if</span> <span class="punctuation token">(</span>aIsActive<span class="punctuation token">)</span> <span class="punctuation token">{</span> + mActiveCall <span class="operator token">=</span> modifiedCall<span class="punctuation token">;</span> + <span class="punctuation token">}</span> + + <span class="keyword token">return</span> NS_OK<span class="punctuation token">;</span> + <span class="punctuation token">}</span> + + nsRefPtr<span class="operator token"><</span>TelephonyCall<span class="operator token">></span> call <span class="operator token">=</span> + TelephonyCall<span class="punctuation token">:</span><span class="punctuation token">:</span><span class="function token">Create</span><span class="punctuation token">(</span>this<span class="punctuation token">,</span> aNumber<span class="punctuation token">,</span> aCallState<span class="punctuation token">,</span> aCallIndex<span class="punctuation token">)</span><span class="punctuation token">;</span> + nsRefPtr<span class="operator token"><</span>CallEvent<span class="operator token">></span> event <span class="operator token">=</span> CallEvent<span class="punctuation token">:</span><span class="punctuation token">:</span><span class="function token">Create</span><span class="punctuation token">(</span>call<span class="punctuation token">)</span><span class="punctuation token">;</span> + nsresult rv <span class="operator token">=</span> event<span class="operator token">-</span><span class="operator token">></span><span class="function token">Dispatch</span><span class="punctuation token">(</span><span class="function token">ToIDOMEventTarget</span><span class="punctuation token">(</span><span class="punctuation token">)</span><span class="punctuation token">,</span> <span class="function token">NS_LITERAL_STRING</span><span class="punctuation token">(</span><span class="string token">"incoming"</span><span class="punctuation token">)</span><span class="punctuation token">)</span><span class="punctuation token">;</span> + <span class="function token">NS_ENSURE_SUCCESS</span><span class="punctuation token">(</span>rv<span class="punctuation token">,</span> rv<span class="punctuation token">)</span><span class="punctuation token">;</span> + <span class="keyword token">return</span> NS_OK<span class="punctuation token">;</span> +<span class="punctuation token">}</span></code></pre> + +<p>Applications can receive these events and update their user interface and so forth:</p> + +<pre class="brush:js; line-numbers language-js"><code class="language-js">handleEvent<span class="punctuation token">:</span> <span class="keyword token">function</span> <span class="function token">fm_handleEvent</span><span class="punctuation token">(</span>evt<span class="punctuation token">)</span> <span class="punctuation token">{</span> + <span class="keyword token">switch</span> <span class="punctuation token">(</span>evt<span class="punctuation token">.</span>call<span class="punctuation token">.</span>state<span class="punctuation token">)</span> <span class="punctuation token">{</span> + <span class="keyword token">case</span> <span class="string token">'connected'</span><span class="punctuation token">:</span> + <span class="keyword token">this</span><span class="punctuation token">.</span><span class="function token">connected</span><span class="punctuation token">(</span><span class="punctuation token">)</span><span class="punctuation token">;</span> + <span class="keyword token">break</span><span class="punctuation token">;</span> + <span class="keyword token">case</span> <span class="string token">'disconnected'</span><span class="punctuation token">:</span> + <span class="keyword token">this</span><span class="punctuation token">.</span><span class="function token">disconnected</span><span class="punctuation token">(</span><span class="punctuation token">)</span><span class="punctuation token">;</span> + <span class="keyword token">break</span><span class="punctuation token">;</span> + <span class="keyword token">default</span><span class="punctuation token">:</span> + <span class="keyword token">break</span><span class="punctuation token">;</span> + <span class="punctuation token">}</span> +<span class="punctuation token">}</span></code></pre> + +<p>Take a look at the implementation of <a href="https://github.com/mozilla-b2g/gaia/blob/master/apps/communications/dialer/js/dialer.js" title="https://github.com/mozilla-b2g/gaia/blob/master/apps/communications/dialer/js/dialer.js"><code>handleEvent()</code> in the Dialer application</a> as an extended example.</p> + +<h3 id="3G_data">3G data</h3> + +<p>There is a RIL message that initiates a "data call" to the cellular service; this enables data transfer mode in the modem. This data call ends up creating and activating a <a href="https://de.wikipedia.org/wiki/Point-to-Point Protocol" title="Point-to-Point Protocol">Point-to-Point Protocol</a> (PPP) interface device in the Linux kernel that can be configured using the usual interfaces.</p> + +<div class="note"> +<p><strong>Note:</strong> This section needs to be written.</p> +</div> + +<h3 id="Related_DOM_APIs">Related DOM APIs</h3> + +<p>This section lists DOM APIs that are related to RIL communications:</p> + +<ul> + <li><a href="https://developer.mozilla.org/en-US/docs/API/WebTelephony/Introduction_to_WebTelephony" title="/en-US/docs/API/WebTelephony/Introduction_to_WebTelephony">Telephony API</a></li> + <li><a href="https://developer.mozilla.org/en-US/docs/API/WebSMS/Introduction_to_WebSMS" title="/en-US/docs/API/WebSMS/Introduction_to_WebSMS">SMS API</a></li> + <li>Mobile Connection API</li> +</ul> + +<h2 id="WiFi">WiFi</h2> + +<p>The WiFi backend for Firefox OS simply uses <code>wpa_supplicant</code> to do most of the work. That means that the backend's primary job is to simply manage the supplicant, and to do some auxiliary tasks such as loading the WiFi driver and enabling or disabling the network interface. In essence, this means that the backend is a state machine, with the states following the state of the supplicant.</p> + +<div class="note"> +<p><strong>Note:</strong> Much of the interesting stuff that happens in WiFi depends deeply on possible state changes in the <code>wpa_supplicant</code> process.</p> +</div> + +<p>The implementation of the WiFi component is broken up into two files:</p> + +<dl> + <dt><a href="https://dxr.mozilla.org/mozilla-central/source/dom/wifi/DOMWifiManager.js" rel="custom">dom/wifi/DOMWifiManager.js</a></dt> + <dd>Implements the API that's exposed to web content, as defined in <code><a href="/de/docs/XPCOM_Interface_Referenz/nsIWifi.idl" title="">nsIWifi.idl</a></code>.</dd> + <dt><a href="https://dxr.mozilla.org/mozilla-central/source/dom/wifi/WifiWorker.js" rel="custom">dom/wifi/WifiWorker.js</a></dt> + <dd>Implements the state machine and the code that drives the supplicant.</dd> +</dl> + +<p>These two files communicate with one another using the <a href="https://developer.mozilla.org/en-US/docs/The_message_manager" title="/en-US/docs/The_message_manager">message manager</a>. The backend listens for messages requesting certain actions, such as "associate", and responds with a message when the requested action has been completed.</p> + +<p>The DOM side listens for the response methods as well as several event messages that indicate state changes and information updates.</p> + +<div class="note"> +<p><strong>Note:</strong> Any synchromous DOM APIs are implemented by caching data on that side of the pipe. Synchronous messages are avoided whenever possible.</p> +</div> + +<h3 id="WifiWorker.js">WifiWorker.js</h3> + +<p>This file implements the main logic behind the WiFi interface. It runs in the chrome process (in multi-process builds) and is instantiated by the SystemWorkerManager. The file is generally broken into two sections: a giant anonymous function and <code>WifiWorker</code> (and its prototype). The anonymous function ends up being the <code>WifiManager</code> by providing a local API, including notifications for events such as connection to the supplicant and scan results being available. In general, it contains little logic and lets its sole consumer control its actions while it simply responds with the requested information and controls the details of the connection with the supplicant.</p> + +<p>The <code>WifiWorker</code> object sits between the <code>WifiManager</code> and the DOM. It reacts to events and forwards them to the DOM; in turn, it receives requests from the DOM and performs the appropriate actions on the supplicant. It also maintains state information about the supplicant and what it needs to do next.</p> + +<h3 id="DOMWifiManager.js">DOMWifiManager.js</h3> + +<p>This implements the DOM API, transmitting messages back and forth between callers and the actual WiFi worker. There's very little logic involved.</p> + +<div class="note"> +<p><strong>Note:</strong> In order to avoid synchronous messages to the chrome process, the WiFi Manager does need to cache the state based on the received event.</p> +</div> + +<p>There's a single synchronous message, which is sent at the time the DOM API is instantiated, in order to get the current state of the supplicant.</p> + +<h3 id="DHCP">DHCP</h3> + +<p>DHCP and DNS are handled by <code>dhcpcd</code>, the standard Linux DHCP client. However, it's not able to react when the network connection is lost. Because of this, Firefox OS kills and restarts <code>dhcpcd</code> each time it connects to a given wireless network.</p> + +<p><code>dhcpcd</code> is also responsible for setting the default route; we call into the network manager to tell the kernel about DNS servers.</p> + +<h2 id="Network_Manager">Network Manager</h2> + +<p>The Network Manager configures network interfaces opened by the 3G data and WiFi components.</p> + +<div class="note"> +<p><strong>Note:</strong> This needs to be written.</p> +</div> + +<h2 id="Processes_and_threads">Processes and threads</h2> + +<p>Firefox OS uses POSIX threads to implement all application threads — this includes the main thread of each application as well as web workers and helper threads. Control groups are used to prioritize process and thread execution thus relying on the Linux kernel's completely fair scheduler. Depending on the status of a process we assign it to different control group. We've currently got 6 priority levels corresponding to 5 control groups:</p> + +<table class="standard-table"> + <caption>Process priority levels</caption> + <thead> + <tr> + <th scope="col">Priority</th> + <th scope="col">Control group</th> + <th scope="col">Used for</th> + </tr> + </thead> + <tbody> + <tr> + <td><code>MASTER</code></td> + <td> </td> + <td>Main b2g process</td> + </tr> + <tr> + <td><code>FOREGROUND_HIGH</code></td> + <td><code>apps/critical</code></td> + <td>Critical applications holding the <code>cpu</code> or <code>highpriority</code> wakelock; this is currently reserved for the clock and communications applications</td> + </tr> + <tr> + </tr> + <tr> + <td><code>FOREGROUND</code></td> + <td><code>apps</code></td> + <td>Foreground applications</td> + </tr> + <tr> + <td><code>FOREGROUND_KEYBOARD</code></td> + <td><code>apps</code></td> + <td>Keyboard application</td> + </tr> + <tr> + <td><code>BACKGROUND_PERCEIVABLE</code></td> + <td><code>apps/bg_perceivable</code></td> + <td>Background applications playing audio or holding the holding the <code>cpu</code> or <code>highpriority</code> wakelock and having at least a system message handler registered</td> + </tr> + <tr> + <td><code>BACKGROUND</code></td> + <td><code>apps/bg_non_interactive</code></td> + <td>All other applications running in the background</td> + </tr> + </tbody> +</table> + +<p>Some levels share the same control group, that's because those levels currently differ in the way they're treated by the <a href="https://developer.mozilla.org/en-US/Firefox_OS/Platform/Out_of_memory_management_on_Firefox_OS">out of memory killer</a>. All priorities can be adjusted at build time via preferences; the relevant entries can be found in the <a href="http://hg.mozilla.org/mozilla-central/file/54e8c6492dc4/b2g/app/b2g.js#l610"><code>b2g/app/b2g.js</code></a> file.</p> + +<p>The following control groups are currently used:</p> + +<table class="standard-table"> + <caption>Control groups</caption> + <thead> + <tr> + <th scope="col">Path</th> + <th scope="col">CPU allocation</th> + <th scope="col">Description</th> + </tr> + </thead> + <tbody> + <tr> + <td> </td> + <td>50% of total CPU time</td> + <td>Root control group reserved for the main b2g process and system daemons</td> + </tr> + <tr> + <td><code>apps</code></td> + <td>50% of total CPU time</td> + <td>Regular applications</td> + </tr> + <tr> + <td><code>apps/critical</code></td> + <td>95% of <code>apps</code></td> + <td>Critical applications</td> + </tr> + <tr> + <td><code>apps/bg_perceivable</code></td> + <td>10% of <code>apps</code></td> + <td>Perceivable background applications</td> + </tr> + <tr> + <td><code>apps/bg_non_interactive</code></td> + <td>5% of <code>apps</code></td> + <td>Background applications</td> + </tr> + </tbody> +</table> + +<div class="note"> +<p><strong>Note</strong>: for more information on the out-of-memory killer, and how Firefox OS manages low memory situations, read <a href="https://developer.mozilla.org/en-US/Firefox_OS/Platform/Out_of_memory_management_on_Firefox_OS">Out of memory management on Firefox OS</a>.</p> +</div> + +<p>Within a process the main thread inherits the "nice value" of the process whilst web worker threads are given a "nice value" that is one point higher than the main thread thus running at lower priority. This is done in order to prevent CPU-intensive workers from excessively slowing down the main thread. All threads of an application are currently assigned to the same control group. Process priorities are changed whenever a major event happens such as an application being sent into the background or foreground, a new application starting up or an existing application grabbing a CPU wakelock.</p> + +<div class="note"> +<p><strong>Note:</strong> cgroups support on ICS devices is currently broken due to a kernel bug.</p> +</div> diff --git a/files/de/archive/b2g_os/platform/index.html b/files/de/archive/b2g_os/platform/index.html new file mode 100644 index 0000000000..db8c4e9960 --- /dev/null +++ b/files/de/archive/b2g_os/platform/index.html @@ -0,0 +1,81 @@ +--- +title: Firefox OS Plattform +slug: Archive/B2G_OS/Platform +tags: + - Architektur + - Firefox OS + - Plattform + - Übersicht +translation_of: Archive/B2G_OS/Platform +--- +<p>Die Firefox OS Plattform besteht aus vielen Komponenten. Du musst seine Architektur nicht verstehen, um Apps für Firefox OS zu entwickeln. Falls Du aber an der Plattform selbst oder an ihrer Portierung mitentwickelst oder einfach nur neugierig bist, dann könnte diese Dokumentation interessant für Dich sein.</p> + +<table class="topicpage-table"> + <tbody> + <tr> + <td> + <h2 class="Documentation" id="Documentation" name="Documentation">Dokumentationen zur Firefox OS Plattform</h2> + + <dl> + <dt><a href="/de/docs/Mozilla/Firefox_OS/Introduction" title="en-US/docs/Mozilla/Firefox_OS/Introduction">Firefox OS Architektur: Überblick</a></dt> + <dd>Ein Überblick über die interne Struktur von Firefox OS; vor allem für diejenigen interessant, die an der Plattform oder ihrer Portierung mitentwickeln.</dd> + <dt><a href="/de/docs/Mozilla/Firefox_OS/Building_and_installing_Firefox_OS" title="en-US/docs/Mozilla/Firefox_OS/Building and installing Boot to Gecko">Firefox OS Architektur: Apps</a></dt> + <dd>Ein Überblick über das Anwendungs-Modell von Firefox OS.</dd> + <dt><a href="/de/docs/Mozilla/Firefox_OS/Platform/Gaia" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Gaia">Gaia</a></dt> + <dd>Dokumentation über Gaia, die Benutzeroberfläche von Firefox OS Geräten. Gaia ist eine Web-Anwendung, die auf der Firefox OS Betriebssystem-Schicht läuft.</dd> + <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Gonk" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Gonk">Gonk</a></dt> + <dd>Dokumentation über Gonk, die Betriebssystem-Schicht unterhalb von Gaia. Gonk besteht aus einem Linux Kernel und einer Hardware-Abstraktionsschicht, mit der Gecko kommuniziert.</dd> + <dt><a href="/de/docs/Mozilla/Gecko" title="/en-US/docs/Mozilla/Gecko">Gecko</a></dt> + <dd>Gecko ist die Ebene im Firefox OS, die dieselben offenen Web Standard-Implementierungen bereit stellt wie sie auch von Firefox, Thunderbird und vielen anderen Anwendungen genutzt werden.</dd> + <dt><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Security" title="/en-US/docs/Mozilla/Firefox_OS/Security"> Sicherheit</a></dt> + <dd>Dokumentation über die Sicherheit in Firefox OS; dies beinhaltet alle Themen rund um die Sicherheit von Firefox OS Geräten: für die App-Entwicklung, für die Integration von Geräten in Netzwerke und so weiter.</dd> + <dt><a href="https://developer.mozilla.org/en-US/Firefox_OS/Debugging/Out_of_memory_management_on_Firefox_OS">Speicherengpässe in Firefox OS</a></dt> + <dd>Dieser Artikel erläutert wie Firefox OS mit Hilfe des "low memory killers" und der "low memory notifications" mit Speicherengpässen umgeht.</dd> + <dt><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Platform/Feature_support_chart" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Feature_support_chart">Feature Liste</a></dt> + <dd>Eine Liste mit den verfügbaren Features pro Firefox OS Release.</dd> + <dt><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Platform/Settings_list" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Settings_list">Firefox OS Einstellungen</a></dt> + <dd>Eine Liste allgemeiner Einstellungen, die mit dem <a href="https://developer.mozilla.org/en-US/docs/WebAPI/Settings" title="/en-US/docs/WebAPI/Settings">Settings</a> API vorgenommen werden können.</dd> + </dl> + + <p><span class="alllinks"><a href="https://developer.mozilla.org/en-US/docs/tag/B2G" title="/en-US/docs/tag/B2G">Alle anzeigen...</a></span></p> + </td> + <td> + <h2 class="Community" id="Community" name="Community">Wir helfen Dir</h2> + + <p>Wenn Du mit Firefox OS arbeitest oder Apps für Firefox OS Geräte entwickelst, dann kann Dir unsere große MDN-Geimeinschaft bei Fragen und Problemen helfen!</p> + + <ul> + <li>Besuche das Boot to Gecko Projekt Forum: {{ DiscussionList("dev-b2g", "mozilla.dev.b2g") }}</li> + </ul> + + <ul> + <li>Stell Deine Fragen in Mozilla's Boot to Gecko IRC Channel: <a class="link-irc" href="irc://irc.mozilla.org/b2g" title="irc://irc.mozilla.org/b2g">#b2g</a></li> + </ul> + + <p><span class="alllinks"><a class="external external-icon" href="http://www.catb.org/%7Eesr/faqs/smart-questions.html" title="http://www.catb.org/~esr/faqs/smart-questions.html">Bitte vergiss nicht die <em>netiquette</em>...</a></span></p> + + <p> </p> + + + <h2 class="Related_Topics" id="Related_Topics" name="Related_Topics">Verwandte Artikel</h2> + + <ul> + <li><a href="/de/docs/Mobile" title="en-US/docs/Mobile">Mobil</a></li> + <li><a href="/de/docs/HTML" title="en-US/docs/HTML">HTML</a></li> + <li><a href="/de/docs/CSS" title="en-US/docs/CSS">CSS</a></li> + <li><a href="/de/docs/JavaScript" title="en-US/docs/JavaScript">JavaScript</a></li> + </ul> + + <h2 class="Tools" id="Quellen">Quellen</h2> + + <ul> + <li><a class="link-https" href="https://wiki.mozilla.org/B2G/FAQ" title="B2G/FAQ">Mozilla wiki FAQ</a></li> + <li><a class="link-https" href="https://wiki.mozilla.org/B2G/Schedule_Roadmap" title="https://wiki.mozilla.org/B2G/Schedule_Roadmap">Roadmap</a></li> + <li><a href="/en-US/docs/Mozilla/Firefox_OS/Feature_support_chart" title="/en-US/docs/Mozilla/Firefox_OS/Feature_support_chart">Feature Liste</a></li> + </ul> + </td> + </tr> + </tbody> +</table> + +<p> </p> diff --git a/files/de/archive/b2g_os/quickstart/deine_erste_app/index.html b/files/de/archive/b2g_os/quickstart/deine_erste_app/index.html new file mode 100644 index 0000000000..abd858245b --- /dev/null +++ b/files/de/archive/b2g_os/quickstart/deine_erste_app/index.html @@ -0,0 +1,339 @@ +--- +title: Deine erste App +slug: Archive/B2G_OS/Quickstart/deine_erste_app +tags: + - Anfänger + - Apps + - FirefoxOS + - Guide +translation_of: Archive/B2G_OS/Quickstart/Your_first_app +--- +<div class="note"> + <p><span id="result_box" lang="de"><span class="hps"><strong>Hinweis</strong>: Das</span> <span class="hps atn">Quickstart-</span><span>Abschnitt</span> <span class="hps">wurde mit einem neuen</span><span>, fokussierter</span> <span class="hps">Quick</span> <span class="hps">Artikel, der</span> <span class="hps">alle bisherigen</span> <span class="hps">Artikel</span> <span class="hps">ersetzt</span> <span class="hps">aktualisiert.</span> <span class="hps">Wir</span> <span class="hps">hoffen, dass Sie</span> <span class="hps">diese</span> <span class="hps">nützlicher</span><span class="hps"> finden, und</span> <span class="hps">eine schnellere</span> <span class="hps">Lernerfahrung</span> <span class="hps">als die ältere</span>n <span class="hps">Artikel haben</span><span>.</span></span></p> +</div> +<article class="brush: js"> + <div class="summary"> + <p>Offene Web-Anwendungen (Web-Entwickler) geben, was sie seit Jahren gewünscht haben: ein Cross-Plattform-Umgebung, um installierbare Apps mit nur HTML, CSS und JavaScript erstellen gewidmet - mit Firefox OS, der erste dedizierte Open Web App-Plattform.</p> + <div class="mttextarea" dir="ltr" id="TranslationOutput"> + <div> + <span id="Dst[0][0:3:0:5]">Dieser</span><span> </span><span id="Dst[0][5:9:7:15]">Leitfaden</span><span> </span><span id="Dst[0][11:14:17:20]">soll</span><span> </span><span id="Dst[0][23:25:22:24]">Sie</span><span> </span><span id="Dst[0][27:40:26:44]">unternehmungslustig</span><span> </span><span id="Dst[0][42:48:46:52]">schnell</span><span> </span><span id="Dst[0][50:53:54:56]">mit</span><span> </span><span id="Dst[0][55:55:58:62]">einer</span><span> </span><span id="Dst[0][57:61:64:76]">grundlegenden</span><span> </span><span id="Dst[0][63:74:78:88]">Architektur</span><span> </span><span id="Dst[0][76:78:90:92]">und</span><span> </span><span id="Dst[0][86:97:94:104]">Anweisungen</span><span> zu </span><span id="Dst[0][80:84:109:113]">bauen <font lang="de">inspirieren</font></span><span>, </span><span id="Dst[0][99:100:116:117]">so</span><span> </span><span id="Dst[0][102:105:119:122]">dass</span><span> </span><span id="Dst[0][107:109:124:126]">Sie</span><span> </span><span id="Dst[0][122:124:128:130]">die</span><span> </span><span id="Dst[0][126:129:132:138]">nächste</span><span> </span><span id="Dst[0][131:135:140:144]">große</span><span> </span><span id="Dst[0][137:139:146:148]">app</span><span> </span><span id="Dst[0][115:120:150:158]">erstellen</span><span> </span><span id="Dst[0][111:113:160:165]">können</span><span>!</span></div> + </div> + </div> + <p>Wenn Sie dieser Anleitung folgen möchten, können Sie unsere <a href="https://github.com/chrisdavidmills/mdn-app-template">Schnellstart-app-Vorlage</a> herunterladen. Finden Sie mehr heraus was unser <a href="/en-US/docs/Project:MDN/Style_guide/Sample_app_coding_guidelines#Apps_template">Apps-Vorlage-Guide</a> enthält.</p> + <div class="mttextarea" dir="ltr" id="TranslationOutput"> + <h2 id="div[0]" name="div[0]"><span id="Dst[0][0:2:0:2]">App</span><span>-</span><span id="Dst[0][4:12:4:11]">Struktur</span></h2> + <p> </p> + </div> + <div class="mttextarea" dir="ltr" id="TranslationOutput"> + <h3 id="div[0]" name="div[0]"><span id="Dst[0][0:7:0:7]">Verpackt</span><span> vs. </span><span id="Dst[0][13:18:13:21]">gehostete</span><span> </span><span id="Dst[0][20:23:23:33]">Anwendungen</span></h3> + </div> + <p>Es gibt zwei Arten der offenen Web-apps : <code>verpackt</code> und <code>gehostet</code>. Verpackte apps sind im Wesentlichen die Zip-Dateien, alle Anwendung Anlagewerten: HTML, CSS, JavaScript, Bilder, Manifest, etc.. Gehostete Anwendungen laufen von einem Server in einer bestimmten Domain, genau wie eine standard-Website. Beide app-Arten benötigen ein gültiges Manifest. Wenn Ihre app auf dem Firefox-Marktplatz kommt, wird Ihre Anwendung als Zip-Datei hochladen oder geben Sie die URL an, wo Ihre gehostete Anwendung ist.</p> + <div style="width: 480px; margin: 0 auto;"> + <p><iframe frameborder="0" height="270" src="https://www.youtube.com/embed/Q7x-B13y33Q/?feature=player_detailpage" width="480"></iframe></p> + <div style=""> + <p>In Partnerschaft mit Treehouse erstellt : <a class="button" href="http://teamtreehouse.com/?cid=1154">Zu die Treehouse Seite</a></p> + </div> + </div> + <p>Für die Zwecke dieses Leitfadens erstellen Sie eine gehostete app die werden dann an Ihre Adresse "localhost" geschickt. Sobald Ihre app bereit ist um auf die Liste des Firefox-Marktplatz zukommen, können Sie die Entscheidung, als verpackte app oder als gehostete Anwendung zu starten.</p> + <h3 id="Manifeste_App">Manifeste App</h3> + <p>Alle Firefox-app erfordern eine <a href="/en-US/docs/Web/Apps/Manifest">manifest.webapp</a> -Datei im Stammverzeichnis der app. Die manifest.webapp -Datei enthält wichtige Informationen über die app wie Version, Name, Beschreibung, Symbolspeicherort, Locale Zeichenfolgen, Domains, wo die app aus, installiert werden kann, und vieles mehr. Nur der Name und die Beschreibung sind erforderlich. Das einfache Manifest innerhalb der app-Vorlage enthalten ist, die der folgenden ähnelt:</p> + <pre class="brush: js">{ + "version": "0.1", + "name": "Open Web App", + "description": "Die eeindruckende Open Web App", + "launch_path": "/app-template/index.html", + "icons": { + "16": "/app-template/app-icons/icon-16.png", + "48": "/app-template/app-icons/icon-48.png", + "128": "/app-template/app-icons/icon-128.png" + }, + "developer": { + "name": "Ihr Name", + "url": "http://ihrebeeindruckendeapp.eu" + }, + "locales": { + "es": { + "description": "Su nueva aplicación impresionante Open Web", + "developer": { + "url": "http://ihrebeeindruckendeapp.eu" + } + }, + "it": { + "description": "La tua nuova fantastica Open Web App", + "developer": { + "url": "http://ihrebeeindruckendeapp.eu" + } + } + }, + "default_locale": "de" +}</pre> + <div style="width: 480px; margin: 0 auto;"> + <p><iframe frameborder="0" height="270" src="https://www.youtube.com/embed/dgAUgHQOm8M#t/?feature=player_detailpage" width="480"></iframe></p> + <div class="video-caption"> + <p>In Partnerschaft mit Treehouse erstellt : <a class="button" href="http://teamtreehouse.com/?cid=1154">Zu die Treehouse Seite</a></p> + </div> + </div> + <p> </p> + <p>Eine grundlegende Manifest ist alles, was Sie brauchen um loszulegen. Lesen Sie mehr über <a href="/en-US/docs/Web/Apps/Manifest">Manifeste Apps</a>.</p> + <h2 id="App_Layout_Design">App Layout & Design</h2> + <p>Das Design ist zunehmend wichtig, da die Bildschirmauflösungen standard auf verschiedenen Geräten geworden ist. Selbst wenn das Hauptziel Ihrer App mobile Plattformen wie Firefox-OS ist, haben andere Geräte wahrscheinlich auch darauf zugriff. Mit <a href="//developer.mozilla.org/docs/CSS/Media_queries">CSS Media Queries</a> können Sie das Layout des Gerät anpassen, wie in diesem CSS-Beispiel gezeigt:</p> + <div class="mttextarea" dir="ltr" id="TranslationOutput"> + <div> + </div> + </div> + <pre class="brush: css"> +/* Im folgenden Text werden Beispiele von Verschiedenen CSS Media Queries gezeigt */ + + /* Grundlegende Desktop/Bildschirm breite */ +@media only screen and (min-width : 1224px) { + /* style */ +} + +/* iPhone breite */ +@media + only screen and (-webkit-min-device-pixel-ratio : 1.5), + only screen and (min-device-pixel-ratio : 1.5) { + /* styles */ +} + +/* Geräteeinstellungen auf verschiedenen Ausrichtungen */ +@media screen and (orientation:portrait) { + /* styles */ +} +@media screen and (orientation:landscape) { + /* styles */ +}</pre> + <p>Es gibt viele JavaScript und CSS-Frameworks für responsive Design und mobile app Entwicklung (<a href="http://twitter.github.com/bootstrap">Bootstrap</a>, etc.) Wählen Sie die Framework(s), die am besten zu Ihrer app-Entwicklung passen.</p> + <h2 id="Web_APIs">Web APIs</h2> + <p>JavaScript-APIs werden erstellt und so schnell wie Geräte erweitert. Mozillas <a href="https://wiki.mozilla.org/WebAPI">WebAPI</a> Aufwand bringt Dutzende von mobilen Standardfunktionen von JavaScript-APIs.<span id="Dst[0][0:0:0:3]"> Eine</span><span> </span><span id="Dst[0][2:5:5:9]">Liste</span><span> </span><span id="Dst[0][7:8:11:13]">der</span><span> </span><span id="Dst[0][10:15:15:20]">Geräte</span><span>-</span><span id="Dst[0][17:23:22:28]">Support</span><span> </span><span id="Dst[0][25:27:30:32]">und</span><span> </span><span id="Dst[0][29:34:34:39]">Status</span><span> </span><span id="Dst[0][36:47:41:45]">steht</span><span> </span><span id="Dst[0][49:50:47:49]">auf</span><span> </span><span id="Dst[0][52:54:51:53]">der</span><span> </span><span id="Dst[0][63:66:55:59]">Seite</span><span> </span><span id="Dst[0][56:61:61:66]">des <a href="https://wiki.mozilla.org/WebAPI">WebAPI</a></span><span> zur Verfügung</span><span>.</span><span> </span><span id="Dst[0][69:78:83:92]">JavaScript</span><span>-</span><span id="Dst[0][80:86:94:100]">Feature</span><span>-</span><span id="Dst[0][88:96:102:110]">Erkennung</span><span> </span><span id="Dst[0][98:99:112:114]">ist</span><span> </span><span id="Dst[0][101:105:116:125]">immer noch</span><span> </span><span id="Dst[0][107:109:127:129]">die</span><span> </span><span id="Dst[0][111:114:131:135]">beste</span><span> </span><span id="Dst[0][116:123:137:142]">Praxis</span><span>,</span><span> </span><span id="Dst[0][126:127:145:147]">wie</span><span> </span><span id="Dst[0][135:136:149:150]">im</span><span> </span><span id="Dst[0][142:150:152:160]">folgenden</span><span> </span><span id="Dst[0][152:158:162:169]">Beispiel</span><span> </span><span id="Dst[0][129:133:171:177]">gezeigt</span><span>:</span>// Wenn dieses Gerät das Vibrieren API unterstützt</p> + <pre class="brush: js">// Wenn dieses Gerät Vibration API unterstützt ... + +if('vibrate' in navigator) { + // ... Vibration in Sekunden + navigator.vibrate(1000); +}</pre> + <p>Im folgenden Beispiel wird das Anzeigeformat von einer <code><div></code> basierend auf die Änderungen in der Ladezustand des Geräts geändert :</p> + <pre class="brush: java">// Erstellen Sie die Batterie Indiktator Hörer +(function() { + var battery = navigator.battery || navigator.mozBattery || navigator.webkitBattery, + indicator, indicatorPercentage; + + if(battery) { + indicator = document.getElementById('indicator'), + indicatorPercentage = document.getElementById('indicator-percentage'); + + // Zuhörer für Änderung + battery.addEventListener('chargingchange', updateBattery); + battery.addEventListener('levelchange', updateBattery); + + // Aktualisiert sofort + updateBattery(); + } + + function updateBattery() { + // Prozent aktualisieren Breite und Text + var level = (battery.level * 100) + '%'; + indicatorPercentage.style.width = level; + indicatorPercentage.innerHTML = 'Battery: ' + level; + // Ladestatus Updaten + indicator.className = battery.charging ? 'charging' : ''; + } +})();</pre> + <p>Im Beispiel oben sobald Sie bestätigen, dass die <a href="https://developer.mozilla.org/en-US/docs/DOM/window.navigator.battery">Batterie-API</a> unterstützt wird, können Sie Ereignis-Listener für Chargingchange und Levelchange um das Element Anzeige aktualisieren hinzufügen. Versuchen Sie, die folgenden auf die Quickstart-Vorlage, und sehen Sie, wenn Sie es funktioniert.</p> + <div class="mttextarea" dir="ltr" id="TranslationOutput"> + <div> + <span class="dhighlight" id="Dst[0][0:4:0:13]">Überprüfen Sie</span><span> </span><span id="Dst[0][6:8:15:17]">die</span><span> </span><a href="https://wiki.mozilla.org/WebAPI"><span id="Dst[0][10:15:19:24]">WebAPI</span></a><span>-</span><span id="Dst[0][17:20:26:30]">Seite</span><span> </span><span id="Dst[0][22:31:32:41]">regelmäßig</span><span>, </span><span id="Dst[0][33:34:44:45]">um</span><span> sich </span><span id="Dst[0][52:55:52:54]">mit</span><span> </span><span id="Dst[0][57:62:56:60]">Gerät</span><span> </span><span id="Dst[0][64:66:62:64]">API</span><span> </span><span id="Dst[0][68:75:66:71]">Status</span><span> </span><span id="Dst[0][41:42:73:79]">aktuell</span><span> </span><span id="Dst[0][44:45:81:82]">zu</span><span> </span><span id="Dst[0][36:39:84:89]">halten</span><span>.</span></div> + <div> + </div> + </div> + <div class="mttextarea" dir="ltr" id="TranslationOutput"> + <h2 id="div[0]" name="div[0]"><span id="Dst[0][8:10:0:2]">API</span><span>-</span><span class="dhighlight" id="Dst[0][12:24:4:13]">Funktionen</span> <span id="Dst[0][0:6:18:29]">installieren</span></h2> + <div> + </div> + </div> + <p>In unserem Quickstart-app Beispielvorlage, haben wir eine installierungs-Schaltfläche, die Sie anklicken können, wenn Sie die app als standard website haben möchten ,<br> + und diese Website auf Firefox-OS als app zu installieren. Das Knopf-Markup ist nichts Besonderes:</p> + <pre class="brush: html"><button id="install-btn">App Installieren</button></pre> + <div class="mttextarea" dir="ltr" id="TranslationOutput"> + <div> + <span id="Dst[0][0:3:0:4]">Diese</span><span> </span><span id="Dst[0][5:12:6:21]">Tastenfunktionen</span><span> </span><span id="Dst[0][28:29:23:26]">wird</span><span> </span><span id="Dst[0][43:47:28:35]">mithilfe</span><span> </span><span id="Dst[0][49:51:37:39]">der</span><span> </span><span id="Dst[0][53:59:41:52]">installieren</span><span>-</span><span id="Dst[0][61:63:54:56]">API</span><span> </span><span id="Dst[0][31:41:58:70]">implementiert</span><span> </span><span id="Dst[0][65:68:72:77]">(siehe</span><span> </span><span id="Dst[0][70:81:79:90]">install.js):</span></div> + <div> + </div> + </div> + <pre class="brush: js">var mainifest_url = location.href + 'manifest.webapp'; + +function install(ev) { + ev.preventDefault(); +//Manifest URL Definieren +// App Installieren + var installLocFind = navigator.mozApps.install(manifest_url); + installLocFind.onsuccess = function(data) { + // Wenn die App Installiert ist + }; + installLocFind.onerror = function() { + // App ist nicht Installiert + // installapp.error.name + alert(installLocFind.error.name); + }; +}; + +// Eine Verweis auf die Schaltfläche und rufen Sie install() auf Klick wenn die App nicht Installiert ist. Wenn sie installiert ist ist die Schaltfläche ausgeblendet. +var button = document.getElementById('install-btn'); + +var installCheck = navigator.mozApps.checkInstalled(manifest_url); + +installCheck.onsuccess = function() { + if(installCheck.result) { + button.style.display = "none"; + } else { + button.addEventListener('click', install, false); + }; +}; +</pre> + <p>Gehen Sie kurz alles durch was vor sich geht :</p> + <ol> + <li> + <div> + <span id="Dst[1][0:1:0:2]">Wir</span><span> </span><span id="Dst[1][3:5:4:11]">erhalten</span><span> </span><span id="Dst[1][7:7:13:17]">einen</span><span> </span><span id="Dst[1][9:17:19:25]">Verweis</span><span> </span><span id="Dst[1][19:20:27:29]">auf</span><span> </span><span id="Dst[1][22:24:31:33]">die</span><span> Schaltfläche "</span><span id="Dst[1][26:32:49:60]">installieren</span><span id="Dst[1][34:39:61:61]">"</span><span> </span><span id="Dst[1][41:43:63:65]">und</span><span> </span><span id="Dst[1][45:49:67:75]">speichern</span><span> Sie </span><span id="Dst[1][51:52:81:83]">sie</span><span> </span><span id="Dst[1][54:55:85:86]">in</span><span> </span><span id="Dst[1][57:59:88:90]">die</span><span> Schaltfläche "</span><span id="Dst[1][61:68:106:114]">Variablen</span><span id="Dst[1][70:75:115:115]">"</span><span>.</span></div> + </li> + <li>Wir verwenden <code>navigator.mozApps.checkInstalled</code> um zu prüfen, ob die App definiert durch das Manifest im <code>http://people.mozilla.com/~cmills/location-finder/manifest.webapp</code> bereits auf dem Gerät installiert ist. Dieser Text wird als Variable <code>installCheck</code> gespeichert.</li> + <li>Wenn der Test erfolgreich durchgeführt wird, dann wird sein Success Ereignis ausgelöst, daher wird <code>installCheck.onsuccess = function() { ... }</code> ausgeführt.</li> + <li>Wenn die App bereits Installiert ist wird die Schaltfläche ausgeblendet.</li> + <li> + <div class="mttextarea" dir="ltr" id="TranslationOutput"> + <div class="mttextarea" dir="ltr" id="TranslationOutput"> + <div class="mttextarea" dir="ltr" id="TranslationOutput"> + <div> + <span id="Dst[0][0:1:0:3]">Wenn</span><span> </span><span id="Dst[0][3:5:5:7]">die</span><span> </span><span id="Dst[0][7:9:9:11]">app</span><span> nicht </span><span id="Dst[0][17:25:19:29]">installiert</span><span> </span><span id="Dst[0][11:15:31:33]">ist</span><span>,</span><span> </span><span id="Dst[0][31:33:36:40]">fügen</span><span> </span><span id="Dst[0][28:29:42:44]">wir</span><span> </span><span id="Dst[0][35:35:46:50]">einen</span><span> </span><span id="Dst[0][37:41:52:56]">Click</span><span>-</span><span id="Dst[0][43:47:58:65]">Ereignis</span><span>-</span><span id="Dst[0][49:56:67:74]">Listener</span><span> </span><span id="Dst[0][58:59:76:78]">zur</span><span> </span><span id="Dst[0][61:70:80:91]">Schaltfläche</span><span>,</span><span> </span><span id="Dst[0][73:74:94:100]">so dass</span><span> </span><span id="Dst[0][76:78:102:104]">die</span><span> </span><span id="Dst[0][90:97:106:113]">Funktion</span><span> </span><code><span id="Dst[0][80:88:115:123]">install()</span><span> </span></code><span id="Dst[0][102:104:125:134]">ausgeführt</span><span> </span><span id="Dst[0][99:100:136:139]">wird</span><span>, </span><span id="Dst[0][106:109:142:145]">wenn</span><span> </span><span id="Dst[0][111:113:147:149]">die</span><span> </span><span id="Dst[0][115:120:151:162]">Schaltfläche</span><span> </span><span id="Dst[0][125:131:164:171]">geklickt</span><span> </span><span id="Dst[0][122:123:173:176]">wird</span><span>.</span></div> + </div> + </div> + </div> + </li> + <li>Wenn die Schaltfläche angeklickt wird, und die Funktion <code>install() </code>ausgeführt wird, wird die Betriebsstätte für die manifest-Datei in eine Variable namens <code>manifest_url</code> und installieren dann die app unter Verwendung <code>navigator.mozApps.install(manifest_url)</code>, einen Verweis auf die Installation in der <code>InstallLocFind</code>-Variablen zu speichern. Sie werden bemerken, dass diese Installation auch Erfolg und Fehler-Ereignisse auslöst, damit Sie Aktionen abhängig ausführen können, ob die Installation erfolgreich oder nicht passiert ist.</li> + </ol> + <p>Vielleicht möchten Sie den <a href="/en-US/docs/Web/Apps/JavaScript_API">Umsetzung Stand der API</a> prüfen, wenn dann aber zuerst nach installierbare Webanwendungen.</p> + <div class="note"> + <div class="mttextarea" dir="ltr" id="TranslationOutput"> + <div> + <strong><span id="Dst[0][0:3:0:6]">Hinweis</span></strong><span>:</span><span> </span><span id="Dst[0][6:16:9:22]">Installierbare</span><span> </span><span id="Dst[0][18:21:24:29]">offene</span><span> </span><span id="Dst[0][23:25:31:33]">Web</span><span>-</span><span id="Dst[0][27:30:35:45]">Anwendungen</span><span> </span><span id="Dst[0][32:35:47:51]">haben</span><span> </span><span id="Dst[0][37:37:53:56]">eine</span><span> </span><span id="Dst[0][63:77:58:78]">Sicherheitsrichtlinie</span><span> </span><span id="Dst[0][39:45:80:88]">"einzelne</span><span> </span><span id="Dst[0][47:49:90:92]">app</span><span> </span><span id="Dst[0][51:53:94:96]">pro</span><span> </span><span id="Dst[0][55:60:98:106]">Herkunft"</span><span id="Dst[0][78:78:107:107]">;</span><span> </span><span id="Dst[0][80:88:109:121]">Grundsätzlich</span><span> </span><span id="Dst[0][95:99:123:134]">können Sie nicht</span><span> </span><span id="Dst[0][106:109:140:143]">mehr</span><span> </span><span id="Dst[0][111:114:145:147]">als</span><span> </span><span id="Dst[0][116:118:149:152]">eine</span><span> </span><span id="Dst[0][120:130:154:167]">installierbare</span><span> </span><span id="Dst[0][132:134:169:171]">app</span><span> </span><span id="Dst[0][136:138:173:175]">pro</span><span> </span><span id="Dst[0][140:145:177:184]">Herkunft</span><span> </span><span id="Dst[0][101:104:186:191]">hosten</span><span>.</span><span> </span><span id="Dst[0][148:151:194:197]">Dies</span><span> </span><span id="Dst[0][153:157:199:209]">vereinfacht</span><span> das </span><span id="Dst[0][159:165:215:220]">Testen</span><span> </span><span id="Dst[0][167:167:222:224]">ein</span><span> </span><span id="Dst[0][169:171:226:230]">wenig</span><span> </span><span id="Dst[0][173:183:232:244]">komplizierter</span><span>,</span><span> </span><span id="Dst[0][186:188:247:250]">aber</span><span> es </span><span id="Dst[0][190:198:252:255]">gibt</span><span> </span><span id="Dst[0][200:204:260:263]">noch</span><span> </span><span id="Dst[0][206:209:265:268]">Wege</span><span>, </span><span id="Dst[0][211:216:271:272]">um</span><span> </span><span id="Dst[0][218:221:274:279]">dieses</span><span>,</span><span> </span><span id="Dst[0][224:230:282:284]">wie</span><span> das </span><span id="Dst[0][232:239:290:302]">Erstellen von</span><span> </span><span id="Dst[0][241:261:304:327]">verschiedenen Subdomains</span><span> </span><span id="Dst[0][263:265:329:331]">für</span><span> </span><span id="Dst[0][267:270:333:336]">apps</span><span>,</span><span> </span><span id="Dst[0][273:279:339:344]">testen</span><span> </span><span id="Dst[0][281:284:346:348]">sie</span><span> </span><span id="Dst[0][286:290:350:352]">mit</span><span> </span><span id="Dst[0][292:294:354:356]">der</span><span> </span><span id="Dst[0][296:302:358:364]">Firefox</span><span>-</span><span id="Dst[0][304:305:366:367]">OS</span><span>-</span><span id="Dst[0][307:315:369:377]">Simulator</span><span>,</span><span> </span><span id="Dst[0][318:319:380:383]">oder</span><span> </span><span id="Dst[0][321:327:385:390]">testen</span><span> </span><span id="Dst[0][329:331:392:394]">die</span><span> </span><span id="Dst[0][333:339:396:402]">Install</span><span>-</span><span id="Dst[0][341:353:404:417]">Funktionalität</span><span> </span><span id="Dst[0][355:356:419:421]">auf</span><span> </span><span id="Dst[0][358:364:423:429]">Firefox</span><span> </span><span id="Dst[0][366:380:431:448]">Aurora/nächtliche,</span><span> </span><span id="Dst[0][382:386:450:456]">welches</span><span> </span><span id="Dst[0][395:397:458:462]">Ihnen</span><span> </span><span id="Dst[0][388:393:464:470]">erlaubt</span><span> </span><span id="Dst[0][399:400:472:473]">zu</span><span> </span><span id="Dst[0][410:420:475:488]">installierbare</span><span> </span><span id="Dst[0][422:429:490:503]">Webanwendungen</span><span> </span><span id="Dst[0][431:432:505:507]">auf</span><span> </span><span id="Dst[0][434:436:509:511]">dem</span><span> </span><span id="Dst[0][438:444:513:519]">Desktop</span><span> zu </span><span id="Dst[0][402:408:524:535]">installieren</span><span>.</span><span> </span><span id="Dst[0][447:449:538:542]">Siehe</span><span> </span><a href="/en-US/docs/Web/Apps/FAQs/About_app_manifests"><span id="Dst[0][451:454:544:547]">FAQs</span><span> </span><span id="Dst[0][456:460:549:552]">über</span><span> </span><span id="Dst[0][462:465:554:557]">apps</span><span> </span><span id="Dst[0][467:475:559:567]">Manifeste</span></a><span> </span><span id="Dst[0][477:479:569:571]">für</span><span> </span><span id="Dst[0][481:484:573:579]">weitere</span><span> </span><span id="Dst[0][486:496:581:593]">Informationen</span><span> </span><span id="Dst[0][498:499:595:597]">zur</span><span> </span><span id="Dst[0][501:507:599:606]">Herkunft</span><span>.</span></div> + </div> + </div> + <div class="mttextarea" dir="ltr" id="TranslationOutput"> + <h3 id="div[0]" name="div[0]"><span id="Dst[0][0:4:0:4]">WebRT</span><span> </span><span id="Dst[0][6:9:6:9]">APIs</span><span> </span><span id="Dst[0][11:28:11:11]">(</span><span id="Dst[0][30:34:12:15]">APIs</span><span> auf der </span><span id="Dst[0][11:28:25:33]">Grundlage</span><span> von </span><span id="Dst[0][11:28:39:52]">Berechtigungen</span><span id="Dst[0][30:34:53:53]">)</span></h3> + </div> + <div class="mttextarea" dir="ltr" id="TranslationOutput"> + <div> + <span id="Dst[0][0:4:0:1]">Es</span><span> </span><span id="Dst[0][6:8:3:6]">gibt</span><span> </span><span id="Dst[0][10:10:8:11]">eine</span><span> </span><span id="Dst[0][12:17:13:17]">Reihe</span><span> </span><span id="Dst[0][19:20:19:21]">von</span><span> </span><span id="Dst[0][22:28:23:29]">WebAPIs</span><span id="Dst[0][30:33:30:34]">, </span><span id="Dst[0][49:51:43:46]">aber</span><span> die </span><span id="Dst[0][53:59:48:56]">benötigen</span><span> </span><span id="Dst[0][61:71:58:71]">spezielle Berechtigungen</span><span> </span><span id="Dst[0][73:75:73:75]">für</span><span> </span><span id="Dst[0][77:80:77:82]">dieses</span><span> </span><span id="Dst[0][91:97:94:100]">Feature</span><span> </span><span id="Dst[0][105:111:102:110]">aktiviert</span><span> </span><span id="Dst[0][102:103:112:117]">werden</span><span>.</span><span> </span><span id="Dst[0][114:117:120:123]">Apps</span><span> </span><span id="Dst[0][119:121:125:130]">können</span><span> </span><span id="Dst[0][123:130:132:143]">registrieren</span><span> </span><span id="Dst[0][132:150:145:170]">Berechtigungsanforderungen</span><span> </span><span id="Dst[0][152:157:172:180]">innerhalb</span><span> </span><span id="Dst[0][159:161:182:184]">der</span><span> </span><code><span id="Dst[0][163:177:186:200]">manifest.webapp</span></code><span>-</span><span id="Dst[0][179:182:202:206]">Datei</span><span> </span><span id="Dst[0][184:187:208:210]">wie</span><span> </span><span id="Dst[0][189:190:212:216]">folgt</span><span>:</span></div> + <div> + </div> + </div> + <pre class="brush: js">// Neuer Key im Manifest : "permissions" +// Anforderung der Zugriffe auf eine belibige Anzahl von APIs +// Hier bitten wir um die berechtigung für die SystemXHR API +"permissions": { + "systemXHR": {} +}</pre> + <div class="mttextarea" dir="ltr" id="TranslationOutput"> + <div> + <span id="Dst[0][0:2:0:2]">Die</span><span> </span><span id="Dst[0][4:8:4:7]">drei</span><span> </span><span id="Dst[0][10:15:9:14]">Stufen</span><span> </span><span id="Dst[0][17:18:16:18]">der</span><span> </span><span id="Dst[0][20:29:20:31]">Berechtigung</span><span> </span><span id="Dst[0][31:33:33:36]">sind</span><span> </span><span id="Dst[0][35:36:38:40]">wie</span><span> </span><span id="Dst[0][38:44:42:46]">folgt</span><span>:</span></div> + <div> + </div> + </div> + <ul> + <li> + <div class="mttextarea" dir="ltr" id="TranslationOutput"> + <div> + <span id="Dst[0][0:5:0:5]">Normal</span><span> </span><span id="Dst[0][7:7:7:7]">—</span><span> </span><span id="Dst[0][9:12:9:12]">APIs</span><span id="Dst[0][14:17:13:17]">, die</span><span> </span><span id="Dst[0][30:32:19:22]">jede</span><span> </span><span id="Dst[0][34:37:24:26]">Art</span><span> </span><span id="Dst[0][39:40:28:30]">von</span><span> </span><span id="Dst[0][42:48:32:41]">speziellen</span><span> </span><span id="Dst[0][50:67:43:64]">Zugriffsberechtigungen</span><span> </span><span id="Dst[0][19:23:66:70]">nicht</span><span> </span><span id="Dst[0][25:28:72:79]">brauchen</span><span>.</span></div> + </div> + </li> + <li> + <div class="mttextarea" dir="ltr" id="TranslationOutput"> + <div> + <span id="Dst[0][0:9:0:12]">Privilegierte</span><span> </span><span id="Dst[0][11:11:14:14]">—</span><span> </span><span id="Dst[0][13:16:16:19]">APIs</span><span> </span><span id="Dst[0][28:29:21:23]">für</span><span> </span><span id="Dst[0][31:40:25:34]">Entwickler</span><span> </span><span id="Dst[0][49:50:36:37]">in</span><span> </span><span id="Dst[0][52:56:39:43]">ihren</span><span> </span><span id="Dst[0][58:69:45:55]">Anwendungen</span><span> zu </span><span id="Dst[0][45:47:60:68]">verwenden</span><span>, </span><span id="Dst[0][72:81:71:77]">solange</span><span> </span><span id="Dst[0][83:86:79:81]">sie</span><span> </span><span id="Dst[0][111:112:83:84]">in</span><span> </span><span id="Dst[0][114:116:86:88]">der</span><span> </span><span id="Dst[0][118:120:90:92]">app</span><span> Zugriffsberechtigungen </span><span id="Dst[0][18:26:117:125]">verfügbar</span><span> </span><span id="Dst[0][122:135:127:141]">Manifestdateien</span><span> </span><span id="Dst[0][138:140:143:145]">und</span><span> </span><span id="Dst[0][142:151:147:155]">verteilen</span><span> </span><span id="Dst[0][153:156:157:161]">diese</span><span> </span><span id="Dst[0][158:164:163:167]">durch</span><span> </span><span id="Dst[0][166:166:169:172]">eine</span><span> </span><span id="Dst[0][168:174:174:190]">vertrauenswürdige</span><span> </span><span id="Dst[0][176:181:192:197]">Quelle</span><span>.</span></div> + </div> + </li> + <li> + <div class="mttextarea" dir="ltr" id="TranslationOutput"> + <div> + <span class="dhighlight" id="Dst[0][0:8:0:12]">Zertifizierte</span><span> </span><span id="Dst[0][10:10:14:14]">—</span><span> </span><span id="Dst[0][12:15:16:19]">APIs</span><span id="Dst[0][17:20:20:24]">, die</span><span> </span><span id="Dst[0][30:37:26:33]">wichtige</span><span> </span><span id="Dst[0][39:47:35:44]">Funktionen</span><span> </span><span id="Dst[0][49:50:46:48]">auf</span><span> </span><span id="Dst[0][52:52:50:54]">einem</span><span> </span><span id="Dst[0][54:59:56:60]">Gerät</span><span>,</span><span> </span><span id="Dst[0][62:68:63:65]">wie</span><span> </span><span id="Dst[0][70:72:67:69]">den</span><span> </span><span id="Dst[0][74:77:71:76]">Aufruf</span><span>-</span><span id="Dst[0][79:84:78:83]">Dialer</span><span> </span><span id="Dst[0][86:88:85:87]">und</span><span> </span><span id="Dst[0][90:98:89:97]">messaging</span><span>-</span><span id="Dst[0][100:107:99:105]">Dienste</span><span> zu </span><span id="Dst[0][22:28:110:116]">steuern</span><span>.</span><span> </span><span id="Dst[0][110:114:119:123]">Diese</span><span> </span><span id="Dst[0][116:118:125:128]">sind</span><span> in der </span><span id="Dst[0][120:128:137:141]">Regel</span><span> </span><span id="Dst[0][130:132:143:147]">nicht</span><span> </span><span id="Dst[0][134:142:149:157]">verfügbar</span><span> </span><span id="Dst[0][144:146:159:161]">für</span><span> </span><span id="Dst[0][148:169:163:177]">Drittentwickler</span><span>.</span></div> + </div> + </li> + </ul> + <div class="mttextarea" dir="ltr" id="TranslationOutput"> + <div> + <span id="Dst[0][4:7:0:6]">Weitere</span><span> </span><span id="Dst[0][9:19:8:20]">Informationen</span><span> </span><span id="Dst[0][21:22:22:23]">zu</span><span> </span><span id="Dst[0][24:26:25:27]">app</span><span>-</span><span id="Dst[0][28:44:29:47]">Berechtigungsstufen</span>,<a href="https://developer.mozilla.org/en-US/docs/Web/Apps/Packaged_apps#Types_of_packaged_apps"><span id="Dst[0][5:9:0:4]"> Arten</span><span> </span><span id="Dst[0][11:12:6:8]">von</span><span> </span><span id="Dst[0][14:21:10:19]">verpackten</span><span> </span><span id="Dst[0][23:26:21:24]">apps</span></a><span> </span><span id="Dst[0][0:3:26:30]">lesen</span>.<span id="Dst[0][0:2:0:2]"> Sie</span><span> </span><span id="Dst[0][4:11:4:9]">finden</span><span> </span><span id="Dst[0][17:20:11:17]">weitere</span><span> </span><span id="Dst[0][22:32:19:31]">Informationen</span><span> </span><span id="Dst[0][34:38:33:36]">über</span><span> </span><span id="Dst[0][58:68:60:73]">Berechtigungen</span><span id="Dst[0][45:48:45:48]"> welche APIs</span><span> </span><span id="Dst[0][50:56:50:58]">erfordern</span><span> </span><span>,</span><span> </span><span id="Dst[0][71:73:76:78]">und</span><span> </span><span id="Dst[0][75:78:80:85]">welche</span><span> </span><span id="Dst[0][80:90:87:100]">Berechtigungen</span><span> </span><span id="Dst[0][92:94:102:105]">sind</span><span> </span><span id="Dst[0][96:103:107:118]">erforderlich</span><span>,</span><span> </span><span id="Dst[0][106:107:121:122]">um</span><span> </span><a href="/en-US/docs/Web/Apps/App_permissions"><span id="Dst[0][109:111:124:126]">App</span><span>-</span><span id="Dst[0][113:123:128:141]">Berechtigungen</span></a><span>.</span></div> + <div> + </div> + </div> + <div class="note"> + <div class="mttextarea" dir="ltr" id="TranslationOutput"> + <div> + <span id="Dst[0][0:3:0:5]">Es ist</span><span> </span><span id="Dst[0][5:13:7:13]">wichtig</span><span> </span><span id="Dst[0][15:16:15:16]">zu</span><span> </span><span id="Dst[0][18:21:18:25]">beachten</span><span id="Dst[0][23:26:26:31]">, dass</span><span> </span><span id="Dst[0][28:30:33:37]">nicht</span><span> </span><span id="Dst[0][32:34:39:42]">alle</span><span> </span><span id="Dst[0][36:38:44:46]">Web</span><span>-</span><span id="Dst[0][40:43:48:51]">APIs</span><span> </span><span id="Dst[0][67:72:53:54]">in</span><span> </span><span id="Dst[0][74:76:56:58]">der</span><span> </span><span id="Dst[0][78:84:60:66]">Firefox</span><span>-</span><span id="Dst[0][86:87:68:69]">OS</span><span>-</span><span id="Dst[0][89:97:71:79]">Simulator</span><span> </span><span id="Dst[0][55:65:81:89]">umgesetzt</span><span> </span><span id="Dst[0][50:53:91:96]">werden</span><span>.</span></div> + </div> + </div> + <h2 id="Tools_Testen">Tools & Testen</h2> + <div class="mttextarea" dir="ltr" id="TranslationOutput"> + <div> + <span id="Dst[0][0:6:0:5]">Testen</span><span> </span><span id="Dst[0][8:9:7:9]">ist</span><span> </span><span id="Dst[0][11:20:11:21]">unglaublich</span><span> </span><span id="Dst[0][22:30:23:29]">wichtig</span><span>, </span><span id="Dst[0][32:35:32:35]">wenn</span><span> </span><span id="Dst[0][48:53:37:42]">mobile</span><span> </span><span id="Dst[0][55:61:44:49]">Geräte</span><span> </span><span id="Dst[0][37:46:51:61]">unterstützt</span><span>.</span><span> </span><span id="Dst[0][64:68:64:65]">Es</span><span> </span><span id="Dst[0][70:72:67:70]">gibt</span><span> </span><span id="Dst[0][74:77:72:76]">viele</span><span> </span><span id="Dst[0][79:85:78:85]">Optionen</span><span> </span><span id="Dst[0][87:89:87:89]">zum</span><span> </span><span id="Dst[0][91:97:91:96]">Testen</span><span> von </span><span id="Dst[0][99:109:102:116]">installierbaren</span><span> </span><span id="Dst[0][111:114:118:121]">open</span><span>-</span><span id="Dst[0][116:118:123:125]">Web</span><span>-</span><span id="Dst[0][120:123:127:130]">apps</span><span>.</span></div> + <div> + </div> + </div> + <h3 id="Firefox_OS_Simulator">Firefox OS Simulator</h3> + <div class="mttextarea" dir="ltr" id="TranslationOutput"> + <div> + <span id="Dst[0][0:9:0:11]">Installation</span><span> </span><span id="Dst[0][11:13:13:15]">und</span><span> </span><span id="Dst[0][15:19:17:26]">Verwendung</span><span> </span><span id="Dst[0][21:23:28:30]">der</span><span> </span><a href="https://marketplace.firefox.com/developers/docs/firefox_os_simulator"><span id="Dst[0][25:31:32:38]">Firefox</span><span>-</span><span id="Dst[0][33:34:40:41]">OS</span><span>-</span><span id="Dst[0][36:44:43:51]">Simulator</span></a><span> </span><span id="Dst[0][46:47:53:55]">ist</span><span> </span><span id="Dst[0][49:51:57:59]">der</span><span> </span><span id="Dst[0][53:59:61:70]">einfachste</span><span> </span><span id="Dst[0][61:63:72:74]">Weg</span><span> </span><span id="Dst[0][65:66:76:78]">zum</span><span> </span><span id="Dst[0][68:73:80:88]">aufstehen</span><span> </span><span id="Dst[0][75:77:90:92]">und</span><span> </span><span id="Dst[0][79:85:94:99]">laufen</span><span> </span><span id="Dst[0][87:90:101:103]">mit</span><span> </span><span id="Dst[0][92:95:105:109]">Ihrer</span><span> </span><span id="Dst[0][97:100:111:113]">app</span><span>. </span><span id="Dst[0][102:106:116:119]">Nach</span><span> der </span><span id="Dst[0][108:118:125:136]">Installation</span><span> </span><span id="Dst[0][120:122:138:140]">des</span><span> </span><span id="Dst[0][124:132:142:151]">Simulators</span><span> </span><span id="Dst[0][138:139:153:155]">ist</span><span> </span><span id="Dst[0][135:136:157:158]">es</span><span> </span><span id="Dst[0][152:155:160:162]">aus</span><span> </span><span id="Dst[0][157:159:164:166]">dem</span><span> </span><span id="Dst[0][161:165:168:172]">Tools</span><span id="Dst[0][167:168:173:174]">-></span><span> </span><span id="Dst[0][170:172:176:178]">Web</span><span> </span><span id="Dst[0][174:182:180:188]">Developer</span><span id="Dst[0][184:185:189:190]">-></span><span> </span><span id="Dst[0][187:193:192:198]">Firefox</span><span>-</span><span id="Dst[0][195:196:200:201]">OS</span><span>-</span><span id="Dst[0][198:206:203:211]">Simulator</span><span>-</span><span id="Dst[0][208:211:213:216]">Menü</span><span> </span><span id="Dst[0][141:150:218:227]">zugänglich</span><span>.</span><span> </span><span id="Dst[0][214:216:230:232]">Der</span><span> </span><span id="Dst[0][218:226:234:242]">Simulator</span><span> </span><span id="Dst[0][228:235:244:250]">startet</span><span> </span><span id="Dst[0][237:240:252:254]">mit</span><span> </span><span id="Dst[0][242:242:256:260]">einer</span><span> </span><span id="Dst[0][244:253:262:271]">JavaScript</span><span>-</span><span id="Dst[0][255:261:273:279]">Konsole</span><span>, </span><span id="Dst[0][263:264:282:286]">damit</span><span> </span><span id="Dst[0][266:268:288:290]">Sie</span><span> </span><span id="Dst[0][280:283:292:295]">Ihre</span><span> </span><span id="Dst[0][285:295:297:305]">Anwendung</span><span> </span><span id="Dst[0][302:307:307:308]">in</span><span> </span><span id="Dst[0][309:311:310:312]">den</span><span> </span><span id="Dst[0][313:321:314:322]">Simulator</span><span> </span><span id="Dst[0][274:278:324:331]">Debuggen</span><span> </span><span id="Dst[0][270:272:333:338]">können</span><span>.</span></div> + <div> + </div> + </div> + <h3 id="App_Manager">App Manager</h3> + <div class="mttextarea" dir="ltr" id="TranslationOutput"> + <div> + <span id="Dst[0][0:2:0:2]">Das</span><span> </span><span id="Dst[0][4:6:4:7]">neue</span><span> </span><span id="Dst[0][8:10:9:12]">Kind</span><span> </span><span id="Dst[0][12:13:14:16]">auf</span><span> </span><span id="Dst[0][15:17:18:20]">den</span><span> </span><span id="Dst[0][19:23:22:26]">Block</span><span> </span><span id="Dst[0][25:39:28:42]">im Hinblick auf</span><span> die </span><span id="Dst[0][41:53:48:56]">Testtools</span><span> </span><span id="Dst[0][55:63:58:62]">nennt</span><span> man </span><span id="Dst[0][65:67:68:70]">den</span><span> </span><a href="/en-US/docs/Mozilla/Firefox_OS/Using_the_App_Manager"><span id="Dst[0][69:71:72:74]">App</span><span>-</span><span id="Dst[0][73:79:76:82]">Manager</span></a><span>.</span><span> Mit </span><span id="Dst[0][82:85:89:94]">diesem</span><span> </span><span id="Dst[0][87:90:96:99]">Tool</span><span> </span><span id="Dst[0][92:97:101:106]">können</span><span> </span><span id="Dst[0][99:101:108:110]">Sie</span><span> </span><span id="Dst[0][106:112:112:121]">Verbindung</span><span> mit </span><span id="Dst[0][133:133:127:131]">einem</span><span> </span><span id="Dst[0][135:144:133:143]">kompatiblen</span><span> </span><span id="Dst[0][146:151:145:149]">Gerät</span><span> </span><span id="Dst[0][153:155:151:154]">über</span><span> </span><span id="Dst[0][157:159:156:158]">USB</span><span> </span><span id="Dst[0][161:163:160:164]">(oder</span><span> </span><span id="Dst[0][165:165:166:168]">ein</span><span> </span><span id="Dst[0][167:173:170:176]">Firefox</span><span>-</span><span id="Dst[0][175:176:178:179]">OS</span><span>-</span><span id="Dst[0][178:188:181:190]">Simulator)</span><span> </span><span id="Dst[0][114:120:192:198]">desktop</span><span> </span><span id="Dst[0][122:128:200:206]">Firefox</span><span>,</span><span> </span><span id="Dst[0][195:198:209:212]">apps</span><span> </span><span id="Dst[0][200:207:214:219]">direkt</span><span> </span><span id="Dst[0][209:210:221:223]">auf</span><span> </span><span id="Dst[0][212:214:225:227]">das</span><span> </span><span id="Dst[0][216:221:229:233]">Gerät</span><span> </span><span id="Dst[0][190:193:235:242]">schieben</span><span>,</span><span> </span><span id="Dst[0][233:236:245:248]">apps</span><span> zu </span><span id="Dst[0][224:231:253:262]">validieren</span><span> </span><span id="Dst[0][239:241:264:266]">und</span><span> </span><span id="Dst[0][243:247:268:275]">Debuggen</span><span> </span><span id="Dst[0][249:252:277:279]">sie</span><span>, </span><span id="Dst[0][254:255:282:284]">wie</span><span> </span><span id="Dst[0][257:260:286:288]">sie</span><span> </span><span id="Dst[0][266:267:290:292]">auf</span><span> </span><span id="Dst[0][269:271:294:296]">dem</span><span> </span><span id="Dst[0][273:278:298:302]">Gerät</span><span> </span><span id="Dst[0][262:264:304:313]">ausgeführt</span><span>.</span></div> + <div> + </div> + </div> + <h3 id="Unit_Tests">Unit Tests</h3> + <div class="mttextarea" dir="ltr" id="TranslationOutput"> + <div> + <span id="Dst[0][0:3:0:3]">Unit</span><span>-</span><span id="Dst[0][5:9:5:9]">Tests</span><span> </span><span id="Dst[0][11:13:11:14]">sind</span><span> </span><span id="Dst[0][15:23:16:19]">sehr</span><span> </span><span id="Dst[0][25:32:21:28]">wertvoll</span><span>, </span><span id="Dst[0][34:37:31:34]">wenn</span><span> Sie </span><span id="Dst[0][47:48:40:42]">auf</span><span> </span><span id="Dst[0][50:58:44:56]">verschiedenen</span><span> </span><span id="Dst[0][60:66:58:64]">Geräten</span><span> zu </span><span id="Dst[0][39:45:69:74]">testen</span><span> </span><span id="Dst[0][68:70:76:78]">und</span><span> </span><span id="Dst[0][72:77:80:83]">baut</span><span>.</span><span> </span><span id="Dst[0][80:87:86:93]">jQuery's</span><span> </span><a href="http://qunitjs.com"><span id="Dst[0][89:93:95:99]">QUnit</span></a><span> </span><span id="Dst[0][95:96:101:103]">ist</span><span> </span><span id="Dst[0][98:98:105:108]">eine</span><span> </span><span id="Dst[0][100:106:110:117]">beliebte</span><span> </span><span id="Dst[0][108:118:119:132]">Client-seitige</span><span> </span><span id="Dst[0][128:134:134:147]">Dienstprogramm</span><span> zum </span><span id="Dst[0][120:126:153:158]">Testen</span><span>,</span><span> </span><span id="Dst[0][137:139:161:164]">aber</span><span> </span><span id="Dst[0][145:151:166:171]">können</span><span> </span><span id="Dst[0][141:143:173:175]">Sie</span><span> </span><span id="Dst[0][153:155:177:192]">einen beliebigen</span><span> </span><span id="Dst[0][157:159:194:197]">Satz</span><span> </span><span id="Dst[0][161:162:199:201]">von</span><span> </span><span id="Dst[0][164:176:203:211]">Testtools</span><span id="Dst[0][178:182:212:220]">, die Sie</span><span> </span><span id="Dst[0][178:182:222:228]">möchten</span><span>.</span></div> + <div> + </div> + </div> + <div class="mttextarea" dir="ltr" id="TranslationOutput"> + <h3 id="div[0]" name="div[0]"><span id="Dst[0][11:17:0:6]">Firefox</span><span> </span><span id="Dst[0][19:20:8:9]">OS</span><span> </span><span id="Dst[0][22:23:11:13]">auf</span><span> </span><span id="Dst[0][25:25:15:19]">einem</span><span> </span><span id="Dst[0][27:32:21:25]">Gerät</span><span> </span><span id="Dst[0][0:9:27:38]">installieren</span></h3> + </div> + <div class="mttextarea" dir="ltr" id="TranslationOutput"> + <div> + <span id="Dst[0][0:4:0:1]">Da</span><span> </span><span id="Dst[0][6:12:3:9]">Firefox</span><span>-</span><span id="Dst[0][14:15:11:12]">OS</span><span> </span><span id="Dst[0][20:21:14:16]">ein</span><span> </span><span id="Dst[0][23:26:18:21]">open</span><span>-</span><span id="Dst[0][28:33:23:28]">Source</span><span>-</span><span id="Dst[0][35:42:30:38]">Plattform</span><span> ist </span><span id="Dst[0][60:62:44:47]">sind</span><span> </span><span id="Dst[0][45:48:49:52]">Code</span><span> </span><span id="Dst[0][50:52:54:56]">und</span><span> </span><span id="Dst[0][54:58:58:62]">Tools</span><span> </span><span id="Dst[0][77:81:64:72]">Erstellen</span><span> </span><span id="Dst[0][83:85:74:76]">und</span><span> </span><span id="Dst[0][87:93:78:89]">installieren</span><span> </span><span id="Dst[0][95:101:91:97]">Firefox</span><span>-</span><span id="Dst[0][103:104:99:100]">OS</span><span> </span><span id="Dst[0][106:107:102:104]">auf</span><span> </span><span id="Dst[0][109:112:106:110]">Ihrem</span><span> </span><span id="Dst[0][114:116:112:118]">eigenen</span><span> </span><span id="Dst[0][118:123:120:124]">Gerät</span><span> </span><span id="Dst[0][64:72:126:134]">verfügbar</span><span>.</span><span> </span><span id="Dst[0][126:130:137:141]">Build</span><span> </span><span id="Dst[0][132:134:143:147]">sowie</span><span> </span><span id="Dst[0][136:160:149:172]">Installationsanweisungen</span><span> </span><span id="Dst[0][166:169:174:176]">und</span><span> </span><span id="Dst[0][174:178:178:188]">Anmerkungen</span><span> </span><span id="Dst[0][180:181:190:191]">zu</span><span> </span><span id="Dst[0][183:186:193:199]">welchen</span><span> </span><span id="Dst[0][188:194:201:207]">Geräten</span><span> </span><span id="Dst[0][196:197:209:210]">es</span><span> </span><span id="Dst[0][216:217:212:214]">auf</span><span>,</span><span> </span><span id="Dst[0][206:214:217:227]">installiert</span><span> </span><span id="Dst[0][203:204:229:234]">werden</span><span> </span><span id="Dst[0][199:201:236:239]">kann</span><span> </span><span id="Dst[0][220:222:241:246]">finden</span><span> Sie </span><span id="Dst[0][233:234:252:254]">auf</span><span> </span><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Platform"><span id="Dst[0][236:238:256:258]">MDN</span></a><span>.</span></div> + <div> + </div> + </div> + <div class="mttextarea" dir="ltr" id="TranslationOutput"> + <div> + <span id="Dst[0][0:8:0:8]">Spezielle</span><span> </span><span id="Dst[0][10:16:10:16]">Firefox</span><span>-</span><span id="Dst[0][18:19:18:19]">OS</span><span> </span><span id="Dst[0][21:29:21:30]">Entwickler</span><span> </span><span id="Dst[0][31:37:32:39]">Vorschau</span><span> </span><span id="Dst[0][39:45:41:46]">Geräte</span><span> </span><span id="Dst[0][47:54:48:53]">stehen</span><span> </span><span id="Dst[0][56:64:55:67]">zur Verfügung</span><span>:</span><span> </span><span id="Dst[0][67:70:70:78]">Lesen Sie</span><span> </span><span id="Dst[0][72:74:80:85]">unsere</span><span> </span><a href="https://marketplace.firefox.com/developers/dev_phone"><span id="Dst[0][76:84:87:96]">Entwickler</span><span>-</span><span id="Dst[0][86:92:98:105]">Vorschau</span><span>-</span><span id="Dst[0][94:98:107:113]">Telefon</span><span>-</span><span id="Dst[0][100:103:115:119]">Seite</span><span> </span></a><span id="Dst[0][105:107:121:123]">für</span><span> </span><span id="Dst[0][109:112:125:131]">weitere</span><span> </span><span id="Dst[0][114:124:133:145]">Informationen</span><span>.</span></div> + <div> + </div> + <div> + </div> + </div> + <div class="mttextarea" dir="ltr" id="TranslationOutput"> + <h2 id="div[0]" name="div[0]"><span id="Dst[0][0:2:0:2]">App</span><span>-</span><span id="Dst[0][4:13:4:13]">einreichen</span><span> </span><span id="Dst[0][15:17:15:17]">und</span><span> </span><span id="Dst[0][19:30:19:28]">Verteilung</span></h2> + </div> + <p>Wenn Ihre app abgeschlossen ist, können Sie es selbst hosten wie eine standard-Website oder app (Lesen Sie <a href="/en-US/docs/Web/Apps/Publishing/Self-publishing_Apps">self-publishing-Anwendungen</a> für weitere Informationen), oder es kann <a href="https://marketplace.firefox.com/developers/submit/app/manifest">eingereicht</a> werden, auf den <a href="https://marketplace.firefox.com">Firefox-Markt</a>. Ihre Anwendung Manifest überprüft werden können Sie wählen, welche Geräte Ihr app unterstützt (z.B. Firefox OS, Desktop, Firefox, Firefox Mobile, Firefox Tablet). Sobald validiert, können die app Liste innerhalb der Marktplatz Sie fügen Sie zusätzliche Informationen über Ihre app (Screenshots, Beschreibungen, Preise, etc.) und offiziell einreichen. Sobald die App genehmigt ist, ist Ihre app der Welt für die Beschaffung und Installation zur Verfügung.</p> + <div class="mttextarea" dir="ltr" id="TranslationOutput"> + <h3 id="div[0]" name="div[0]"><span id="Dst[0][5:15:5:14]">Marktplatz</span><span> </span><span id="Dst[0][17:17:16:16]">&</span><span id="Dst[0][0:3:0:3]"> Mehr</span><span id="Dst[0][27:37:18:24]"> Angaben</span></h3> + </div> + <ol> + <li><a href="/en-US/docs/Web/Apps/Publishing/Submitting_an_app"><span id="Dst[0][0:9:0:5]">Senden</span><span> Sie </span><span id="Dst[0][11:12:11:14]">eine</span><span> </span><span id="Dst[0][14:16:16:18]">App</span><span> </span><span id="Dst[0][18:19:20:22]">auf</span><span> </span><span id="Dst[0][21:23:24:26]">den</span><span> </span><span id="Dst[0][25:31:28:34]">Firefox</span><span>-</span><span id="Dst[0][33:34:36:37]">OS</span><span>-</span><span id="Dst[0][36:46:39:43]">Markt</span></a><a href="/en-US/docs/Web/Apps/Publishing/Submitting_an_app">z</a></li> + <li><a href="/en-US/docs/Web/Apps/Publishing/Marketplace_review_criteria"><span id="Dst[0][0:10:0:9]">Marktplatz</span><span>-</span><span id="Dst[0][12:26:11:23]">Prüfkriterien</span></a></li> + <li> + <div class="mttextarea" dir="ltr" id="TranslationOutput"> + <div> + <a href="http://s.vid.ly/embeded.html?link=8k2n4w&autoplay=false"><span id="Dst[0][0:2:0:2]">App</span><span>-</span><span id="Dst[0][4:13:4:13]">einreichen</span><span>-</span><span id="Dst[0][15:19:15:19]">Video</span><span>-</span><span id="Dst[0][21:31:21:29]">Anleitung</span></a></div> + </div> + </li> + </ol> + <p> </p> + <p> </p> + <p>Übersetzung bei <strong>Enes E.</strong></p> +</article> diff --git a/files/de/archive/b2g_os/quickstart/einfuerung_zu_firefox_os/index.html b/files/de/archive/b2g_os/quickstart/einfuerung_zu_firefox_os/index.html new file mode 100644 index 0000000000..b262d5f208 --- /dev/null +++ b/files/de/archive/b2g_os/quickstart/einfuerung_zu_firefox_os/index.html @@ -0,0 +1,13 @@ +--- +title: Einführung zu Firefox OS +slug: Archive/B2G_OS/Quickstart/Einfuerung_zu_Firefox_OS +translation_of: Archive/B2G_OS/Quickstart/Intro_to_Firefox_OS +--- +<div class="summary"> + <p>Firefox OS ist ein neues Mobilbetriebssystem, entwickelt von Mozillas Boot to Gecko (B2G) Projekt. Es besteht aus einem Linux Kernel und bootet als eine auf Gecko basierende Laufzeitumgebung, die es Nutzern ermöglicht Anwendungen, geschrieben in <a href="//developer.mozilla.org/docs/HTML">HTML</a>, <a href="//developer.mozilla.org/docs/JavaScript">JavaScript</a>, und mit anderen offenen APIs für Webanwendungen, auszuführen.</p> +</div> +<p><strong>Firefox OS</strong> (also referred to by its codename "Boot to Gecko" or "B2G") is Mozilla's open source mobile operating system, based a Linux kernel, which boots into a Gecko-based runtime engine that lets users run applications developed entirely using <a href="//developer.mozilla.org/docs/HTML">HTML</a>, <a href="/en-US/docs/Web/CSS">CSS</a>, <a href="//developer.mozilla.org/docs/JavaScript">JavaScript</a>, and open web application APIs. Firefox OS is a mobile operating system that's free from proprietary technology while still a powerful platform that provides application developers an opportunity to create excellent products. In addition, it's flexible and capable enough to make the end user happy.</p> +<p style="width: 480px; margin: 0 auto;"><iframe frameborder="0" height="270" src="https://www.youtube.com/embed/-9vktI70iHc/?feature=player_detailpage" width="480"></iframe></p> +<p>Firefox OS comes with a suite of pre-installed applications called <a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Gaia">Gaia</a>, which handle the fundamental functions of the phone such as settings, calls, SMS, taking and storing photos, etc.</p> +<p>For Web developers, the most important part to understand is that the entire user interface is a Web app, one that is capable of displaying and launching other Web apps. Any modifications you make to the user interface and any applications you create to run on Firefox OS are Web pages, albeit with enhanced access to the mobile device's hardware and services.</p> +<p>Firefox OS is currently under heavy development; we are constantly working on ways to make it easier for you to use and hack on Gaia and create apps. However, you need knowledge about systems in order to do things like build the entire Firefox OS stack, or flash a phone with a build of Firefox OS. To find such information, and lots more besides, head on over to our <a href="/en-US/docs/Mozilla/Firefox_OS">Firefox OS content zone</a>.</p> diff --git a/files/de/archive/b2g_os/quickstart/for_mobile_developers/index.html b/files/de/archive/b2g_os/quickstart/for_mobile_developers/index.html new file mode 100644 index 0000000000..e4a00e9335 --- /dev/null +++ b/files/de/archive/b2g_os/quickstart/for_mobile_developers/index.html @@ -0,0 +1,40 @@ +--- +title: App development for mobile developers +slug: Archive/B2G_OS/Quickstart/For_mobile_developers +translation_of: Archive/B2G_OS/Quickstart/For_mobile_developers +--- +<div class="summary"> + <p>If you are a native mobile platform developer, why should you look into developer open web apps? This article talks you through open web app advantages, and the basic steps required to create one.</p> +</div> +<h2 id="Advantages">Advantages</h2> +<p>For mobile application developers, the open web apps project offers these advantages:</p> +<ul> + <li><strong>Simplicity</strong>: Develop on a single technology stack (HTML5/CSS/JavaScript) and deliver across all platforms, from smartphones to tablets to desktops.</li> + <li><strong>Standards</strong>: The technology stack is defined by standards bodies (W3C and Ecma) that operate in the open, rather than by particular technology or platform vendors.</li> + <li><strong>Freedom</strong>: You're not locked in to a vendor-controlled ecosystem. You can distribute your app through the Firefox Marketplace, your own website, or any other store based on Mozilla's open app store technology.</li> + <li><strong>Reach</strong>: You have the potential to reach Firefox's 450 million desktop users, as well as users of other desktop browsers and mobile users.</li> +</ul> +<h2 id="Steps_to_developing_a_Web_app">Steps to developing a Web app</h2> +<dl> + <dt> + 1. Develop your app using open Web technologies.</dt> + <dd> + You probably already know at least a bit about HTML, CSS, and JavaScript. The <a href="/en-US/learn">Learn</a> section of this website has resources to help you ramp up even more. As a mobile app developer, you already have a <a class="external" href="http://www.lukew.com/ff/entry.asp?933">Mobile First</a> approach to Web design.</dd> + <dt> + 2. Add an <a href="/en-US/docs/Web/Apps/Manifest">app manifest</a>.</dt> + <dd> + All that inherently separates a Web app from a normal website is a single, JSON-format text file.</dd> + <dt> + 3. Publish the app, either on your own site or in an app store (or both).</dt> + <dd> + Publishing it yourself requires <a href="/en-US/docs/Web/Apps/JavaScript_API">adding some code to your site to manage installing and updating the app</a> in users' browsers.</dd> +</dl> +<h2 id="Optional_features">Optional features</h2> +<p>{{ page("/en-US/docs/Web/Apps/For_Web_developers", "Optional_features") }}</p> +<h2 id="Useful_technologies">Useful technologies</h2> +<p>See <a href="/en-US/docs/Web/Apps/For_Web_developers#Useful_technologies">Useful technologies</a>.</p> +<h2 id="See_also">See also</h2> +<ul> + <li><a href="http://smus.com/mobile-web-app-tech-stack">A mobile Web application stack</a></li> + <li><a href="/en-US/docs/Web/Apps/Apps_for_Android">Open Web Apps for Android</a></li> +</ul> diff --git a/files/de/archive/b2g_os/quickstart/index.html b/files/de/archive/b2g_os/quickstart/index.html new file mode 100644 index 0000000000..ebe1f7c220 --- /dev/null +++ b/files/de/archive/b2g_os/quickstart/index.html @@ -0,0 +1,49 @@ +--- +title: Build +slug: Archive/B2G_OS/Quickstart +tags: + - NeedsTranslation + - TopicStub +translation_of: Archive/B2G_OS/Quickstart +--- +<div class="summary"> + <p>Quickstart information on coding open web apps.</p> +</div> +<dl> + <dt> + <a href="/en-US/docs/Web/Apps/Quickstart/Build/Intro_to_open_web_apps">Introduction to open web apps</a></dt> + <dd> + What are open web apps? How they differ from regular web pages? Why is this significant? This article aims to answer these questions and more.</dd> + <dt> + <a href="/en-US/docs/Web/Apps/Quickstart/Build/Your_first_app">Your first app</a></dt> + <dd> + This article takes you through the basic steps and additional knowledge on top of regular web development required to create installable open web apps.</dd> + <dt> + <a href="/en-US/docs/Web/Apps/Quickstart/Build/Intro_to_Firefox_OS">Introduction to Firefox OS</a></dt> + <dd> + An introduction to Firefox OS, Mozilla's new open web app-based mobile platform.</dd> + <dt> + <a href="/en-US/docs/Web/Apps/Quickstart/Build/Intro_to_manifests">Introduction to manifests</a></dt> + <dd> + An FAQ designed to answer any questions you may have about manifests, hosting apps, origins, and other such topics.</dd> + <dt> + <a href="/en-US/docs/Web/Apps/Quickstart/Build/For_Web_developers">App development for web developers</a></dt> + <dd> + If you're a web developer, how do open web apps differ from what you're used to? This article explains all.</dd> + <dt> + <a href="/en-US/docs/Web/Apps/Quickstart/Build/For_mobile_developers">App development for mobile developers</a></dt> + <dd> + If you're a native mobile application developer, what advantages can open web apps bring to you, and how do they differ from what you are used to? Here are some ideas.</dd> + <dt> + <a href="/en-US/docs/Web/Apps/Quickstart/Build/Developing_app_functionality">Developing app functionality</a></dt> + <dd> + This page talks about the kinds of different functionality that you might want to build into your apps, with links to further information.</dd> + <dt> + <a href="/en-US/docs/Web/Apps/Quickstart/Build/Payments">Payments</a></dt> + <dd> + How do you build functionality to make people pay for installing your open web apps? Here is the lowdown.</dd> + <dt> + <a href="/en-US/docs/Web/Apps/Quickstart/Build/App_tools">App tools</a></dt> + <dd> + Last for this section, we provide some links to more information on the tools available to help you develop great open web apps.</dd> +</dl> diff --git a/files/de/archive/b2g_os/quickstart/open_web_apps_and_web_standards/index.html b/files/de/archive/b2g_os/quickstart/open_web_apps_and_web_standards/index.html new file mode 100644 index 0000000000..f0767b57ed --- /dev/null +++ b/files/de/archive/b2g_os/quickstart/open_web_apps_and_web_standards/index.html @@ -0,0 +1,38 @@ +--- +title: Offene Web Apps und Web Standards +slug: Archive/B2G_OS/Quickstart/Open_Web_apps_and_Web_standards +translation_of: Archive/B2G_OS/Quickstart/Intro_to_open_web_apps +--- +<p><img alt="Multi devices" src="/files/4523/multidevices.png" style="width: 640px; height: 225px;"></p> +<h2 id="Das_Web_ist_die_Plattform">Das Web ist die Plattform</h2> +<p>Open Web Apps are a great opportunity for those who need to develop applications that work on the largest number of devices, and for those who cannot afford to develop an app for every vendor platform (such as Android, iOS, and "classical" desktop web browsers). The difference between an app and a website is that you can install an app and more thoroughly integrate it into your device. It’s not a bookmark — it’s part of a system. Open Web Apps hold that great promise. They are an opportunity that we should not miss, otherwise the Web might become fragmented once more.</p> +<p>With this in mind it should be clear that Open Web Apps (OWA in short) are intended to be standardized and to become part of "the Web". If successful, OWA should eventually work on all browsers, operating systems anddevices.</p> +<p>At Mozilla we are working hard to create this apps platform that is backed entirely by the open Web. It’s not intended to be a “Mozilla platform” or a “Firefox platform”. <strong>The Web is the platform</strong>. We’re creating a set of open APIs and implementations to show how portable apps can exist on the Web without vendor lock-in. Other groups like Facebook and Google Chrome are also working on apps platforms backed by the Web. <a href="https://developers.facebook.com/docs/guides/canvas/">Facebook apps</a> are meant to hook into Facebook and <a href="http://www.google.com/intl/en/chrome/webstore/apps.html">Chrome apps</a> are designed for Chrome OS devices and Google servers. Chrome apps are the most similar to Open Web Apps. We continue to collaborate with the Google Chrome team as app standards evolve and we definitely share a lot of the same vision. There is tremendous potential for all Web based app platforms to converge and we invite all vendors to help us build the right Open Web App APIs.</p> +<p>Even though currently you must have a Mozilla Firefox-based engine ("Web runtime") to use Open Web Apps, it is not intended that this always will be the case. Many parts of the Open Web Apps project are still being worked out and it isn't possible to implement everything in all browsers at once. Although many parts of Open Web Apps are already standardized, many other parts are still in flux. It is intended and hoped that Open Web Apps will be a standard capability that is available in all major browsers.</p> +<p>Therefore, when you read the MDN pages that deal with Open Web Apps, please keep in mind that even though much of the information is specific to Firefox right now, it will hopefully enable you to develop Open Web Apps for all browsers in the future.</p> +<h2 id="Web_standards">Web standards</h2> +<p>OWA technology is not a single piece, it is an umbrella that groups many different technologies and some of them are very young. At the moment, parts of OWA are standardized (HTML5, CSS, JavaScript, IndexedDB, etc.). Other parts are not yet standardized and the Mozilla implementation is thus specific to Firefox or to some other Mozilla technology. As the Mozilla mission is to share and to empower everyone, this situation is only temporary. That's why in the OWA docs we will try to clearly identify the parts of OWA that are not yet standardized.</p> +<p>Please also note that there may be some OWA-related proposals and potential standards that are not used by Mozilla.</p> +<h3 id="Intended_eventual_standards">Intended eventual standards</h3> +<p>So here are the parts not standardized yet across the different Web platforms and that still are Firefox-only for the moment:</p> +<ul> + <li><a href="/en-US/docs/Apps/Manifest">OWA manifest</a> for defining an app</li> + <li><a href="/en-US/docs/Apps/Apps_JavaScript_API">The Complete OWA API</a> for working with apps</li> + <li><a href="https://wiki.mozilla.org/WebAPI">Web APIs</a> to access things like phone, geolocation, etc. Also see <a href="http://arewemobileyet.com/">arewemobileyet.com</a> for a status report.</li> + <li><a href="/en-US/docs/Persona">Identity (Persona)</a> to work with user data</li> + <li><a href="https://wiki.mozilla.org/WebAPI/WebPayment">WebPayment API</a> to facilitate in-app payments and app purchases from any Marketplace</li> + <li><a href="https://wiki.mozilla.org/Apps/WebApplicationReceipt">OWA Receipts</a> to verify paid apps on any device and sell apps from any Marketplace</li> +</ul> +<h3 id="Marketplace">Marketplace</h3> +<h4 id="Buy_Once_Run_Everywhere">Buy Once, Run Everywhere</h4> +<p>From the ground up Mozilla has been building an apps system that lets users buy an app once and run it on all of their HTML5 devices. Very soon Mozilla will <a href="http://bits.blogs.nytimes.com/2012/09/07/a-firefox-smartphone-for-the-poor/">launch the first Firefox OS phone</a> but that will be just one device on which to run your apps. When you purchase an app through the <a href="https://marketplace.firefox.com/">Firefox Marketplace</a>, the system installs a receipt on your device. The <a href="https://wiki.mozilla.org/Apps/WebApplicationReceipt">receipt</a> is a JSON Web Token with metadata that links to the Marketplace’s public key and its verification service URL. When an app starts up it can verify the receipt but the receipt on the device <em>is not tied</em> to the Firefox Marketplace. The receipt is just a cryptographically verifiable proof of purchase. Anyone can sell open Web apps if they follow the receipt specs. <strong>When you buy an app, it is intended to be portable across any device that supports the Open Web Apps system.</strong></p> +<p>Mozilla is building the infrastructure needed to run Open Web Apps on any HTML5 device. <a href="http://www.mozilla.org/en-US/firefox/mobile/features/">Firefox for Android</a> will let you install and run apps (you can try it today on the <a href="http://nightly.mozilla.org/">nightly</a> build). Installed app icons go to your home screen just like regular Android apps. You can also install and run Web apps on your Windows, Mac, or Linux desktop using Firefox (this currently works in the <a href="http://nightly.mozilla.org/">nightly</a> build). Currently some version of Firefox is required, but it is intended that the Open Web Apps system will eventually be supported by all major browsers as a set of standards. From day one Mozilla has included all major HTML5 compliant browsers in its proof of concepts; you can take a look at this hosted JavaScript <a href="https://apps.persona.org/include.js">shim</a> for ideas on how to support the apps platform on a non-Firefox browser.</p> +<p>In the future the Open Web Apps system will support <a href="http://docs.services.mozilla.com/aitc/">syncing your installed apps</a> across devices. Since receipts are portable you could just sync them yourself if you wanted to. In case it’s not obvious, you can always run a free open Web app in any browser because it is no different than a website. It might, however, use new <a href="https://wiki.mozilla.org/WebAPI/">mobile specific web APIs</a> which are not implemented on all platforms.</p> +<h3 id="WebPayment_API">WebPayment API</h3> +<h4 id="Commerce_For_Apps">Commerce For Apps</h4> +<p>Part of the success of mobile app platforms like iOS and Android is that they make it very easy to try out new business models through mobile payments. Those models are still evolving but commerce is no doubt something that, at the moment, is awkward on the desktop Web and more natural on mobile. Specifically, it’s very convenient to charge something to your phone bill when you’re already accessing it from your phone anyway. With the launch of Firefox OS, the apps ecosystem will support app purchases and in-app payments through the <a href="https://wiki.mozilla.org/WebAPI/WebPayment" style="">WebPayment API</a>. Supporting commerce is crucial for the growth of an apps platform. <strong>The use of the proposed payment API is completely <em>optional</em></strong>. Mozilla won’t prevent any app from using its own in-app payment system.</p> +<h2 id="See_also">See also</h2> +<ul> + <li><a href="https://blog.mozilla.org/webdev/2012/09/14/apps-the-web-is-the-platform/">Apps: The Web Is The Platform</a>, by Kumar McMillan (the blog post from which lots of the content of this article is borrowed)</li> + <li><a href="https://plus.google.com/113127438179392830442/posts/fR3iiuN4kEF">See the Web platform succeed for applications</a>, by Paul Irish</li> +</ul> diff --git a/files/de/archive/b2g_os/releases/1.4/index.html b/files/de/archive/b2g_os/releases/1.4/index.html new file mode 100644 index 0000000000..47b18c0fbc --- /dev/null +++ b/files/de/archive/b2g_os/releases/1.4/index.html @@ -0,0 +1,71 @@ +--- +title: Firefox OS 1.4 for developers +slug: Archive/B2G_OS/Releases/1.4 +translation_of: Archive/B2G_OS/Releases/1.4 +--- +<div class="summary"> + <p><span class="seoSummary"><strong>Firefox OS 1.4</strong> ist derzeit noch eien Vorabversion. Die Gecko Komponenten basieren auf Firefox 30 (dazu:<span class="seoSummary"><a href="/en-US/docs/Mozilla/Firefox/Releases/30" title="/en-US/docs/Mozilla/Firefox/Releases/28">Firefox 30 release notes for developers</a>). Diese Seite beschreibt die neu hinzugefügten Entwicklerfunktionen in Firefox OS 1.4.</span></span></p> +</div> +<h2 id="CSS">CSS</h2> +<p>Gecko allgemein:</p> +<ul> + <li>Das Merkmal <a href="/de/docs/Web/CSS/background-blend-mode" title="Die background-blend-mode Eigenschaft beschreibt, wie sich die Hintergrundbilder eines Elementes, sowie dessen Hintergrundfarbe, miteinander vemischen."><code>background-blend-mode</code></a> ist jetzt standardmäßig aktiviert(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=970600" title="FIXED: Enable background-blend-mode by default">Bug 970600</a>).</li> + <li>Das nicht standardmäßige Merkmal <a href="/de/docs/Web/CSS/overflow-clip-box" title="Die overflow-clip-box CSS Eigenschaft bestimmt, bezogen auf welche Box die Zuschnitt erfolgt, wenn ein Überlauf stattfindet."><code>overflow-clip-box</code></a> ist jetzt lediglich für die Nutzung in UA stylesheets aktiviert(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=966992" title="FIXED: Implement overflow-clip-box: content-box">Bug 966992</a>).</li> + <li>Das Merkmal <a href="/de/docs/Web/CSS/line-height" title="Die Beschreibung hierüber wurde bisher noch nicht geschrieben; bitte erwäge, mitzuwirken!"><code>line-height</code></a> beeinflusst jetzt auch einzeilige Texteingaben (<code><input type=text|password|email|search|tel|url|unknown></code> types), es kann diese allerdings nicht unter eine Größe von <code>1.0</code> verkleinern (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=349259" title="FIXED: CSS Property 'line-height' has no effects on input text fields">Bug 349259</a>).</li> + <li>Das Merkmal <a href="/de/docs/Web/CSS/line-height" title="Die Beschreibung hierüber wurde bisher noch nicht geschrieben; bitte erwäge, mitzuwirken!"><code>line-height</code></a> beeinflusst jetz auch <code>type=button</code>, ohne Einschränkungen</li> + <li>Änderungen des Namens des Keyframes beeinflussen nicht die gegenwärtigen Elemente (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=978648" title="FIXED: Change to keyframes' name does not affect current elements">Bug 978648</a>).</li> +</ul> +<h2 id="JavaScript">JavaScript</h2> +<p><a href="/en-US/docs/Mozilla/Projects/SpiderMonkey">SpiderMonkey</a> general:</p> +<ul> + <li>New ES6-compatible <a href="/en-US/docs/Web/JavaScript/Reference/Operators/Array_comprehensions">array comprehensions</a> <code>[for (item of iterable) item]</code> and <a href="/en-US/docs/Web/JavaScript/Reference/Operators/Generator_comprehensions">generator comprehensions</a> <code>(for (item of iterable) item)</code> have been implemented (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=979865" title="FIXED: Implement ES6 array and generator comprehensions">Bug 979865</a>).</li> + <li>Typed arrays are now extensible and support new named properties (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=695438" title="FIXED: TypedArrays don't support new named properties">Bug 695438</a>).</li> + <li>The <a href="/de/docs/Web/JavaScript/Reference/Global_Objects/Error/stack" title="Die nicht standardisierte stack Eigenschaft des Error Objektes zeigt den Verlauf der aufgerufenen Funktionen. Dabei wird die Reihenfolge der Aufrufe, der Zeile und die Datei der Aufrufes und die übergebenen Argumenten angegeben. Der stack String verläuft von den jüngsten Aufrufen zu den vorherigen Aufrufen, bis zum globalen Scope zurück."><code>Error.prototype.stack</code></a> property now contains column numbers (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=762556" title="FIXED: Error stack should contain column number">Bug 762556</a>) and has been improved <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/Stack#Stack_of_eval'ed_code">when using <code>Function()</code> and <code>eval()</code> calls</a>. This can help you to better debug minified or generated JavaScript code.</li> +</ul> +<h2 id="InterfacesAPIsDOM">Interfaces/APIs/DOM</h2> +<p>Firefox OS specific:</p> +<ul> + <li>Availability of camera object now conditional on availability of <span id="summary_alias_container"><span id="short_desc_nonedit_display">Navigator.HasCameraSupport (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=983180" title="FIXED: [Camera][Gecko] Make availability of camera object conditional on Navigator.HasCameraSupport">Bug 983180</a>).</span></span></li> + <li>Face Tracking API implemented (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=965420" title="FIXED: [Madai][Camera][Gecko] Implement face-tracking API">Bug 965420</a>).</li> + <li>Clean up done on the <a href="/en-US/docs/Web/API/Camera_Control_API">Camera Control API</a> (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=909542" title="FIXED: Camera Control API clean-up/streamline">Bug 909542</a>).</li> + <li><a href="/en-US/docs/Web/API/Network_Information_API">Network Information API</a> now supported on Firefox OS (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=960426" title="FIXED: Support Network Information API in Firefox OS">Bug 960426</a>).</li> + <li><a href="/en-US/docs/Web/API/Wifi_Direct_API">Wifi Direct API</a> now implemented (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=811635" title="FIXED: B2G Wifi: Support Wifi Direct">Bug 811635</a>).</li> +</ul> +<p>Gecko general:</p> +<ul> + <li><code>URLSearchParams.size</code> support has been removed from Gecko; this has been removed from the DOM spec until iterator support is finalised (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=959988" title="FIXED: Remove URLSearchParams.prototype.size">Bug 959988</a>).</li> + <li><a href="/en-US/docs/Web/API/Identity_Provider_API">Identity Provider API</a> for WebRTC implemented (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=884573" title="FIXED: PeerConnection.js persona integration">Bug 884573</a>).</li> + <li>The <a href="/de/docs/Web/HTML/Element/shadow" title="Das HTML <shadow> Element wird als shadow DOM insertion point genutzt. Es kann eventuell gesehen werden, wenn mehrerere shadow roots unter einem shadow host erstellt wurden. Es wird mit Web Components genutzt."><code><shadow></code></a> element is now implemented (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=887538" title="FIXED: Implement web components shadow element.">Bug 887538</a>).</li> + <li><a href="/de/docs/Web/API/FileSystem/createFile" title="Die Beschreibung hierüber wurde bisher noch nicht geschrieben; bitte erwäge, mitzuwirken!"><code>createFile()</code></a> method implemented on the <a href="/en-US/docs/Web/API/File_System_API">File System API</a> (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=934367" title="FIXED: [Filesystem API] Implement createFile method for device storage.">Bug 934367</a>).</li> + <li>Device Storage API now using <a href="/en-US/docs/Web/API/File_System_API">File System API</a> (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=910412" title="FIXED: Change DeviceStorage API to use FileSystem API spec">Bug 910412</a>). The plan is to deprecate the former at a later date.</li> + <li><a href="/de/docs/Web/API/Navigator/sendBeacon" title="Die navigator.sendBeacon() Methode dient dazu, kleinere Datenmengen asynchron per HTTP vom User Agent zum Server zu senden."><code>Navigator.sendBeacon</code></a> has been implemented, easing telemetry collection (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=936340" title="FIXED: Implement navigator.sendBeacon">Bug 936340</a>).</li> + <li>Added a <code>relList</code> property returning a <a href="/de/docs/Web/API/DOMTokenList" title="Die DOMTokenList Schnittstelle repräsentiert eine Sammlung von durch Leerzeichen getrennte Zeichen/ Merkmale (Tokens). Solch eine Ansammlung wird wiedergegben von Element.classList, HTMLLinkElement.relList, HTMLAnchorElement.relList oder HTMLAreaElement.relList. Deren Index beginnt bei 0 wie bei JavaScript Array Objekten. DOMTokenList achten immer auf die Groß- und Kleinschreibung."><code>DOMTokenList</code></a> to <a href="/de/docs/Web/API/HTMLLinkElement" title="Die Beschreibung hierüber wurde bisher noch nicht geschrieben; bitte erwäge, mitzuwirken!"><code>HTMLLinkElement</code></a>, <a href="/de/docs/Web/API/HTMLAreaElement" title="Die Beschreibung hierüber wurde bisher noch nicht geschrieben; bitte erwäge, mitzuwirken!"><code>HTMLAreaElement</code></a> and <a href="/de/docs/Web/API/HTMLAnchorElement" title="Die Beschreibung hierüber wurde bisher noch nicht geschrieben; bitte erwäge, mitzuwirken!"><code>HTMLAnchorElement</code></a> (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=968637" title="FIXED: add the DOMTokenList relList to HTMLLinkElement, HTMLAreaElement and HTMLAnchorElement">Bug 968637</a>).</li> + <li>As per the latest specification, the first argument of <a href="/de/docs/Web/API/OscillatorNode/start" title="Die Beschreibung hierüber wurde bisher noch nicht geschrieben; bitte erwäge, mitzuwirken!"><code>OscillatorNode.start</code></a> and <a href="/de/docs/Web/API/OscillatorNode/stop" title="Die Beschreibung hierüber wurde bisher noch nicht geschrieben; bitte erwäge, mitzuwirken!"><code>OscillatorNode.stop</code></a> is now optional and defaults to <code>0</code> (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=982541" title="FIXED: Update OscillatorNode.{start, stop} to have the first argument optional and default to zero">Bug 982541</a>).</li> + <li>The method <a href="/de/docs/Web/API/Navigator/requestWakeLock" title="This Navigator.requestWakeLock() method of the Wake Lock API is used to request a MozWakeLock on any resource of the device. This means that you can prevent that resource from becoming unavailable as long as your app holds a lock for that resource. For example, a voice recording app can obtain a lock to keep the screen on during recording so that it can give prover visual feedback to the user that recording is progressing."><code>Navigator.requestWakeLock()</code></a> and the non-standard <a href="/de/docs/Web/API/MozWakeLock" title="Die Beschreibung hierüber wurde bisher noch nicht geschrieben; bitte erwäge, mitzuwirken!"><code>MozWakeLock</code></a> are no longer available from the Web on Desktop (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=963366" title="FIXED: Hide navigator.requestWakeLock and MozWakeLock from the web except on Firefox OS">Bug 963366</a>).</li> + <li>The <code>DOM_VK_ENTER</code> constant has been removed from <a href="/de/docs/Web/API/KeyboardEvent" title="KeyboardEvent Objekte beschreiben eine Benutzerinteraktion mit dem Keyboard. Jedes Event beschreibt eine Taste. Der Eventtyp (keydown, keypress, oder keyup) identifiziert welche Art von Aktivität ausgeführt wurde."><code>KeyboardEvent</code></a> (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=969247" title="FIXED: Get rid of related code of NS_VK_ENTER and nsIDOMKeyEvent::DOM_VK_ENTER">Bug 969247</a>).</li> + <li>Web components' <a href="/de/docs/Web/API/Document/register" title="Die Beschreibung hierüber wurde bisher noch nicht geschrieben; bitte erwäge, mitzuwirken!"><code>Document.register</code></a> has been adapted to follow the behavior described in the latest version of the specification (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=856140" title="FIXED: Update document.register to adhere to the latest Custom Element spec">Bug 856140</a>).</li> + <li>Basic support for Hit regions on canvas has been added: the methods <a href="/de/docs/Web/API/CanvasRenderingContext2D/addHitRegion" title="Die Beschreibung hierüber wurde bisher noch nicht geschrieben; bitte erwäge, mitzuwirken!"><code>CanvasRenderingContext2D.addHitRegion()</code></a> and <a href="/de/docs/Web/API/CanvasRenderingContext2D/removeHitRegion" title="Die Beschreibung hierüber wurde bisher noch nicht geschrieben; bitte erwäge, mitzuwirken!"><code>CanvasRenderingContext2D.removeHitRegion()</code></a> have been added. These are disabled by default; to activate them set the preference <code>canvas.hitregions.enabled</code> to <code>true</code> (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=966591" title="FIXED: Add basic support for Hit regions in Canvas">Bug 966591</a>).</li> + <li>The non-standard, and deprecated since Firefox 15, <a href="/de/docs/Web/API/Blob/mozSlice" title="Die Beschreibung hierüber wurde bisher noch nicht geschrieben; bitte erwäge, mitzuwirken!"><code>Blob.mozSlice</code></a> is no longer supported (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=961804" title="FIXED: Drop support for Blob.mozSlice">Bug 961804</a>).</li> + <li>The non-standard <a href="/de/docs/Web/API/ArchiveReader" title="Die Beschreibung hierüber wurde bisher noch nicht geschrieben; bitte erwäge, mitzuwirken!"><code>ArchiveReader</code></a> and <a href="/de/docs/Web/API/ArchiveRequest" title="Die Beschreibung hierüber wurde bisher noch nicht geschrieben; bitte erwäge, mitzuwirken!"><code>ArchiveRequest</code></a> are no longer exposed to the Web (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=968883" title="FIXED: ArchiveReader and ArchiveRequest should not be exposed interfaces">Bug 968883</a>).</li> + <li>Constructors cannot be called as functions anymore. They need to be preceded by the keyword <code>new</code> (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=916644" title="FIXED: Disallow calling WebIDL constructors as functions on the web">Bug 916644</a>).</li> + <li>Added support for a new value (<code>alpha</code>) for the second, optional, parameter of the <a href="/de/docs/Web/API/Canvas/getContext" title="Die Beschreibung hierüber wurde bisher noch nicht geschrieben; bitte erwäge, mitzuwirken!"><code>Canvas.getContext()</code></a> method allowing to define if alpha blending must be stored or not for this context. When not, the per-pixel alpha value in this store is always <code>1.0</code>. This allows the back-end to implement a fast-track (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=982480" title="FIXED: Add support for the alpha option to the canvas context options">Bug 982480</a>).</li> +</ul> +<h2 id="SVG">SVG</h2> +<p>Gecko general:</p> +<ul> + <li><a href="/de/docs/Web/SVG/Element/feDropShadow" title="Die Beschreibung hierüber wurde bisher noch nicht geschrieben; bitte erwäge, mitzuwirken!"><code><feDropShadow></code></a>, and its interface <a href="/de/docs/Web/API/SVGFEDropShadowElement" title="Die Beschreibung hierüber wurde bisher noch nicht geschrieben; bitte erwäge, mitzuwirken!"><code>SVGFEDropShadowElement</code></a>, from the Filter Effects Module are now supported (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=964200" title="FIXED: Implement Filter Effects Module feDropShadow filter">Bug 964200</a>).</li> +</ul> +<h2 id="Manifest">Manifest</h2> +<ul> + <li>The <code><a href="/en-US/Apps/Build/Manifest#precompile">precompile</a></code> manifest field is now supported, which specifies that asm.js code contained within the app should be compiled at install time, install of during first run.</li> +</ul> +<h2 id="See_also">See also</h2> +<ul> + <li>Firefox OS 1.4 Notes (will be linked to once they are published.)</li> +</ul> +<h2 id="Older_versions">Older versions</h2> +<p></p><div class="multiColumnList"> +<ul> +<li><a href="/en-US/docs/Mozilla/Firefox_OS/Releases/1.3">Firefox OS 1.3 for developers</a></li><li><a href="/en-US/docs/Mozilla/Firefox_OS/Releases/1.2">Firefox OS 1.2 for developers</a></li><li><a href="/en-US/docs/Mozilla/Firefox_OS/Releases/1.1">Firefox OS 1.1 for developers</a></li><li><a href="/en-US/docs/Mozilla/Firefox_OS/Releases/1.0.1">Firefox OS 1.0.1 for developers</a></li></ul> +</div><p></p> +<p> </p> diff --git a/files/de/archive/b2g_os/releases/2.0/index.html b/files/de/archive/b2g_os/releases/2.0/index.html new file mode 100644 index 0000000000..175d141e00 --- /dev/null +++ b/files/de/archive/b2g_os/releases/2.0/index.html @@ -0,0 +1,112 @@ +--- +title: Firefox OS 2.0 for developers +slug: Archive/B2G_OS/Releases/2.0 +translation_of: Archive/B2G_OS/Releases/2.0 +--- +<div class="summary"> +<p>This page details the developer features newly implemented in Gecko that are specific to Firefox OS 2.0.</p> +</div> + +<div class="note"> +<p>Firefox OS 2.0's Gecko component is based on Firefox 31/32.</p> +</div> + +<h2 id="New_product_features">New product features</h2> + +<p>This section provides a summary of the new features available in Firefox OS 2.0. For more details on specific platform changes (API additions, etc.), see the <a href="#Platform_additions_in_detail">Platform additions in detail</a> section.</p> + +<dl> + <dt>NFC</dt> + <dd><span class="author-g-x59co88jbi1y2uah b i">This release includes support for device-to-device content sharing support with NFC <span class="author-g-x59co88jbi1y2uah b i">(Near Field Communication)</span>. You can pair your device with another, then <a href="/en-US/docs/Web/API/NFC_API/Using_the_NFC_API#The_P2P_Sharing_UI">swipe to share</a> your contacts, media, or favorite URLs with others.</span></dd> + <dt>Telephony</dt> + <dd><span class="author-g-x59co88jbi1y2uah b i">Firefox OS now supports both IPv4 and IPv6 addresses</span> in the network manager.</dd> + <dt>Find My Device</dt> + <dd><span class="author-g-9k649z122zgh819oqmty">If you’ve lost your Firefox OS smartphone, Find My Device can help you find it (see the <span class="author-g-9k649z122zgh819oqmty url"><a href="http://find.firefox.com">http://find.firefox.com</a> website</span>). You can see it on a map, make it play a sound and have it display a message. You can also remotely lock it or delete your personal info.</span><span class="author-g-9k649z122zgh819oqmty"> To get started, create a Firefox Account (<em>Settings > Firefox Accounts</em> on your device) and enable Find My Device (<span class="author-g-9k649z122zgh819oqmty"><em>Settings > Find My Device</em></span>).</span></dd> + <dt>Media</dt> + <dd><span class="author-g-4iwx7wjdkbf2wjjv b">You can now create your own ringtones using your own music collection, or songs you download from the Web.</span></dd> + <dt>Camera</dt> + <dd><span class="author-g-4iwx7wjdkbf2wjjv b">The Camera app now supports various focus modes: Touch, Continuous Auto and Face tracking</span>.</dd> + <dt>Productivity</dt> + <dd>We've done a visual refresh of the Email, Calender, and Clock apps.</dd> + <dt>Homescreen</dt> + <dd><span class="author-g-4f4wmtjtu8s4fjq7 b i">Firefox OS 2.0 introduces a simpler vertical-scrolling homescreen with larger icons.</span></dd> + <dt>Edge-gesture app switching</dt> + <dd><span class="author-g-4f4wmtjtu8s4fjq7 b i">Edge gestures are now available for switching between apps (swipe your thumb from the left edge of the screen to the right and vice versa, to switch between multiple open apps.)</span></dd> +</dl> + +<h2 id="New_partner_features">New partner features</h2> + +<dl> + <dt>E.ME integration</dt> + <dd>E.ME integration provides direct access to web apps while configurable search providers can search the web at the same time.</dd> +</dl> + +<h2 id="New_DevTools_features">New DevTools features</h2> + +<p>The Firefox <a href="/en-US/docs/Tools">Developer Tools</a> have had a large number of features added in Firefox versions 31 and 32; these aren't Firefox OS-specific, but you can take advantage of them when debugging your Firefox OS apps through <a href="/en-US/docs/Tools/WebIDE">WebIDE</a>. To find out more, read:</p> + +<ul> + <li><a href="https://hacks.mozilla.org/2014/05/editable-box-model-multiple-selection-sublime-text-keys-much-more-firefox-developer-tools-episode-31/">Firefox Developer Tools Episode 31</a></li> + <li><a href="https://hacks.mozilla.org/2014/06/toolbox-inspector-scratchpad-improvements-firefox-developer-tools-episode-32/">Firefox Developer Tools Episode 32</a></li> +</ul> + +<h2 id="Platform_additions_in_detail">Platform additions in detail</h2> + +<div class="note"> +<p><strong>Note</strong>: Our list here includes features most important to Firefox OS. For an expanded list of general Gecko feature additions (which are generally also present in Firefox OS 2.0), consult the <a href="/en-US/docs/Mozilla/Firefox/Releases/31" title="/en-US/docs/Mozilla/Firefox/Releases/31">Firefox 31 release notes for developers</a> and <a href="/en-US/docs/Mozilla/Firefox/Releases/32" title="/en-US/docs/Mozilla/Firefox/Releases/32">Firefox 32 release notes for developers</a>.</p> +</div> + +<h3 id="Web_API">Web API</h3> + +<ul> + <li>The parameters of the <a href="/de/docs/Web/API/MozMobileNetworkInfo" title="Die Beschreibung hierüber wurde bisher noch nicht geschrieben; bitte erwäge, mitzuwirken!"><code>MozMobileNetworkInfo</code></a> constructor have been made nullable (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1026727" title="FIXED: Unknown state is displayed instead of Connected during manual network selection">Bug 1026727</a>).</li> + <li>WebRTC: <span class="author-g-41mtsa1hor7b107c i"><a href="/de/docs/Web/API/MozGetUserMedia" title="Die Beschreibung hierüber wurde bisher noch nicht geschrieben; bitte erwäge, mitzuwirken!"><code>mozGetUserMedia</code></a>, <a href="/de/docs/Web/API/MozRTCPeerConnection" title="Die Beschreibung hierüber wurde bisher noch nicht geschrieben; bitte erwäge, mitzuwirken!"><code>mozRTCPeerConnection</code></a>, and <a href="/de/docs/Web/API/DataChannels" title="Die Beschreibung hierüber wurde bisher noch nicht geschrieben; bitte erwäge, mitzuwirken!"><code>DataChannels</code></a> are supported by default</span>.</li> + <li>New constraints for <a href="https://developer.mozilla.org/en-US/docs/Glossary/WebRTC">WebRTC</a>'s <a class="new" href="https://developer.mozilla.org/en-US/docs/Web/API/NavigatorUserMedia.getUserMedia" title="The documentation about this has not yet been written; please consider contributing!"><code>getUserMedia()</code></a>, <code>width</code>, <code>height</code>, and <code>framerate</code>, have been added, to limit stream dimensions and frame rate (<a class="external external-icon" href="https://bugzilla.mozilla.org/show_bug.cgi?id=907352" title="FIXED: Implement width/height/framerate gUM constraints">bug 907352</a>): + <pre class="brush: json language-json"><code class="language-json"><span class="token punctuation">{</span> + mandatory<span class="token punctuation">:</span> <span class="token punctuation">{</span> + width<span class="token punctuation">:</span> <span class="token punctuation">{</span> min<span class="token punctuation">:</span> <span class="token number">640</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> + height<span class="token punctuation">:</span> <span class="token punctuation">{</span> min<span class="token punctuation">:</span> <span class="token number">480</span> <span class="token punctuation">}</span> + <span class="token punctuation">}</span><span class="token punctuation">,</span> + optional<span class="token punctuation">:</span> <span class="token punctuation">[</span> + <span class="token punctuation">{</span> width<span class="token punctuation">:</span> <span class="token number">650</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> + <span class="token punctuation">{</span> width<span class="token punctuation">:</span> <span class="token punctuation">{</span> min<span class="token punctuation">:</span> <span class="token number">650</span> <span class="token punctuation">}</span><span class="token punctuation">}</span><span class="token punctuation">,</span> + <span class="token punctuation">{</span> frameRate<span class="token punctuation">:</span> <span class="token number">60</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> + <span class="token punctuation">{</span> width<span class="token punctuation">:</span> <span class="token punctuation">{</span> max<span class="token punctuation">:</span> <span class="token number">800</span> <span class="token punctuation">}</span><span class="token punctuation">}</span><span class="token punctuation">,</span> + <span class="token punctuation">]</span> +<span class="token punctuation">}</span></code></pre> + </li> + <li>RTSP streaming support is now available (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=929372" title="FIXED: [RTSP][User Story]Support basic RTSP streaming function.">Bug 929372</a>).</li> + <li>The Resource Statistics API is implemented (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=951976" title="FIXED: API for Resource Statistics">Bug 951976</a>).</li> + <li>The Resource Timing API is implemented (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=822480" title="FIXED: Add in the Resource Timing API">Bug 822480</a>).</li> + <li>fastSeek API is now available for media elements (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=778077" title="FIXED: Implement fastSeek API on media elements (and switch the built-in controls over to it)">Bug 778077</a>).</li> + <li><span class="author-g-41mtsa1hor7b107c i">The <a href="/en-US/docs/Web/API/Network_Information_API">Network Information API</a> is now exposed to Firefox OS (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=960426" title="FIXED: Support Network Information API in Firefox OS">Bug 960426</a>).</span></li> + <li><span class="author-g-41mtsa1hor7b107c i"><span class="author-g-41mtsa1hor7b107c i">The Wifi capabilities of the device can now be returned using <code>WifiManager.getCapabilities()</code> (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1002314" title="FIXED: [B2G]To have a webapi providing WIFI capabilities of device">Bug 1002314</a>).</span></span></li> + <li>The <a href="https://developer.mozilla.org/en-US/docs/Web/API/Navigator.vibrate" title="The Navigator.vibrate() method pulses the vibration hardware on the device, if such hardware exists. If the device doesn't support vibration, this method has no effect. If a vibration pattern is already in progress when this method is called, the previous pattern is halted and the new one begins instead."><code>Navigator.vibrate()</code></a> method behavior has been adapted to the latest specification: too long vibrations are now truncated (<a class="external external-icon" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1014581" title="FIXED: Update Vibration API to conform to latest W3C spec">bug 1014581</a>).</li> + <li><span class="author-g-41mtsa1hor7b107c i">The <a href="/en-US/docs/Web/API/Device_Storage_API">Device Storage API</a> now has mount and unmount capabilities (privileged) (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=971612" title='FIXED: Implement "mount", "unmount" API for device storage'>Bug 971612</a>).</span></li> + <li><span class="author-g-41mtsa1hor7b107c i"><span class="author-g-41mtsa1hor7b107c i">The Feature Detection API is now available (privileged) (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=983502" title="FIXED: Implement and expose the feature detection API to privileged apps">Bug 983502</a>).</span></span></li> + <li> The <a class="new" href="https://developer.mozilla.org/en-US/docs/Web/API/MSISDN_Verification_API">MSISDN Verification API</a> has been added (privileged) (<a class="external external-icon" href="https://bugzilla.mozilla.org/show_bug.cgi?id=988469" title="FIXED: MSISDN verification API for privileged apps">bug 988469</a>).</li> + <li>A new CameraControl API is now available (privileged) (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=909542" title="FIXED: Camera Control API clean-up/streamline">Bug 909542</a>).</li> + <li>The <a href="https://developer.mozilla.org/en-US/docs/Web/API/Data_Store_API">Data Store API</a> has been made available to <a href="https://developer.mozilla.org/en-US/docs/Web/Guide/Performance/Using_web_workers">Web Workers</a> (certified) (<a class="external external-icon" href="https://bugzilla.mozilla.org/show_bug.cgi?id=949325" title="FIXED: C++ wrapper to support DataStore API on the worker">bug 949325</a>).</li> + <li>The <a href="/en-US/docs/Web/API/Device_Storage_API">Device Storage API</a> now uses the File System API spec (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=910412" title="FIXED: Change DeviceStorage API to use FileSystem API spec">Bug 910412</a>).</li> + <li><span class="author-g-41mtsa1hor7b107c i">The deprecated Audio Data API has been removed</span> (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=927245" title="FIXED: Remove deprecated Audio Data API implementation">Bug 927245</a>).</li> +</ul> + +<h3 id="CSS">CSS</h3> + +<ul> + <li><code>position:sticky</code> is now supported, and used in Gaia app layout (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=886646" title="FIXED: implement position:sticky">Bug 886646</a>).</li> + <li><a href="https://developer.mozilla.org/en-US/docs/Web/CSS/flex-grow" title="The CSS flex-grow property specifies the flex grow factor of a flex item."><code>flex-grow</code></a> and <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/flex-shrink" title="The CSS flex-shrink property specifies the flex shrink factor of a flex item."><code>flex-shrink</code></a> can now to transition between zero and non-zero values (<a class="external external-icon" href="https://bugzilla.mozilla.org/show_bug.cgi?id=996945" title="FIXED: Allow flex-grow / flex-shrink to transition between zero and nonzero values">bug 996945</a>).</li> +</ul> + +<h3 id="Technology_support_improvements">Technology support improvements</h3> + +<ul> + <li>Firefox OS 2.0 now supports H.264 video hardware, allowing you to create and playback video encoded using this codec much more efficiently. See <a href="https://developer.mozilla.org/en-US/Firefox_OS/Media_support">Media support on Firefox OS</a> for details.</li> +</ul> + +<h2 id="Older_versions">Older versions</h2> + +<p></p><div class="multiColumnList"> +<ul> +<li><a href="/en-US/docs/Mozilla/Firefox_OS/Releases/1.4">Firefox OS 1.4 for developers</a></li><li><a href="/en-US/docs/Mozilla/Firefox_OS/Releases/1.3">Firefox OS 1.3 for developers</a></li><li><a href="/en-US/docs/Mozilla/Firefox_OS/Releases/1.2">Firefox OS 1.2 for developers</a></li><li><a href="/en-US/docs/Mozilla/Firefox_OS/Releases/1.1">Firefox OS 1.1 for developers</a></li><li><a href="/en-US/docs/Mozilla/Firefox_OS/Releases/1.0.1">Firefox OS 1.0.1 for developers</a></li></ul> +</div><p></p> diff --git a/files/de/archive/b2g_os/releases/index.html b/files/de/archive/b2g_os/releases/index.html new file mode 100644 index 0000000000..3edbcd4c75 --- /dev/null +++ b/files/de/archive/b2g_os/releases/index.html @@ -0,0 +1,24 @@ +--- +title: Firefox OS developer release notes +slug: Archive/B2G_OS/Releases +tags: + - Firefox OS + - NeedsTranslation + - TopicStub +translation_of: Archive/B2G_OS/Releases +--- +<h2 id="Firefox_OS_release_notes_by_version">Firefox OS release notes by version</h2> +<p>This section provides articles covering each new release of Gaia and Gecko for Firefox OS, explaining what features were added and bugs eliminated in each update. There is also a linked summary table showing what APIs are supported by each version of Firefox OS.</p> +<div class="multiColumnList"> + {{ListSubpages("",1,0,1)}}</div> +<h2 id="Other_supporting_information">Other supporting information</h2> +<dl> + <dt> + <a href="/en-US/docs/Mozilla/Firefox_OS/API_support_table">Firefox OS API support table</a></dt> + <dd> + Lists the different APIs available, and what versions of Firefox have support for them.</dd> + <dt> + <a href="/en-US/docs/Web/Apps/App_permissions">App permissions</a></dt> + <dd> + Lists hosted, privileged and certified APIs, along with information on the permissions they need to have set in the App Manifest of your installable apps, such as the manifest permission name, app type required, description, access property, and default permission.</dd> +</dl> diff --git a/files/de/archive/b2g_os/simulator/index.html b/files/de/archive/b2g_os/simulator/index.html new file mode 100644 index 0000000000..5fa8770578 --- /dev/null +++ b/files/de/archive/b2g_os/simulator/index.html @@ -0,0 +1,86 @@ +--- +title: Firefox-OS-Simulator +slug: Archive/B2G_OS/Simulator +translation_of: Archive/B2G_OS/Simulator +--- +<div class="note"> +<p>Diese Seite beschreibt den Firefox-OS-Simulator für Entwickler für Firefox OS 1.2 oder neuer. Wenn Sie Apps für Firefox OS 1.1 entwickeln, sollten Sie sich stattdessen die Dokumentation für <a href="/docs/Tools/Firefox_OS_1.1_Simulator">Firefox-OS-1.1-Simulator</a> ansehen.</p> +</div> + +<p><span style="line-height: 1.5;">Der Firefox-OS-Simulator ist eine Version der höheren Schichten von Firefox OS, die ein Firefox-OS-Gerät simuliert, aber auf dem Desktop läuft</span><span style="line-height: 1.5;">. Dies bedeutet, dass Sie in vielen Fällen kein echtes Gerät benötigen, um Ihre App zu testen und zu debuggen. Er läuft in einem Fenster mit der selben Größe wie ein Firefox-OS-Gerät, enthält die Benutzeroberfläche sowie die integrierten Apps von <span style="line-height: 1.5;">FirefoxOS</span> und simuliert viele der APIs eines Firefox-OS-Geräts</span><span style="line-height: 1.5;">.</span></p> + +<p><span style="line-height: 1.5;">Der Simulator wird als Firefox-Add-on gepackt und verteilt. Sobald Sie ihn heruntergeladen und in Firefox installiert haben, können Sie ihn ausführen, Apps darauf laden und mit dem</span><span style="line-height: 1.5;"> </span><a href="/Firefox_OS/Using_the_App_Manager" style="line-height: 1.5;">App-Manager</a><span style="line-height: 1.5;"> Entwicklerwerkzeuge einsetzen.</span></p> + +<h2 id="Installation"><span style="line-height: 1.5;">Installation</span></h2> + +<p><span style="line-height: 1.5;">Um den Simulator zu installieren, klicken Sie auf die folgende Schaltfläche. (Es stehen mehrere Versionen zur Verfügung und zwecks maximaler Flexibilität sollten Sie alle installieren):</span></p> + +<p><a href="https://ftp.mozilla.org/pub/mozilla.org/labs/fxos-simulator/" style="margin-bottom: 20px; padding: 10px; color: white; text-align: center; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; display: inline-block; background-color: rgb(129, 188, 46); white-space: nowrap; text-shadow: rgba(0, 0, 0, 0.247059) 0px 1px 0px; box-shadow: rgba(0, 0, 0, 0.2) 0px 1px 0px 0px, rgba(0, 0, 0, 0.298039) 0px -1px 0px 0px inset;">Simulator installieren</a></p> + +<p>Um den Simulator zu starten, lesen sie die <a href="/Firefox_OS/Using_the_App_Manager#Using_a_Firefox_OS_Simulator_Add-on" style="font-size: 14px; font-weight: normal; line-height: 1.5;">Anweisungen in der Dokumentation des App-Managers</a>. Sobald der Simulator läuft, können Sie Apps darauf laden und dann mit dem App-Manager debuggen, genau wie mit einem echten Gerät. Ich habe unter Windows 7, Firefox 37.0.1 und mit Firefox OS Simulator die Erfahrung gemacht, dass erster Start in der WebIDE klappt nicht, dafür funktioniert 2. oder 3. Start. Auch dann, wenn eine Meldung: <em>"Zeitüberschreitung bei der operation: connecting to runtime Firefox OS 2.0</em>" in der WebIDE angezeigt wird.</p> + +<h2 id="Die_Simulator-Oberfläche" style="line-height: 30px;">Die Simulator-Oberfläche</h2> + +<p><span style="line-height: 22.00800132751465px;">Der Simulator erscheint als eigenes Fenster, so dass der simulierte Bildschirm 320×480 Pixel groß ist. Um Berührereignisse zu simulieren, können Sie mit der Maustaste klicken und die Maus bei gedrückter Taste ziehen. Durch Klicken und Ziehen von rechts nach links vom Startbildschirm aus sehen Sie also die integrierten Apps, sowie solche, die Sie hinzugefügt haben</span><span style="line-height: 22.00800132751465px;">:</span></p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/7569/simulator-1.2_de.png" style="width: 810px; height: 625px; display: block; margin: 0px auto;"></p> + +<p>Der Simulator verfügt am unteren Rand über deine Symbolleiste mit zwei Schaltflächen:</p> + +<ul> + <li>Die linke Schaltfläche bringt Sie zum Startbildschirm oder schaltet den Simulator aus, wenn Sie sie gedrückt halten,</li> + <li>die rechte Schaltfläche ändert die Ausrichtung des Simulator zwischen Hoch- und Querformat. Dies erzeugt das Ereignis <a href="https://developer.mozilla.org/docs/WebAPI/Managing_screen_orientation#Listening_orientation_change" title="/docs/WebAPI/Detecting_device_orientation">orientationchange</a>.</li> +</ul> + +<h2 id="Einschränkungen_des_Simulators">Einschränkungen des Simulators</h2> + +<p>Beachten Sie, dass der Firefox-OS-Simulator keine perfekte Simulation ist.</p> + +<h3 id="Hardware-Einschränkungen">Hardware-Einschränkungen</h3> + +<p>Abgesehen von der Bildschirmgröße simuliert der Simulator keine hardwareseitigen Einschränkungen eines Firefox-OS-Geräts, wie den verfügbaren Speicher oder die CPU-Geschwindigkeit.</p> + +<h3 id="Audio-Video-Codecs">Audio-/Video-Codecs</h3> + +<p>Die folgenden Codecs hängen von hardwarebeschleunigter Dekodierung ab und werden daher noch nicht unterstützt:</p> + +<ul> + <li>MP3</li> + <li>AAC</li> + <li>H.264 (MP4)</li> + <li>WebM</li> +</ul> + +<p>Dies bedeutet, dass es nicht möglich ist, mit dem Simulator die Wiedergabe von Videos in Apps und Websites wie YouTube zu testen, die diese Codecs benötigen.</p> + +<h3 id="Nicht_unterstützte_APIs"><a name="Unsupported-APIs">Nicht unterstützte APIs</a></h3> + +<p>Bestimmte APIs, die auf dem Gerät funktionieren, funktionieren nicht im Simulator, was meist daran liegt, weil die unterstützende Hardware auf dem Desktop nicht verfügbar ist. Wir haben Simulationen für bestimmte APIs, wie Geolokation, eingebaut und fügen in zukünftigen Versionen vermutlich weitere hinzu. Derzeug werden die folgenden APIs allerdings nicht unterstützt. Deren Verwendung kann zu Fehlermeldungen oder einfach falschen Ergebnissen führen:</p> + +<ul> + <li><a href="/WebAPI/WebTelephony" title="/WebAPI/WebTelephony">Telephony</a></li> + <li><a href="/docs/WebAPI/WebSMS" title="/docs/WebAPI/WebSMS">WebSMS</a></li> + <li><a href="/docs/WebAPI/WebBluetooth" title="/docs/WebAPI/WebBluetooth">WebBluetooth</a></li> + <li><a href="/docs/WebAPI/Using_Light_Events" title="/docs/WebAPI/Using_Light_Events">Ambient Light</a></li> + <li><a href="/docs/WebAPI/Proximity" title="/docs/WebAPI/Proximity">Proximity</a></li> + <li><a href="/docs/WebAPI/Network_Information" title="/docs/WebAPI/Network_Information">Network Information</a></li> + <li><a href="/docs/Online_and_offline_events" title="/docs/Online_and_offline_events">navigator.onLine and offline events</a></li> + <li><a href="/docs/WebAPI/Vibration" title="/docs/WebAPI/Vibration">Vibration</a></li> +</ul> + +<h2 id="Hilfe_erhalten"><a name="Simulator-help"></a>Hilfe erhalten</h2> + +<p><span style="line-height: 1.5;">Wenn Sie eine Frage haben, versuchen Sie, uns auf der </span><a href="https://lists.mozilla.org/listinfo/dev-developer-tools" style="line-height: 1.5;">Mailingliste dev-developer-tools</a><span style="line-height: 1.5;"> oder in </span><a href="irc://irc.mozilla.org/#devtools" style="line-height: 1.5;">#devtools auf irc.mozilla.org</a><span style="line-height: 1.5;"> zu erreichen.</span></p> + +<h3 id="Ausführliche_Protokollierung_aktivieren"><a name="Simulator-verbose-logging"></a>Ausführliche Protokollierung aktivieren</h3> + +<p>In der <a href="/docs/Tools/Web_Console">Web-Konsole</a>, die Sie über den <a href="/Firefox_OS/Using_the_App_Manager#Debugging">App-Manager</a> mit Ihrer App verknüpfen können, werden Nachrichten, von Ihrer App aufgezeichnet. Wenn Sie Nachrichten frühzeitig erfassen möchten, die während des Starts erscheinen, bevor die Konsole verbunden wird und funktioniert, können Sie im Simulator die ausführliche Protokollierung aktivieren.</p> + +<p>Öffnen Sie about:config und erstellen Sie ein neue Einstellung. Der Name der Einstellung hängt von der Version des Simulators ab:</p> + +<ul> + <li>extensions.fxos_1_3_simulator@mozilla.org.sdk.console.logLevel für Firefox OS 1.3</li> + <li>extensions.fxos_1_2_simulator@mozilla.org.sdk.console.logLevel für Firefox OS 1.2</li> +</ul> + +<p>Setzen Sie den String-Wert auf „all“ und deaktivieren und reaktivieren Sie das Add-on im Add-ons-Manager. Jetzt erscheinen zusätzliche Nachrichten über die Ausführung des Simulators in der <a href="/docs/Tools/Browser_Console">Browser-Konsole</a>.</p> diff --git a/files/de/archive/b2g_os/troubleshooting/index.html b/files/de/archive/b2g_os/troubleshooting/index.html new file mode 100644 index 0000000000..a83cc46042 --- /dev/null +++ b/files/de/archive/b2g_os/troubleshooting/index.html @@ -0,0 +1,44 @@ +--- +title: Troubleshooting Firefox OS +slug: Archive/B2G_OS/Troubleshooting +translation_of: Archive/B2G_OS/Troubleshooting +--- +<div class="summary"> +<p>This article provides tips for resolving common problems you may have while using Firefox OS. Please feel free to add more content to this page!</p> +</div> + +<h2 id="Networking_problems">Networking problems</h2> + +<p>If you are having trouble connecting to Wi-Fi networks, it may be helpful to delete the Wi-Fi configuration file:</p> + +<pre>adb shell rm /data/misc/wifi/wpa_supplicant.conf +adb reboot +</pre> + +<div class="note"> +<p><strong>Note:</strong> These instructions assume you have <a href="/en-US/docs/Mozilla/Firefox_OS/Installing_on_a_mobile_device#Configuring_the_udev_rule_for_your_device" title="en-US/docs/Mozilla/Firefox_OS/Installing_on_a_mobile_device#Configuring_the_udev_rule_for_your_device">configured the udev settings</a> for your device.</p> +</div> + +<h2 id="Bricked_Phone">Bricked Phone</h2> + +<p>If you happen to brick the phone, by, for example, trying to flash wrong images on it, try rebooting into the bootloader (fastboot or heimdal depending on your phone). The exact sequence varies depending on the phone. Try removing the usb cable, removing and then re-inserting the battery. For the Unagi and Otoro, press and hold volume up and power for several seconds until you see the splash screen. Verify that the phone is in bootloader mode by using <code>fastboot devices</code> (or <code>heimdall devices</code> for some Samsung phones). Once you can see your phone using <code>fastboot devices</code>, you can use <code>./flash.sh </code>to flash your image for Unagi.</p> + +<h2 id="Flashing_Red_LED_(otorounagi)">Flashing Red LED (otoro/unagi)</h2> + +<p>This means that the battery is too low to boot the phone. You can let it charge for a while (until the red LED stops flashing and a little bit longer), or you can unplug the USB cable, remove the battery, insert the USB cable, and re-insert the battery.</p> + +<h2 id="Failure_to_receive_SMS_after_switching_over_from_iPhone">Failure to receive SMS after switching over from iPhone</h2> + +<p>If you have switched your SIM card over from an iPhone to a Firefox OS (or another different platform) device, you may run into a problem whereby you can no longer receive text messages from iPhone users. This is because iPhone to iPhone SMS messages are sent using <a href="https://www.apple.com/ios/messages/">iMessage</a>, which works by routing iPhone-to-iPhone messages through Apple's servers instead of sending them as actual text messages, saving iPhone users money. Unfortunately when you leave iPhone, iMessage has no way of knowing you've left and SMS from other iPhone users will still go through iMessage, meaning that you won't receive them.</p> + +<p>To fix this you have to turn off iMessage for your SIM; there is a guide on how to do this at imore.com — read <a href="http://www.imore.com/text-issues-switching-iphone-android-heres-fix">Here's how to turn off iMessage</a>.</p> + +<h2 id="Device_not_appearing_to_ADB_on_OSX">Device not appearing to ADB on OSX</h2> + +<p>When running adb devices in OSX, some devices may simply not appear in the device list, for a variety of reasons. This can be fixed by adding your device's vendor ID to your <code>~/.android/adb_usb.ini</code> file, to provide a hint to ADB for finding your device.</p> + +<div class="note"> +<p><strong>Note</strong>: See <a href="http://stackoverflow.com/a/7136003/1027966">this stackoverflow post</a> for a lot more detail, including how to find the vendor ID of the attached device, and how to add it into <code>adb_usb.ini</code>.</p> +</div> + +<p> </p> |