Los teléfonos en sí no están construidos con esos idiomas. Aquí hay una vista de lo que incluye una llamada pila de software:
Comenzando desde abajo tenemos estas capas:
- Capa de hardware. En este caso, el procesador de un instrumento de Texas. Los procesadores de teléfonos móviles son SoC o System-on-Chips. Incluye la CPU (Cortex A8), un acelerador de gráficos (PowerVR) y algunos otros periféricos y aceleradores que hacen que el chip sea lo suficientemente potente como para los teléfonos móviles modernos.
- La segunda capa desde abajo es la primera capa de software. Este es el núcleo del sistema operativo. Para programar esto necesitamos un lenguaje muy eficiente. En este caso, como los androides tienen un kernel de Linux, se ha escrito con el lenguaje C. Los controladores de hardware se escriben más comúnmente con él. Este compilador también debe ser compatible con nuestro procesador y, por lo general, estos procesadores especializados obtienen sus compiladores del proveedor del procesador. C ++ es otra opción para este nivel. Entonces, sí, estamos limitados, al menos en esta capa, a menos que escribamos nuestro propio compilador (lo cual no es aconsejable porque tiene que ser eficiente y el proveedor tiende a ser la mejor fuente para un compilador eficiente).
- La capa verde es la siguiente. En este nivel, los idiomas de nivel superior son más comunes. C ++ es muy común a este nivel. Esta capa ofrece servicios que las aplicaciones pueden usar, como WebKit en este caso, que es el motor del navegador. Por lo general, esta capa también está restringida.
- El cuarto nivel son solo las interfaces con los servicios de la capa anterior. En el caso de Android, creo que están escritos en Java, pero también podrían escribirse con C ++ u Objective-C (iOS).
- En la capa superior, vemos una gran cantidad de Java / Objective-C. Estas son las aplicaciones que realmente usa en su teléfono.
Esta arquitectura puede variar un poco entre los diferentes sistemas (algunas capas pueden dividirse aún más, etc.) pero en general esa es la descripción general de cómo se construye la pila de software.
Esta imagen carece por completo del núcleo DSP (procesamiento de señal digital) que maneja el procesamiento de datos desde y hacia la radio. “DSP Link Driver” maneja la transferencia de datos entre el núcleo A8 y el DSP. Estos datos se cambian a voz, páginas web, etc. en las diversas capas de software y aceleradores de hardware. DSP también requiere software y esto es aún más probable que C que el sistema operativo.
- ¿Qué libro es mejor para la aptitud cuantitativa?
- ¿Cuáles son los modelos de teléfonos móviles más populares en África en 2011?
- ¿Es posible rastrear una llamada de broma usted mismo?
- Con todo el uso de teléfonos celulares, rayos X, resonancia magnética y microondas, ¿estamos todos "jugando con fuego"?
- ¿Por qué los teléfonos móviles cuestan tanto sin un contrato?
Debería obtener algunas cosas como controladores y algoritmos de procesamiento de señal optimizados del proveedor del procesador para que no necesite escribir todo usted mismo, pero aún habría mucho que hacer para un teléfono moderno. En realidad, cualquier empresa nueva de hoy elegirá una plataforma de telefonía móvil existente y construirá su producto además de eso. El 99% elige Android. iOS está cerrado y Windows Phone no es muy popular, mientras que otros como Sailfish lo son aún menos. Desarrollar una pila completa de software desde cero requeriría cientos, si no miles de horas hombre para construir.