精华内容
下载资源
问答
  • 摘要:本文通过对Android RIL层代码分析,将android RIL层功能在纯LINUX平台上实现,完全脱离了Android系统.为基于LINUX的通用平台实现一套成熟的RIL层代码,并开发出相应的框架层,以便基于LINUX的平台能快速成熟的...

    摘要:本文通过对Android RIL层代码分析,将android RIL层功能在纯LINUX平台上实现,完全脱离了Android系统.为基于LINUX的通用平台实现一套成熟的RIL层代码,并开发出相应的框架层,以便基于LINUX的平台能快速成熟的向3G网络发起相关业务.在OpenWrt系统上验证了移植后的RIL层代码正常工作.

    1.课题研究的背景和意义

    1.1 Android RIL简介

    Android RIL(Radio Interface Layer)提供了无线基带Modem与电话应用之间的抽象层.在Android RIL层中,完善的考虑了电话应用的各种情况,如:双SIM卡;电话,短信,彩信,PS DATA业务,PIN/PUK码等各种3G网络业务.

    RIL层在Android系统中,处于硬件抽象层,运行在一个独立的守护进程中,主要为框架层和基带接口提供适配,具有良好的独立性.其中的通信机制,与框架层接口主要使用Socket通信,内部线程主要使用管道,与基带接口默认使用AT命令.且其代码均由C和C++来完成,依赖第三方库较少,所以,Android RIL层具有良好的移植性.

    1.2 移植Android RIL的意义

    目前很多基于L I N U X平台的系统,如:

    PC(LINUX操作系统),QT,路由器平台(如O p e n W r t系统)等等,都对连接3 G网络有需求,但在这些平台原生的功能中,没有独立的RIL接口层,所以开发一套基于LINUX的独立应用,用来支持与基带发起各种3G网络相关业务是很有意义的.Android RIL具有良好的稳定性,独立性,以及对3G网络业务的完整性,所以将其移植成一个独立的,供LINUX通用平台使用的RIL层,可方便所有的基于LINUX的平台完成各种电话应用的开发.

    2.Android系统中RIL层分析

    2.1 RIL层在Android系统中的位置

    RIL在Android系统中,处于硬件抽象层位置.主要通过SOCKET通信连接框架层,将框架层下发的消息解析后,向基带下发相应的AT指令,并将从基带返回的AT指令的响应,封装成消息,返回给框架层.位置如图1所示.

    67cb38482dafe68bafd729d549221942.png

    2.2 Android RIL工作原理

    2.2.1 Android RIL代码说明

    RIL主要由RILD(radio interface layerdaemon)守护进程和两个动态库:librefrence_ril.so和libril.so组成.Android工程源代码目录中,RIL代码包含于hardware/ril目录中,主要文件说明如表1所示.

    2.2.2 Android RIL工作原理

    rild以一个main函数作为整个RIL层的入口点,负责完成初始化.libril.so库包含了主要的消息循环流程,主要负责与框架层进行交互,在接收框架层命令后,调用相应函数处理,然后将命令响应结果传回客户进程.

    librefrence_ril.so主要提供各个具体业务的AT指令的封装和解析接口,供libril调用,向下通过AT_COM和基带进行交互.具体工作线程如图2所示.

    61410042a037314dbdca2ed4367f2631.png

    3.移植Android RIL层功能

    通过对Android RIL层代码分析, 在RIL层主要使用了基于linux的POSIX Thread(pthread)多线程编程和socket IPC通信,这些在移植过程中是无须考虑的.需要移植的是RIL层依赖于Android系统的功能.

    3.1 移植Android系统属性

    系统属性系统的一个重要特性.属性数据由init进程维护,用于管理系统全局配置和状态,每个属性对应一对键值.

    在RIL层中对系统属性的依赖比较小,所以不需要将Android系统属性机制全部移植.RIL层主要在RILD初始化过程中需要从系统属性读取reference-ril.so路径.AT设备路径,网卡设备等信息,以及运行过程中将从网络中动态获取的IP和DNS等信息写入对应系统属性中.

    可根据所处的具体系统,将需要的信息写入系统保存全局共享参数的机制,并根据所处系统的配置方法去获取需要的参数.由于RIL层需要获得的参数非常有限,所以同样可以配置RIL层独有的配置文件,通过配置和解析RIL层的配置文件来达到替换Android系统属性机制.甚至可直接在rild启动的时候,作为应用参数直接传入.

    3.2 移植Android.mk编译文件

    Android. m k机制是Android平台利用makefile封装成一种特有的编译机制,在通用linux平台上,通常每个模块都有自己的Makefile文件.所以我们需要根据。/libril../reference-ril和。/rild文件夹中的Android.

    mk内容写出对应的Makefile文件.从本质上来讲,Android.mk就是对Makefile的的一部分,所以移植编译文件是很简单的.

    . / l i b RIL和。 / reference – RIL中的Android.mk描述了libril.so和libreferenceril.

    so两个动态库的生成和安装路径../rild中的Android.mk描述了rild守护进程的生成和安装路径和链接libril.so库.

    3.3 移植Parcel消息

    由以上对Android RIL层功能分析发现,框架层和RIL层的交互是通过socket消息来互相传递的.消息作为IPC通信的数据单元是通过Parcel容器来进行封装的,用于存储序列化数据.所以在移植过程中,完成相同的消息机制,是整个移植工作的任务.源码位于Frameworks/base/libs/binder/parcel.cpp.

    分析源码可知:1.整个读写全是在内存中进行,主要根据数据大小需求通过malloc().realloc().memcpy()等内存操作动态分配,这些接口都是标准C所具备的,移植性非常好;2.Binder通信中数据对象都是封装成为parcel格式进行传输的,传输的类型包括IBinder.Filedescriptor等,这些数据在传输过程中需要做特殊处理,移植的依赖较多,好在RIL部分用不到Binder通信,所以这部分代码可以从中删除,降低了移植难度,所以只需要实现普通数据的消息封装.在Parcel中对普通数据的读写,定义了以下方法:

    9a36e048ab77c1fa02d3db8a8df3df36.png

    基本数据的消息封装通过这些方法来写入Parcel和从Parcel读出.由于AT指令的参数以及AT response均为Int和String型数据,所以在RIL层中主要使用到了对这两种数据操作的方法.所以通过C++代码实现一个容器,并含有writeInt(int),readInt(),writeString(String),readString()四种处理数据的方法是非常简单的.所以通过自己实现的类来模拟Android在RIL层中的消息机制是可行的.

    3.4 开发框架层

    综上所述,将Android RIL移植到基于LINUX的通用平台就完够实现了.RIL只能支持一路socket连接,事物处理都是串行的,要让其工作在多任务的系统上,互相不阻塞对方,需要更上层进行封装,Android的移动通信相关业务流程以及策略控制都是在框架层是通过JAVA代码实现的,在Android中叫做Telephony,Telephony为上层应用提供了并行访问的接口,但一般LINUX平台是没有运行JAVA虚拟机的,所以Android的Telephony是无法进行移植的,所以需要开发一个与AndroidTelephony对等的框架层.

    框架层主要起连接RIL层和应用的作用,框架内部分为了客户端和服务端,客户端封装成共享库提供函数接口供应用程序使用,函数内部通过socket与服务端通信,服务端可以支持多个客户端同时连接,并将客户端的请求串行化发送到RILD,能够将RILD返回的结果异步地将返回给对应的请求客户端.为避免阻塞,服务端由三个线程来实现,如图3所示.线程一(accept_thread):接收上层应用下发的消息.将应用接入的clients排序,并将发送的消息存入链表data_queue中;线程二(sender_thread):将应用消息写入与RIL层的接口.依次从链表data_queue中取出消息,并依次写入到RIL层的接口;线程三(receiver_thread):将RIL的response写回应用.从RIL层的接口中读出消息,并判断出所属的应用描述符,并写入.

    d460800de498a5f2a6e18cb0198e79cd.png

    4.搭建验证平台

    OpenWrt系统是一个运行在嵌入式设备上的LINUX系统,主要实现路由器功能,所以PSDATA是其基本的业务.将OpenWrt系统移植到ARM开发板上,并加载基带模块.通过移植的RIL层代码,使开发板成功连入3G网络.驱动枚举出/dev/设备作为AT_COM与RIL层通信,并创建网卡设备作为网络通信设备,如图4所示.编写应用创建SOCKET,并连入框架层的服务端,并在应用中将PS DATA请求写入Parcel.

    132201854ba25dc1e786f7dac45cc875.png

    在系统中成功ping通网络,验证了移植后的RIL层在LINUX平台上运行良好.

    5.总结

    在基于LINU X的通用平台上,通过移植工作,成功实现RIL层功能和框架层应用.在Android RIL中定义了电话.短信.PS DATA等100多种与基带通信业务.在平台上便可根据功能需求向RIL层发起所需请求,便能简单.方便.高效的完成这些定义好的业务.移植后的RIL层将所有的LINUX平台与基带建立连接,实现了通用性.

    展开全文
  • Android应用移植到OPhone平台指南

    千次阅读 2010-11-02 22:17:00
    <br />1.1 概述OPhone平台基于Linux和开放手机联盟(OHA)的Android系统,经过中国... 本文重点介绍OPhone和Android应用开发的差异,为OPhone和Android开发者提供指导。 1.2 兼容性 目前,OPhone共发布了1

    1.1    概述

    OPhone平台基于Linux和开放手机联盟(OHA)的Android系统,经过中国移动的创新研发,设计出拥有新颖独特的用户操作界面,增强了浏览器能力和WAP兼容性,优化了多媒体领域的OpenCORE、浏览器领域的WebKit等业内众多知名引擎,增加了包括游戏、Widget、Java ME等在内的先进平台中间件。
     
    本文重点介绍OPhone和Android应用开发的差异,为OPhone和Android开发者提供指导。
     
    1.2    兼容性
     
    目前,OPhone共发布了1.0和1.5两个平台版本,其中OPhone 1.0与Android 1.0兼容,OPhone 1.5与Android 1.5兼容。由于Android 1.5与Android 1.0不兼容,因此OPhone 1.5与OPhone 1.0不兼容。Android 1.0 API和Android 1.5 API变化比较大,是导致OPhone 1.0和OPhone 1.5之间差异的主要原因。
     
    Android CTS (Compatibility Test Suite)是Google提供的Android兼容性测试工具。CTS共有2万多个测试用例,OPhone取得了很好的CTS测试结果:CTS测试通过率:99.96%。Android Market排名前270的应用(2009年10月)有超过80%的可以直接在OPhone平台上运行。部分应用移植失败的原因主要有:
    • OPhone不支持Google Maps库
    • 硬件方面的差异:显示分辨率、传感器、和硬件相关的特殊库
    • Tabview的UI显示
    1.3   OPhone API
     
    OPhone SDK在兼容Android API的基础上还提供了OPhone API,来扩展OPhone平台的能力。如果应用程序使用了OPhone API,则此程序无法移植到Android系统。关于OPhone API的使用,请参考OPhone开发者社区的文档(http://www.ophonesdn.com/documentation/)。
     
    OPhone SDK 1.0提供了如下OPhone API:
    • Home Screen API
    • Local Search API
    • Mail API
    • OPhone SDK 1.5提供了如下OPhone API:
    • AGPS API
    • Video Telephony API
    • Home Screen API
    • Local Search API
    1.4   应用程序模型
     
    OPhone平台除了支持APK应用程序开发之外,还支持Mobile Widget和Java ME应用程序开发。
    Mobile Widget 应用是采用HTML、JavaScript和CSS等网络技术开发的应用程序。在OPhone中,Mobile Widget应用遵循的是联合创新实验室(Joint Innovation Lab, JIL) 的JIL Widget 规范。详细信息请参考如下网址:
     
    OPhone平台支持Java ME应用程序(MIDlet)的开发,目前OPhone 1.5上实现了中国移动Java 4.1规范。
     
    1.5 应用程序开发的差异
    1.5.1   网络数据连接的方法
     
    OPhoneAndroid建立网络数据连接的方法有所不同。OPhone 平台实现了多个应用程序对分组数据复用的功能,不同的应用可以根据自身需要,打开不同的网络连接,通过这种方式我们可以在不同的OPhone应用中同时进行诸如浏览网页、接受彩信、发送邮件这样的网络任务。
    关于如何在OPhone中实现网络连接的管理,详情请见:
     
    1.5.2      不支持Google Maps
     
    OPhone目前不支持Google Maps API,因此使用Google Maps API开发的Android应用程序将无法移植到OPhone平台。
     
    1.5.3      多分辨率支持
     
    由于市面上的大部分Android终端设备都是HVGA(480x320),因此许多应用程序在开发时并未考虑多分辨率的问题。这就导致部分Android Market上的应用程序安装在非HVGA(480x320)分辨率的OPhone终端,出现分辨率不匹配的问题。
     

     

    目前OPhone终端除了支持HVGA(480x320)分辨率之外,还支持nHD(640x360)、WVGA(800x480)、FWVGA(854x480)等。因此,在OPhone平台上开发应用程序,应当考虑多分辨率支持,并且在模拟器上应用测试时使用分辨率设置。

     

     
     
     
     
     
    关于如何在OPhone中实现多分辨支持,详情请见:
     
    1.5.4      传感器支持
     
    不同的OPhone终端所支持的传感器不同,因此一些需要特殊传感器支持的游戏或应用无法在某些OPhone终端上正常运行。
     
     
     
    目前Android 平台支持的传感器有:
    android. hardware.Sensor
     
            TYPE_ACCELEROMETER
            TYPE_GYROSCOPE
            TYPE_LIGHT
            TYPE_MAGNETIC_FIELD
            TYPE_ORIENTATION
            TYPE_PRESSURE
            TYPE_PROXIMITY
            TYPE_TEMPERATURE
     
    目前的建议是,在使用之前先检测当前OPhone终端支持哪些传感器,相关的测试代码如下:
     
    1. SensorManager sensorMgr = (SensorManager)getSystemService(Context.SENSOR_SERVICE);  
    2. List list = sensorMgr.getSensorList(Sensor.TYPE_ALL);  
    3. for (int i = 0; i < list.size(); i++) {  
    4. Sensor sensor = (Sensor) list.get(i);  
    5. result += "/t" + sensor.getName() + "/n";  
    6. }  
     
    1.5.5      TabviewUI显示
    部分Android Market上使用了Tabview的应用安装在OPhone终端上会出现显示错误。这是由于OPhone平台只允许在一屏有三个Tab,而对此的实现导致了该问题的发生。
     
     
     
    但只要严格按照以下例子程序就可以避免该问题的出现:
     
    1. TabHost tabHost = getTabHost();  
    2. LayoutInflater.from(this).inflate(R.layout.tabs1, tabHost.getTabContentView(), true);  
    3. tabHost.addTab(tabHost.newTabSpec("tab1")  
    4.                 .setIndicator("tab1")  
    5.                 .setContent(R.id.view1));  
    6. tabHost.addTab(tabHost.newTabSpec("tab3")  
    7.                 .setIndicator("tab2")  
    8.                 .setContent(R.id.view2));  
    9. tabHost.addTab(tabHost.newTabSpec("tab3")  
    10.                 .setIndicator("tab3")  
    11.                 .setContent(R.id.view3));  
     
     
    1.5.6      OPhone特殊UI风格
     
    由于部分的OPhone终端设备没有Home按键,因此对于应用开发者而言,不建议隐藏Status Bar和Title Bar。
    但由于某些应用,特别是游戏,需要全屏显示,可以参考一下代码实现:
     
    1. //Hide title bar  
    2. requestWindowFeature(Window.FEATURE_NO_TITLE);    
    3. //Hide status bar  
    4. getWindow().setFlags (WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_ FULLSCREEN);  
     
    1.5.7   应用签名
     
    OPhone平台和Android平台在应用签名方面没有区别,但需要注意的是,调试用签名和发布用签名所使用的证书是不同的。如果应用程序没有被签名,在安装的时候就会出现以下错误:
    Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]
     
    如何对应用程序签名,详情可以参考一下文档:
    展开全文
  • 摘要:本文通过对Android RIL层代码分析,将android RIL层功能在纯LINUX平台上实现,完全脱离了Android系统.为基于LINUX的通用平台实现一套成熟的RIL层代码,并开发出相应的框架层,以便基于LINUX的平台能快速成熟的...
  • 序言: 由于本人还是比较偏重于先说明原理在说明实际操作步骤,要知其然更要知其所以然,如下图所示: 传统的linux系统中的程序基本都依赖于glibc(至于...这就决定了要想移植linux上的程序到android上就必须...

    序言:

    由于本人还是比较偏重于先说明原理在说明实际操作步骤,要知其然更要知其所以然,如下图所示:

    Linux程序移植到Android上

    传统的linux系统中的程序基本都依赖于glibc(至于什么是glibc可以百度去),而右边AOSP(Android Open-Source Project)的程序基本都是依赖于Bionic(由谷歌公司开发类库,用来替代glibc)。这就决定了要想移植linux上的程序到android上就必须解决这个依赖的类库不同的问题。

    一般情况下,有两种方法。

    一个就是将程序静态编译,将程序中所有需要的库全部编译进可执行文件中。这样程序在android中运行就不需要链接任何动态库了。但是带来一个非常大的弊端就是这个程序会非常大,资源利用会非常低下。一个简单的helloWorld!都可以达到好几百k!

    另一个就是用ld-llinux.so.3来替代android系统中/system/bin/linker来作为链接器进行动态链接,当然这就需要将相应的动态库也拷贝到android中(个人理解,如果表述不够准确请指正)。这样就可以进行动态链接,并且正常运行了。

    静态编译方法:

    首先我们以移植一个helloworld程序作为例子。

    #include<stdio.h>

    void main()

    {

    printf("HelloWorld!\n");

    }

    输入命令进行静态编译:arm-none-linux-gnueabi-gcc hello.c -static -o hello.out

    然后利用adb push 将helllo.out放进android设备的/system/bin目录中,

    用chmod 755 /system/bin/hello.out 更改其为执行权限。

    输入: hello.out 即可看到屏幕上输出HelloWorld!

    如上说所一样,这个hello.out程序有近650k,而且其使用的代码不可重用。

    动态链接方法:

    动态链接依旧按照上述helloworld程序作为例子。

    编译命令为:arm-none-linux-gnueabi-gcchello.c -ohello.out -Wl,-dynamic-linker=/system/lib/ld-linux.so.3

    这里需要说明的是,这个/system/lib是指android手机中存放连接器ld-linux.so.3的目录。正式利用这个连接器来替代android系统中/system/bin/linker才能动态链接运行程序。

    编译完成后,可以输入命令 readelf -d hello.out 来查看它的动态链接库有哪些。比如这个helloworld程序的动态链接库如下图所示:

    Linux程序移植到Android上

    可以看到libgcc_s.so.1和libc.so.6就是这个helloworld所需要的动态链接库。

    然后找到arm-none-linux-gnueabi-gcc的安装目录。如果你是解压压缩包配置path的安装路径的话,这些动态链接库文件就在./arm-none-linux-gnueabi/libc/armv4t/lib 下。

    找到ld-linux.so.3和上述需要的动态链接库,将他们cp 出来。

    然后,利用adb push 将他们放入android系统的/system/lib目录下,将hello.out放入到/system/bin下,更改hello.out和ld-linux.so.3的权限为可执行即可(chmod 755 hello.out)。这里需要说明一下,ld-linux.so.3作为他们的连接器,一定需要可执行权限,否则就会提示permission denied。

    做好这些后,输入hello.out 即可看到屏幕打出helloworld!

    Linux程序移植到Android    http://www.linuxidc.com/Linux/2011-05/35556.htm

    https://www.linuxidc.com/Linux/2014-03/97499.htm

    展开全文
  • 一、Android系统架构 第一层:Linux内核 包括驱动程序,管理内存、进程、... 包括Linux的.so文件以及嵌入APK程序中的NDK代码 第三层:Android SDK API 包括用Java编写的各种Library 第四层:应用程序...

    一、Android系统架构

       第一层:Linux内核

                 包括驱动程序,管理内存、进程、电源等资源的程序

       第二层:C/C++代码库

                包括Linux的.so文件以及嵌入到APK程序中的NDK代码

      第三层:Android SDK API

               包括用Java编写的各种Library

      第四层:应用程序

               这是程序员与非程序员都要接触到的应用程序

    二、Android系统移植

    首先,了解一个概念HAL(硬件抽象层),它位于第二层,普通的程序库(.so文件);

    Android操作系统:AndroidSDK——>HAL——>Linux驱动;

    Linux系统:应用程序——>Linux驱动;

    先用一个例子说明一下,例如,为硬件平台增加了一个新型的Wi-Fi模块,就需要为这个Wi-Fi模块编写新的驱动程序,或修改原来的驱动程序,以使得Linux内核可以与Wi-Fi模块正常交互。

    由此可知道,Android系统移植是让Android操作系统在某一个特定硬件平台上运行,即该操作系统支持硬件平台的CPU架构,要让Android可以识别平台上的各种硬件,主角就是Linux驱动。

    注意:在移植Linux驱动时,主要考虑Linux内核版本,就算Android版本不同,只要Linux内核版本相同,Linux驱动就可以相互替换

    三、Linux设备驱动

    驱动就是直接和硬件交互的一类程序,负责对硬件进行抽象;提供应用程序可方位的API,只要应用程序通过驱动来访问硬件,就不需要修改应用程序的源代码。当有很多型号的打印指令不一样的打印机,同时被同一个应用程序调用,会出现不能使用的情况,当我们进行了驱动程序的开发,通过接口对类进行抽象,就可以大大降低硬件耦合度过高的情况,通过驱动来访问打印机。

     

    转载于:https://www.cnblogs.com/xiansheng/p/5418238.html

    展开全文
  • windows软件移植到Linux —— wine 导读: wine是我们在Linux下运行部分Windows应用程序必不可少的工具。 接下来主要了解wine服务的工作原理、wine服务的部署以及windows应用程序在统信UOS操作系统中的安装。 ...
  • Android按键的处理是Window Manager负责,主要的映射转换实现在android源代码frameworks/base/libs/ui/EventHub.cpp此文件处理来自底层的所有输入事件,并根据来源对事件进行分类处理,对于按键事件,它首先记录驱动...
  • 摘要:本文通过对Android RIL层代码分析,将android RIL层功能在纯LINUX平台上实现,完全脱离了Android系统.为基于LINUX的通用平台实现一套成熟的RIL层代码,并开发出相应的框架层,以便基于LINUX的平台能快速成熟的...
  • 摘要:本文通过对Android RIL层代码分析,将android RIL层功能在纯LINUX平台上实现,完全脱离了Android系统.为基于LINUX的通用平台实现一套成熟的RIL层代码,并开发出相应的框架层,以便基于LINUX的平台能快速成熟的...
  • Android Linux Kernel 移植流程

    千次阅读 2014-03-12 17:30:28
    Android Kernel移植流程 参考文档 Documentation/android.txt 修改kernel config Android Driver Android Binder:基于openBinder框架的驱动,进程间通信底层主要驱动,没有可它,android无法工作...
  • NDK Android* 应用移植方法

    千次阅读 2014-02-24 11:27:14
    NDK Android* 应用移植方法 ...本指南用于帮助开发人员将现有的基于 ARM* 的 NDK 应用移植到 x86。如果您已经拥有一个正常运行的应用,需要知道如何能够快速让 x86 设备在 Android* marke
  • 【TINY4412】QT5移植笔记:(2)QT5.7移植到Linux 宿主机 : 虚拟机 Ubuntu 16.04 LTS / X64 目标板[底板]: Tiny4412SDK - 1506 目标板[核心板]: Tiny4412 - 1412 LINUX内核: 4.12.0 交叉编译器: arm-none-...
  • 这些设备中大多还是采用Linux,带屏的设备则大多采用Android,导致他们必须采用较高成本的硬件。 AliOS Things是阿里云IoT研发的应用于物联网智能设备的嵌入式实时操作系统,是HaaS100搭载的操作系统。目前AliOS ...
  • [size=small] GoAhead是一款强大的嵌入式的web服务器...而现在android又在嵌入式系统中应用越来越广泛,以下为在android移植goahead的详细步骤,其他嵌入式linux与此相同:[/size] [b]1.下载goahead的源码[/b]...
  • 在详细研究Android应用程序开发的核心组件和应用程序生命周期的基础上,实现了音乐播放器和对对碰游戏两个Android应用程序,并在Android模拟器、Android手机上和移植了Android系统的Devkit8000开发板上进行验证。...
  • (1) 以FS4412开发板为开发平台,移植Linux操作系统,含引导程序、Linux操作系统内核、文件系统。具体任务有搭建嵌入式Linux开发环境、编译Bootloader、裁剪和编译Linux内核、制作和挂载NFS文件系统。 (2) 开发Linux...
  • 接上文,把上文中开发的驱动移植到android系统中来。 因为我身边没有Android系统的设备,很疑惑,目前确实没有。 因此只好在模拟器上打主意了,我想模拟器跟真机其实差不多的,没道理模拟器能移植成功,而真机无法...
  • 基于S5PC100的WIFI驱动移植应用本科学生毕业论文(设计)题目(中 文):基于S5PC100的WIFI驱动移植应用(英 文):Transplantation and Application of WiFi Driver Based on S5PC100姓 名 学 号 院 (系)电子工程系专业...
  • Qt移植到ARM Linux教程

    2017-12-09 10:00:33
    Qt移植到ARM Linux教程 - VeryARM 6-7 分钟 Qt 是一个1991年由奇趣科技开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象...
  • Android系统移植

    2017-08-09 17:27:59
    该篇文章有些时日了,已经找不原文了,个人觉得还是对嵌入式Android主板的系统移植有一个很明确的认识,希望对大家的理解也有帮助!  通过Android系统移植,让它在目标系统上运行起来。Android系统由于用的是...
  • 让Qt应用程序移植到Android

    千次阅读 2012-11-25 21:14:51
     Qt最大的优势就是跨平台,一次性开发的Qt应用程序,可以跑Windows、跑linux、跑MAC……如今移动平台android操作系统如此火爆,Qt当然不能放过对android的支持,对了,还有iphone/ipad。而且,c++开发者们,想做...
  • linux下编译vlc移植到android平台

    千次阅读 2014-04-14 22:06:07
    由于项目需要,需要一个在android平台能够支持RTSP协议的播放器,由于之前没有android平台的经验,所以找了著名的video LAN的VLC播放器,更令人惊奇的是这款播放器居然还是完全开源的。在此向那些开源软件的作者和...
  • IDF2012于4月11日、12日在...由于英特尔的生态系统还没有发展起来,因此通过从ARM平台的Android应用向英特尔x86平台迁移是当前最为快捷的一个方式。本节动手实验室课程主要是熟悉Android开发工具的使用,移植现有的...
  • Android移植到C#

    千次阅读 2012-05-03 22:23:03
    但是Java并非在Android中建立本地应用的唯一方法。事实上,它甚至不是最好的文法:Xamarin 开发组已经将C#提供给Android开发者作为一个高性能、低功耗的Java的替代语言。Xamarin 的平台,Mono,是.Net框架的一个开源...
  • NDK 安卓* 应用移植方法 概述 本指南用于帮助开发人员将现有的基于 ARM* 的 NDK 应用移植到 x86。 如果您已经拥有一个正常运行的应用,需要知道如何能够快速让 x86 设备在 Android* ...
  • android系统移植

    千次阅读 2012-09-03 15:08:17
    (1)移植boot-loader和linux2.6内核目标平台上,让linux内核可以启动起来,基本的驱动允许正常。 此过程完全是嵌入式linux的开发,这里直接跳过。需要注意的是,由于android已经被linux官方开除,因此从

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,381
精华内容 8,952
关键字:

安卓应用移植到linux

linux 订阅