精华内容
下载资源
问答
  • 基于Android平台的新闻客户端的设计与实现毕业论文
  • 快速记app,基于Android平台的个人理财软件的设计与实现,里面包含代码,答辩ppt,毕业论文
  • Android平台特性

    千次阅读 2018-08-17 11:14:40
    Android平台采用了整合的策略思想,包括底层Linux操作系统、中间层的中间件和上层的Java应用程序。下面我把Android的特性及其架构体系结构总结一下。 一、Android的平台特性  Android平台有如下特性:  1. 应用...

    Android平台采用了整合的策略思想,包括底层Linux操作系统、中间层的中间件和上层的Java应用程序。下面我把Android的特性及其架构体系结构总结一下。

    一、Android的平台特性

      Android平台有如下特性:

      1. 应用程序框架支持组件的重用与替换。

      这样我们可以把系统中不喜欢的应用程序删除,安装我们喜欢的应用程序。

      2. Dalvik虚拟机专门为移动设备进行了优化。

      Android应用程序将由Java编写、编译的类文件通过DX工具转换成一种后缀名为.dex的文件来执行。Dalvik虚拟机是基于寄存器的,相对于Java虚拟机速度要快很多。

      3. 内部集成浏览器基于开源的WebKit引擎。

      有了内置的浏览器,这将意味着WAP应用的时代即将结束,真正的移动互联网时代已经来临,手机就是一台“小电脑”,可以在网上随意遨游。

      4. 优化的图形库包括2D和3D图形库,3D图形库基于OpenGL ES 1.0。

      强大的图形库给游戏开发带来福音。在3G最为重要的的应用莫过于手机上网和手机游戏。

      5. SQLite用作结构化的数据存储。

      6. 多媒体支持包括常见的音频、视频和静态印象文件格式

      如MPEG4、H.264、MP3、AAC、AMR、JGP、PNG、GIF。

      7. GSM电话(依赖于硬件)。

      8. 蓝牙(Bluetooth)、EDGE、3G、WiFi(依赖于硬件)。

      9. 照相机、GPS、指南针和加速度计(依赖于硬件)。

      10. 丰富的开发环境包括设备模拟器、调试工具、内存及性能分析图表和Eclipse集成的开发环境插件。

      Google提供了Android开发包SDK,其中包含了大量的类库和开发工具,并且针对Eclipse的可视化开发插件ADT。

    二、Android平台架构


    Android 操作系统的体系结构

      从上图我们可以看出,Android操作系统的体系结构可分为4层,由上到下依次是应用程序、应用程序框架、核心类库和Linux内核,其中第三层还包括Android运行时的环境。下面分别来讲解各个部分。

      1. 程序应用

      Android 连同一个核心应用程序包一起发布,该应用程序包包括E-mail客户端、SMS短消息程序、日历、地图、浏览器、联系人管理程序等。所有的应用程序都是用Java编写的。

      2. 应用程序框架

      开发者完全可以访问核心应用程序所使用的API框架。该应用程序框架架构用来简化组件软件的重用,任何一个应用程序都可以发布它的功能块并且任何其他的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。该应用程序重用机制使得组件可以被用户替换。

      以下所有的应用程序都由一系列的服务和系统组成,包括:

      1)一个可扩展的视图(Views)可以用来创建应用程序,包括列表(lists)、网络(grids)、文本框(text boxes)、按钮(buttons),甚至是一个可嵌入的Web浏览器。

      2)内容管理器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据。

      3)一个资源管理器(Resource Manager)提供非代码资源的访问,如本地字符串、图形和分层文件(layout files)。

      4)一个通知管理器(Notification Manager)使得应用程序可以在状态栏中显示客户通知信息。

      5)一个活动类管理器(Activity Manager)用来管理应用程序生命周期并提供常用的导航回退功能。

      3. Android程序库

      Android包括一个被Android系统中各种不同组件所使用的C/C++集库。该库通过Android应用程序框架为开发者提供服务。

      以下是一些主要的核心库:

      1)系统C库:一个从BSD继承来的标准C系统函数库(libc),专门为基于Embedded Linux的设备定制。

      2)媒体库:基于PacketVideo OpenCORE;该库支持录放,并且可以录制许多流行的音频视频格式,还有静态映像文件包括MPEG4、H.264、MP3、AAC、JPG、PNG。

      3)Surface Manager:对显示子系统的管理,并且为多个应用程序提供2D和3D图层的无缝融合。

      4)LibWebCore:一个最新的Web浏览器引擎,用来支持Android浏览器和一个可嵌入的Web视图。

      5)SGL:一个内置的2D图形引擎。

      6)3D libraries:基于OpenGL ES 1.0 APIs实现;该库可以使用硬件3D加速(如果可用)或者使用高度优化的3D软加速。

      7)FreeType:位图(bitmap)和向量(vector)字体显示。

      8)SQLite:一个对于所以应用程序可用、功能强劲的轻型关系型数据库引擎。

      4. Android运行库

      Android包括了一个核心库,该核心库提供了Java编程语言核心库的大多数功能。

      每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik是针对同时高效地运行多个VMs实现的。Dalvik虚拟机执行.dex的Dalvik可执行文件,该格式文件针对最小内存使用做了优化。该虚拟机是基于寄存器的,所有的类都是经由Java汇编器编译,然后通过SDK中的DX工具转化成.dex格式由虚拟机执行。

      Dalvik虚拟机依赖于Linux的一些功能,比如线程机制和底层内存管理机制。

      5. Linux内核

      Android的核心系统服务依赖于Linux内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型。Linux内核也同时作为硬件和软件栈之间的硬件抽象层。

    相关文档:Google工程师多图详解Android架构


    安卓操作系统有什特点?

      Android的系统架构和其它操作系统一样,采用了分层的架构。android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。
      Android是以Linux为核心的手机操作平台,作为一款开放式的操作系统,随着Android的快速发展,如今已允许开发者使用多种编程语言来开发Android应用程序,而不再是以前只能使用Java开发Android应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统。
      在Android中,开发者可以使用Java作为编程语言来开发应用程序,也可以通过NDK使用C/C++作为编程语言来开发应用程序,也可使用SL4A来使用其他各种脚本语言进行编程(如:python、lua、tcl、php等等),还有其他诸如:Qt(qt for android)、Mono(mono for android)等一些著名编程框架也开始支持Android编程,甚至通过MonoDroid,开发者还可以使用C#作为编程语言来开发应用程序。另外,谷歌还在2009年特别发布了针对初学者的Android Simple语言,该语言类似Basic语言。而在网页编程语言方面,JavaScript,ajax,HTML5,jquery、sencha、dojo、mobl、PhoneGap等等都已经支持Android开发。
      而在Android系统底层方面,Android使用C/C++作为开发语言。
     

    Android架构设计的思想与原则是什?

    rlei分析了Android的设计哲学:
    理解好Intent,就可以理解Android哲学(所有应用生来平等)的一部分。举个简单的例子,iOS里面应用要集成SNS如facebook/twitter/sina weibo等,都需要应用自己实现(iOS5也只是集成twitter一家);Android上只需要广播一个share内容的intent。从理解Intent如何工作开始,你就在慢慢理解Activity Manager, Package Manager, Services这些Android的重要组件是如何工作的。
    另外Binder是Android架构里非常核心的一块。Android基于Intent的消息传递和组件/应用解耦,下面的基础都是Binder IPC。在这一点上,Android实际上是光荣的传承了BeOS和Palm OS 6(悲催的OS6…)未能发扬光大的一部分。
    MVC(Content Provider, Activity, Layout, Adapters)这个比较基础,也不算Android特有的。
    Content Provider对数据访问的抽象也是比较有意思的一块。理想情况下,content provider可以让客户端用URI以语义化的方式访问数据(URI本身即表示数据层次结构和查询条件),而下面数据库表的结构可以任意变动,不影响客户端代码。当然实做的时候content provider还是会被各种复杂的where子句暴露出SQL的实现细节
    至于Android的权限管理,其实比较简单,主要是利用现成的Linux安全模型,进程之间相互隔离。API级别的权限管理和JVM类似。
    Billy Cui重点解析了权限系统的设计:
    Android的权限系统是基于Linux,但又增加了很多自己的控制模块。
    总体上来说,其分为以下几部分权限系统:
    1. userid : 继承于linux,对于多个app,通过shareuid的方式可以使用同一个userid,主要承担一些目录访问权限之类的工作,比如私有目录只能由同一uid应用访问。
    2. 安装level:system level or app level,这个是根据应用的安装位置决定的,在system/app下安装的应用就是system level,在权限访问中会得到更多的权限,比如静默安装应用的权限等。
    3. permission : 这个是最主要的权限控制,一般开发者开发应用主要是接触这个部分,在这部分中,会根据应用在AndroidManifest.xml中声明的use-permission而在访问相应api或资源时判断其是否有访问权限,比如常用的android.permission.INTERNET等。
    4. signature: 签名,是Android权限系统中的重要组成部分,对于系统签名的应用,会有一些特殊的功能,而shareuid等特性也是需要同一签名作为基础。此外,permission在设置/自定义其权限时也经常会使用到签名,比如控制只有我自己的应用才可以访问我自己定义的公开API。
    除此以外,其实Android在uid的里面设置了一些预定义有特殊功能的uid,比如system/media等,在配置其system level的services的时候会用到。



    展开全文
  • Android 平台的Python——基础篇(一)

    万次阅读 多人点赞 2017-11-18 22:26:08
    要想在Android平台运行起Python,也有方案实现,其实质就是在Android系统上搭建Python环境。对此Google已经提供了SL4A(Scripting Layer for Android )方案,支持多种脚本语言,除此之外,还可以使用一个

    Android 平台的Python——基础篇(一)
    Android 平台的Python——JNI方案(二)
    Android 平台的Python——CLE方案实现(三)
    Android 平台的Python——第三方库移植
    Android 平台的Python——编译Python解释器
    新篇——Android与Python混合编程

    前言
    (本文以Python3为例,Python3是未来,大家都懂的)
    Python作为一个功能强大又语法简洁的语言,其应用已无需多言。要想在Android平台运行起Python,也有方案实现,其实质就是在Android系统上搭建Python环境。对此Google已经提供了SL4A(Scripting Layer for Android )方案,支持多种脚本语言,除此之外,还可以使用一个叫QPython的app,可以直接在Android上编写以及运行Python代码。但其实意义不大,写好的Python代码并不是以一个独立的app进程运行的,只不过是在QPython这个应用中运行而已。这两者都不符合我现在要讨论的东西,如题,笔者想要讨论的是如何在Android平台使用Java与Python代码相互调用,换言之,就是如何在Android工程中嵌入一个Python解释器。

    首先谈一点,为什么要在Android平台使用Python?Python拥有众多强大的第三方库和框架,在机器学习、大数据处理等诸多方面都有不俗的应用。另外,就语法而言,Python比Java更加简洁,同时又功能强大,既可面向过程亦可面向对象,而不像Java一样,是一种纯粹的面向对象语言,哪怕打印一句话也需要先创建类。Python作为一种脚本语言,可以边解释边执行,而不需编译,另外Python中存在的元类,可以使我们动态的创建类,如此可以在不需要重新编译安装apk的情况下,动态的由远程服务端为Android项目添加功能。我们还可以将Python已有的一些东西移植到Android平台,例如tornado、django等,总之玩法多多。

    在Android平台,官方并不支持直接使用Python开发app,基于虚拟机的Java(或kotlin)才是更好的选择,其他语言是无法自如的使用官方Framework提供的api的,尤其是在程序界面的表现上,典型的反例就是kivy。什么是kivy,可自行了解,但要解决Android平台上Java与Python的交互,kivy确实是一个方向,而且是一个醍醐灌顶的方向。kivy实际上已经解决我们需要实现的目的,模仿Android平台上的kivy实现机制即可。但是,kivy使用了大量的Cython技术,而非CPython API接口,需要学习Cython语法,并且在其他一些方面存在一些限制。kivy给我们提供的思路就是借助Java的jni机制,实现Python与Java的交互。即在一个安卓apk工程中包含一个cython.so解释器,通过jni机制调用解释器去解释执行Python代码,通过Java调C,C调Python实现交互。有一点需要说明,Python作为一门胶水语言,Python与C的交互是非常方便的,因此才能实现这一系列调用。

    关于该种方案,已有国外网友实践,原理如下

    这里写图片描述

    链接地址

    除此之外,本博客将通过另外两种方案实现。其中第一种类似上述方案,但集成CPython解释器,非Cython,因此需要掌握如何实现Python与C的交互。

    Python与C交互基础

    C调用Python

    • 简单使用
      流程:

      • 初始化Python解析器
      • 执行Python代码,字符串,对象或模块。
      • 关闭Python解析器。

      创建一个.c源文件,代码如下,创建一个pytest.py文件,实现一个printTime函数

    	#include<Python.h>
    	int main()
    	{
    	    Py_Initialize();//初始化Python解析器
    	    if (!Py_IsInitialized())
    	    {
    		    printf("Initialize failed");
    		      return -1;
    	    }
    	    PyRun_SimpleString("print('hello C !')");
    	    PyRun_SimpleString("import pytest");
    	    PyRun_SimpleString("pytest.printTime()");
    	    Py_Finalize();/关闭Python解析器
    	    return 0;
    	}		
    

    注意:除了用PyRun_SimpleString函数直接运行代码,还可以使用PyRun_SimpleFile函数运行一个Python脚本
    原型:PyRun_SimpleFile(FILE *fp, const char *filename) ,由于版本差异,使用该方式可能会造成崩溃,推荐另一种替代方式
    PyRun_SimpleString(“execfile(“test.py”)”)

    • 调用Python函数
      pytest.py

      import time
      
      def printTime():
          print('invoke printTime:'+str(time.time()))
          return (1,)#元组只有一个元素时,需在末尾加逗号
      

      C 代码

      int main()
      {
      	PyObject * module_name,*module,*func,*dic;
      	char * fun_name = "printTime";//需调用的Python函数名
      	PyObject *resultValue;
      
      	Py_Initialize();
      	if (!Py_IsInitialized())
      	{
      		printf("Initialize failed");
      		return -1;
      	}
      
      	//导入Python 模块并检验
      	module_name = Py_BuildValue("s", "pytest");
      	module = PyImport_Import(module_name);
      
      
      	if (!module)
      	{
      		printf("import test failed!");
      		return -1;
      	}
      	
          //获取模块中的函数列表,是一个函数名和函数地址对应的字典结构
          dic = PyModule_GetDict(module);
      	if (!dic)
      	{
      		printf("failed !\n");
      		return -1;
      	}
      
      	func = PyDict_GetItemString(dic, fun_name);
      	if (!PyCallable_Check(func))
      	{
      		printf("not find %s\n", fun_name);
      		return -1;
      	}
      
      	int r;
          //获取Python函数返回值,是一个元组对象
      	resultValue = PyObject_CallObject(func, NULL);
      	PyArg_ParseTuple(resultValue, "i", &r);
      	printf("result :%d\n", r);
      
      	Py_DECREF(module);
          Py_DECREF(dic);
      	Py_Finalize();
      	return 0;
      }
      

    基础API

    C API 调用Python 对应
    PyImport_ImportModelimport module
    PyImport_ReloadModulereload(module)
    PyImport_GetModuleDictmodule._dict_
    PyDict_GetItemStringdict[key]
    PyDict_SetItemStringdict[key] = value
    PyDict_Newdict = {}
    PyObject_GetAttrStringgetattr(obj, attr)
    PyObject_SetAttrStringsetattr(obj, attr, val)
    PyObject_CallObjectfuncobj(*argstuple)
    PyEval_CallObjectfuncobj(*argstuple)
    PyRun_Stringeval(exprstr) , exec(stmtstr)
    PyRun_Fileexec(open(filename().read())
    • Py_BuildValue()函数
      作用:将C/C++类型类型的数据转变成PyObject*对象。
      原型:PyAPI_FUNC(PyObject*) Py_BuildValue(const char *format, ...);

      参数解释:
      format及转换格式,类似与C语言中%d,%f,后面的不定参数对应前面的格式,具体格式如下:

      “s”(string) [char *] :将C字符串转换成Python对象,如果C字符串为空,返回NONE。

      “s#”(string) [char *, int] :将C字符串和它的长度转换成Python对象,如果C字符串为空指针,长度忽略,返回NONE。

      “z”(string or None) [char *] :作用同"s"。

      “z#” (stringor None) [char *, int] :作用同"s#"。

      “i”(integer) [int] :将一个C类型的int转换成Python int对象。

      “b”(integer) [char] :作用同"i"。

      “h”(integer) [short int] :作用同"i"。

      “l”(integer) [long int] :将C类型的long转换成Pyhon中的int对象。

      “c”(string of length 1) [char] :将C类型的char转换成长度为1的Python字符串对象。

      “d”(float) [double] :将C类型的double转换成python中的浮点型对象。

      “f”(float) [float] :作用同"d"。

      “O&”(object) [converter, anything] :将任何数据类型通过转换函数转换成Python对象,这些数据作为转换函数的参数被调用并且返回一个新的Python对象,如果发生错误返回NULL。

      “(items)”(tuple) [matching-items] :将一系列的C值转换成Python元组。

      “[items]”(list) [matching-items] :将一系列的C值转换成Python列表。

      “{items}”(dictionary) [matching-items] :将一系类的C值转换成Python的字典,每一对连续的C值将转换成一个键值对。

      例:
      后面为PyObject的返回值

            Py_BuildValue("")None
      
            Py_BuildValue("i",123) 123
      
            Py_BuildValue("iii",123, 456, 789) (123, 456, 789)
      
            Py_BuildValue("s","hello") 'hello'
      
            Py_BuildValue("ss","hello", "world") ('hello', 'world')
      
            Py_BuildValue("s#","hello", 4) 'hell'
      
            Py_BuildValue("()")()
      
            Py_BuildValue("(i)",123) (123,)     
      
            Py_BuildValue("(ii)",123, 456) (123, 456)
      
            Py_BuildValue("(i,i)",123, 456) (123, 456)
      
            Py_BuildValue("[i,i]",123, 456) [123, 456]      Py_BuildValue("{s:i,s:i}", "abc",123, "def", 456) {'abc': 123, 'def': 456}
      
            Py_BuildValue("((ii)(ii))(ii)", 1, 2, 3, 4, 5, 6) (((1, 2), (3, 4)), (5, 6))
      
    • PyArg_ParseTuple函数
      作用:此函数其实相当于sscanf(str,format,…),是Py_BuildValue的逆过程,这个函数将PyObject参数转换成C/C++数据类型,传递的是指针,但这个函数与Py_BuildValue有点不同,这个函数只能解析Tuple元组,而Py_BuildValue函数可以生成元组,列表,字典等。
      原型:PyAPI_FUNC(int) PyArg_ParseTuple(PyObject *args, const char *format,...)

        Args:一般为Python程序返回的元组。
         
        Foramt:与Py_BulidValue类型,就不在累述咯。
         
        元组操作函数:
        因为程序之间传递的参数,大多数为Tuple类型,所以有专门的函数来操作元组:
         
        PyAPI_FUNC(PyObject *)PyTuple_New(Py_ssize_t size);
        解释:新建一个参数列表(调试了下,发现其实是用链表实现的),size列表为长度的宽度
         
        PyAPI_FUNC(Py_ssize_t)PyTuple_Size(PyObject *);
        解释:获取该列表的大小
         
        PyAPI_FUNC(PyObject *)PyTuple_GetItem(PyObject *, Py_ssize_t);
        解释:获取该列表某位置的值
         
        PyAPI_FUNC(int) PyTuple_SetItem(PyObject *,Py_ssize_t, PyObject *);
        解释:设置该列表此位置的值。如PyTuple_SetItem(pyParams,1,Py_BuildValue("i",2));设置第2个位置的值为2的整数。	
      

      备注:对应的列表和字典也有对应的操作

    更多的接口调用以及数据类型转化,参照Python文档
    这里写图片描述

    Python 调用C

    Python调用C有两种方式

    • 使用ctypes模块,Python文档有详细示例
      这里写图片描述

    • 使用C为Python编写拓展模块
      Python之所以如此强大,正是由于可以使用C\C++为其编写拓展模块,手动编写拓展模块的方式稍微有些繁琐,可借用SWIG自动实现,简洁快速。更多详细的SWIG用法,见其官方文档
      官网下载 windows包并解压

      使用vs创建空项目,并配置vs。右键当前项目,选择属性
      这里写图片描述
      现在使用C为Python创建一个叫user的拓展模块,该模块包含一个showHello函数:
      分别创建三个文件
      user.i
      user.c
      user_wrap.c

    在user.i中添加如下代码

    	%module user
    	
    	%inline %{
    	extern void showHello();
    	%}
    

    user.c中添加

    	#include <stdio.h>
    	void showHello()
    	{
    		printf("hello Python!\n");
    	}
    

    右键user.i 文件并选择属性
    这里写图片描述
    点击应用后如下图,完成配置
    这里写图片描述
    右键当前项目,选择属性,完成如下配置,确定
    这里写图片描述
    最后生成即可(选择工具栏 生成 --> 批生成)

    创建测试代码调用C验证

    import user
    user.show()
    

    在Linux下则无需如此麻烦的配置,可直接使用命令

    On Unix the compilation of examples is done using the file Example/Makefile. This makefile performs a manual module compilation which is platform specific. Typically, the steps look like this (Linux):
    
    
    % swig -python interface.i
    % gcc -fpic -c interface_wrap.c -I/usr/local/include/python1.5
    % gcc -shared interface_wrap.o $(OBJS) -o interfacemodule.so 
    % python
    Python 1.5.2 (#3, Oct  9 1999, 22:09:34)  [GCC 2.95.1 19990816 (release)] on linux2
    Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
    >>> import interface
    >>> interface.blah(...)
    

    此处.i文件为SWIG的接口文件,其中%module后面定义模块名,用%inline定义方法列表

    %inline %{
    包含导出的函数
    %}
    

    有了Python与C的交互基础,则还需要Android中的NDK开发基础,关于Android平台的jni调用,本文不在此处详解,可看看我的JNI方面博客,而此处我们需要使用Crystax NDK开发工具链,非官方NDK工具链,需自行下载。下一篇正式涉及Python for Android。

    关注个人公众号:编程之路从0到1

    编程之路从0到1

    展开全文
  • Android 平台的Python——第三方库移植

    万次阅读 多人点赞 2018-09-20 16:11:00
    前面写了三篇关于将Python3嵌入Android项目的博客,后来一直有人留言问怎么移植Python的第三方库,包括说调用标准库报错等等问题,我之前一直以为这些是Python的基本常识,没想到很多人都不知道。之前的三篇博客,...

    Android 平台的Python——基础篇(一)
    Android 平台的Python——JNI方案(二)
    Android 平台的Python——CLE方案实现(三)
    Android 平台的Python——第三方库移植
    Android 平台的Python——编译Python解释器
    新篇——Android与Python混合编程

    之前一段时间一直比较忙,导致很多想研究想写的博客没写,现在有时间正好补充一篇。前面写了三篇关于将Python3嵌入Android项目的博客,后来一直有人留言问怎么移植Python的第三方库,包括说调用标准库报错等等问题,我之前一直以为这些是Python的基本常识,没想到很多人都不知道。之前的三篇博客,大概是写给会一点Python的Android工程师看的,并不是完全定位写给小白看,这样一来我会默认看客已经知道哪些知识,很多细节没有详细解释,另一方面,我写博客的初衷是

    展开全文
  • 一般项目版本管理,会有多个svn分支,拉新的svn分支后,打开工程默认以PC为平台,如果工程比较大的话,需要等好长一段时间,等所有资源都编译完之后,然后再手动在BuildSettings中切换成Android平台,然后又要等好长...

    一般项目版本管理,会有多个svn分支,拉新的svn分支后,打开工程默认以PC为平台,如果工程比较大的话,需要等好长一段时间,等所有资源都编译完之后,然后再手动在BuildSettings中切换成Android平台,然后又要等好长一段时间。
    其实可以直接以Android平台打开工程
    已Windows操作系统为例,写一个bat脚本,格式如下

    %Unity.exe的路径% -projectPath %工程路径% -buildTarget android
    

    F:\Unity5.5.5\Unity\Editor\Unity.exe -projectPath D:\UnityProjects\MyTest -buildTarget android
    

    双击运行bat脚本即可

    mac的话也同理,写个sh脚本

    #!/bin/bash
    /Applications/Unity/Unity.app/Contents/MacOS/Unity -projectPath /Volumes/mac/UnityProjects/MyTest -buildTarget ios
    
    展开全文
  • Android平台架构及特性

    千次阅读 2016-11-10 21:25:31
    1.Android系统的底层建立在Linux系统之上,采用软件叠层(software stack,使得层与层之间相互分离)的方式进行构建。 2.Android系统的体系结构 Android运行时由两部分组成:Android核心库集和Dalvik虚拟机。其中...
  • Android平台交叉编译流程

    千次阅读 2017-07-04 21:36:54
    一: 当我们在Android平台上开发一些软件的时候,有时不可避免的要用到一些用c/c++所编写的库。有些库有大神们已经封装好了在特定平台上对应的api,我们直接调用就可以,但是更多的库需要我们自己根据自己所需的特定...
  • Android平台漏洞挖掘与利用

    热门讨论 2015-10-25 11:07:24
    由于Android的特殊生态,每款Android设备都存在多种来源的软件,而ROOT工具主要利用系统漏洞帮...CSDN【技术公开课】邀请到奇虎360高级安全研究员 吴家志博士详解了Android平台漏洞利用的原理以及漏洞挖掘的经验分享。
  • Android 平台的Python——CLE方案实现(三)

    万次阅读 热门讨论 2017-11-18 23:01:24
    Android 平台的Python——基础篇(一) Android 平台的Python——JNI方案(二) Android 平台的Python——CLE方案实现(三) Android 平台的Python——第三方库移植 Android 平台的Python——编译Python解释器 更新:...
  • 第一次在android平台上单独编译内核模块并且insmod,过程比较难受,毕竟啥事第一次做都不怎么顺畅! 本文基于Android5.1 msm8909 因为笔者使用的平台物理串口只有两个,一个已经作为系统的debug调试串口,那就相当...
  • 基于Android平台的图书管理系统的制作(1)

    千次阅读 多人点赞 2019-10-04 13:23:10
    IDE Android studio,语言 JAVA、XML; 在刚开始设计的时候对于这个程序的设定是: 1.支持学生、教师、工作人员三种不同身份的客户。 2.学生、老师各自注册账号,并用账号登录。 3.学生、老师能够查询、借阅、...
  • NFC在Android平台的架构与移植

    万次阅读 2016-03-30 13:43:45
    NFC在安卓系统中的架构如下,从上到下每一层都有涉及到,但是和移植Sensor等其他外围设备有所不同,...就好似附在 Android 这颗参天大树上的一束藤蔓。下面是我们将其移植到 Android 系统需要在各个层级所添加的内容。
  • ionic cordova platform add android ionic3自动更新到了7.0.0的安卓版本,于是在添加platform的时候总是少文件 解决办法: ionic cordova platform add android@6.3.0 (安装指定版本android) 对于目前还没有...
  • 方式编译APK文件了(--ap 20是指定android平台) 漫长的等待吧,当然这里要提醒一点3.1版本用的是 android-20,如果E:\Android\sdk\platforms目录下没有android-20 请创建一个空的。 等待...
  • 基于Android平台的人脸识别实现

    万次阅读 热门讨论 2017-08-18 14:22:21
    效果图 先上效果,让大家看看...一般Android Studio 窗口会有个链接(Install missing platform(s) and sync project) 点击下载更新 android-24 即可解决(其他版本没测试过,建议不要随意更改)。
  • Android平台使用MediaCodec进行H264格式的视频编解码 Android多媒体简介 MediaCodec MediaExtractor MediaMux H264关键词 Android多媒体简介 提起android中的多媒体,就不得不提两个类,那就是MediaPlayer和...
  • 平台版本 API 级别 VERSION_CODE 备注 Android 7.0 24 N 平台亮点 Android 6.0 23 M 平台亮点 Android 5.1 22 LOLLIPOP_MR1 平台亮点 Android 5.0 21 LOLLIPOP
  • Android平台OCR工具TessTwo工程

    千次下载 热门讨论 2016-02-25 16:51:31
    Android平台下使用TessTwo实现OCR功能,博客地址:http://blog.csdn.net/duanbokan/article/details/50738711
  • android平台编译并使用dlib人脸识别库 未完待续
  • Android平台遥控器按键映射流程

    千次阅读 2016-09-08 16:33:12
    遥控器发一个扫描码,扫描码会经过kl文件的映射,每个设备可以有自己对应的kl文件,如果没有对应的kl文件则使用系统默认的Generic.kl文件 ...经过KeycodeLabels.h映射后的键值就是android上层应用收到的值
  • Android平台OCR工具之Tess-two使用

    万次阅读 2016-02-25 16:27:08
    Android平台下使用Tesstwo进行OCR识别
  • android 平台利用OliveOfficeSDK 实现office文档查看的demo

    千次下载 热门讨论 2012-11-29 11:32:21
    利用OliveOfficeSDK 实现android平台上office文档的查看,支持格式为doc、docx、 ppt、pptx、xls、xlsx,目前只支持查看,未来将推出编辑功能,了解更多请登陆 www.olivephone.com或者联系sales@olivephone.com ...
  • [019] Android平台调用WebService详解

    万次阅读 多人点赞 2011-05-18 00:06:00
    上篇文章已经对Web Service及其相关知识进行了介绍(Android...本文将通过一个简单的示例讲解和演示Android平台的Web Service开发。 Ksoap2-android简介  在Android平台调用Web Service需要依赖于第三方类库ksoap
  • Android平台ffmpeg的硬解库生成

    千次阅读 2015-09-02 01:38:24
    一直想写一篇文章记录我近几天摸索ffmpeg在Android平台生成硬解码库遇到的问题。马上就要放假,再不写估计就更没有思路写下去。这只是我的一些个人研究,失误之处在所难免,如果您觉得有不对的地方还请留言指正! ...
  • 有没有哪位大神实现过安卓调用uvc摄像头啊? 我最近查了网上资料都是讲得很不清楚而且不全的。!! 跪求大神赐教啊!!!
  • android平台下OpenGL ES 3.0从零开始

    万次阅读 2018-11-04 15:33:48
    OpenGL ES对Android平台的支持情况 OpenGL ES 3.0概述 OpenGL ES 3.0图形管线图 顶点着色器 片段着色器 图元装配 光栅化 逐片段操作 虚拟机和OpenGL ES 3.0的数据传输 OpenGL ES对Android平台的支持情况 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 392,972
精华内容 157,188
关键字:

android平台