可以使用C做第三方开发。但是有几个问题:

1 C接口在图形界面上支持的不太好,所以用纯C,做界面会很恶心。
2 C语言编译依赖于编译器,而不同平台编译器不同,所以无法做到通用。也就是说,用C编出来的一个bin文件,只能用于一个型号或者一系列型号的。 对推广很不利。
3 C编译的文件,要想运行,在当前安卓架构中,添加很不方便。由于以上几个原因,很少有用C来做开发应用的。反而是C++,有一些人在用QT做可移植开发
android mvvm架构是微软公司旗下架构框架。
微软的WPF带来了新的技术体验,如Silverlight、音频、视频、3D、动画,这导致了软件UI层更加细节化、可定制化。
同时,在技术层面,WPF也带来了诸如Binding、Dependency Property、Routed Events、Command、DataTemplate、ControlTemplate等新特性。
android mvvm框架的由来便是MVP(Model-View-Presenter)模式与WPF结合的应用方式时发展演变过来的一种新型架构框架。
它立足于原有MVP框架并且把WPF的新特性糅合进去,以应对客户日益复杂的需求变化。
WPF的数据绑定与Presentation Model相结合是非常好的做法,使得开发人员可以将View和逻辑分离出来,但这种数据绑定技术非常简单实用,也是WPF所特有的,所以我们又称之为android mvvm架构。
这种模式跟经典的MVP(Model-View-Presenter)模式很相似,除了你需要一个为View量身定制的model,这个model就是ViewModel。
ViewModel包含所有由UI特定的接口和属性,并由一个ViewModel的视图的绑定属性,并可获得二者之间的松散耦合,所以需要在ViewModel直接更新视图中编写相应代码。
数据绑定系统还支持提供了标准化的方式传输到视图的验证错误的输入的验证。
Android MVVM架构基本思路是将应用程序分为三个主要组件:Model、View和ViewModel。Model层负责处理数据的获取和处理;View层负责展示用户界面;ViewModel层则是连接Model和View的桥梁,处理业务逻辑和通知View更新。通过使用数据绑定和命令绑定等机制,实现了解耦和方便测试的特点。
Android使用linux2.6作为操作系统,Linux2.6是一种标准的技术,Linux也是一个开放的操作系统。Android对操作系统的使用包括核心和驱动程序两部分,Android的Linux核心为标准的Linux2.6内核,Android更多的是需要一些与移动设备相关的驱动程序。
2.各种库(Libraries)和Android 运行环境(RunTime)
本层次对应一般嵌入式系统,相当于中间件层次。Android的本层次分成两个部分一个是各种库,另一个是Android 运行环境。
Android的应用程序框架为应用程序层的开发者提供APIs,它实际上是一个应用程序的框架。
Android的应用程序主要是用户界面(User Interface)方面的,通常以JAVA程序编写,其中还可以包含各种资源文件(放置在res目录中)JAVA程序及相关资源经过编译后,将生成一个APK包。