Android is designed to run on many different types of devices, from phones to tablets and televisions. As a developer, the range of devices provides a huge potential audience for your app. In order for your app to be successful on all these devices,…
Android apps are written in the java programming language.The Android SDK tools compile your code-along with any data and resource file-into an APK:an Android package,which is an archive file with an .apk suffix.One APK file contains all the contents…
Android is a privilege-separated operating system, in which each application runs with a distinct system identity (Linux user ID and group ID). Parts of the system are also separated into distinct identities. Linux thereby isolates applications from…
应用程序核心组件中的三个Activity,service,还有broadcast receiver都是通过一个叫做intent的消息激活的.Intent消息传送是在相同或不同的应用程序中的组件之间后运行时绑定的一个设施.Intent对象也就是它自己是一个数据结构,这个数据结构持有将要执行操作的抽象描述,或者在broadcast的情况下,是一个已经发生而将要宣布的描述.为传递intent到每个不同类型的组件有单独的机制: 一个Intent对象被传递到Context.startActivity()或…
这个指南解释了如何使用Google Font的API,把网络字体添加到自己的页面上.你不需要任何的编码,你所要做的只是添加一个特定的CSS到HTML页面上,然后把字体关联到这个CSS样式. 一个快速的例子: 这是一个例子,复制下面的HTML代码到一个文件中: <html> <head> <link rel="stylesheet" type="text/css" href="http://fonts.googleapis.co…
Buffer 类的实例类似于整数数组,但 Buffer 的大小是固定的.且在 V8 堆外分配物理内存.Buffer 的大小在被创建时确定,且无法调整. Buffer 类在 Node.js 中是一个全局变量,因此无需使用 require('buffer').Buffer. // 创建一个长度为 10.且用 0 填充的 Buffer. const buf1 = Buffer.alloc(10);//const(常量)//.alloc(分配/申请内存) // 创建一个长度为 10.且用 0x1 填充的…
在实体设备上运行您的应用 设置您的设备,如下所示: 使用一根 USB 电缆将您的设备连接到您的开发机器. 如果您是在 Windows 上开发,可能需要为您的设备安装相应的 USB 驱动程序.如需帮助安装驱动程序,请参阅原始设备制造商 (OEM)USB 驱动程序文档. 转到Settings > Developer options,在您的设备上启用 USB debugging. 注:在 Android 4.2 及更新版本的设备上,Developeroptions 默认处于隐藏状态.如需将其显示出来,…
1,通过docker部署sanic项目 通过Docker和Docker Compose部署SANIC应用程序是一项很容易实现的任务,下面的示例提供了示例simple_server.py的部署 FROM python:3.5 MAINTAINER Channel Cat <channelcat@gmail.com> ADD . /code RUN pip3 install git+https://github.com/channelcat/sanic EXPOSE 8000 WORKDIR /c…
1,Deploying(部署) 通过内置的websocket可以很简单的部署sanic项目,之后通过实例sanic.Sanic,我们可以运行run这个方法通过接下来的关键字参数 host (default "127.0.0.1"): Address to host the server on. 默认的主机ip是127.0.0.1 port (default 8000): Port to host the server on. 默认的端口是8000 debug (default Fals…
1,示例 这部的文档是简单的示例集合,它能够帮助你快速的启动应用大部分的应用,这些应用大多事分类的,并且提供给ini工作的连接代码: 1.1,基础示例 这部分示例集成了提供简单sanic简单的代码 单一APP 一个简单的sanic应用with一个简单的异步方法通过text和json类型的响应. from sanic import Sanic from sanic import response as res # 实例化Sanic对象 app = Sanic(__name__) # 服务器访问的路…
1,Custom Protocol:自定义协议 温馨提示:自定义协议是一个高级用法,大多数的读者不需要用到此功能 通过特殊的自定义协议,你可以改变sanic的协议,自定义协议需要继承子类asyncio.protocol,这个子类在sanic.run方法中传输关键字protocol协议 自定义协议的构造类从sanic中接收关键字参数. loop: an asyncio-compatible event loop.(循环:异步兼容事件循环) connections: a set to store p…
1,路由,路由相当于一个网址的地址,来确定网址的位置和唯一性 当http://server.url/被允许访问服务器,当最后的"/"通过路由匹配到了业务逻辑处理的函数,将会返回一个json对象 Sanic处理函数必须被定义使用async def语法,作为异步处理的函数 1.1请求参数的处理(Request  Parametres) Sanic框架天生自带一个基本的支持参数的路由 为了特殊的参数,支持引用尖括号来携带参数类似:<PARAM>,请求参数将会被通过路由处理函数作为…
1,sanic的logging: Sanic允许有做不同类型的日志(通过的日志,错误的日志),在基于Python3的日志API接口请求,你必须具备基本的Python3的日志知识,在你如果想创建一个新的配置 2,快速启动: 一个简单的例子使用默认的配置如上所示. 当服务器运行的时候,你能够观察到一些日志信息,就想上式,你也可以向服务器发起一个请求,那样就会打印出消息日志. 为了使用自己的日志配置,简单使用logging.config.dictConfig或者通过log_config当你实例化San…
1,sanic框架是做什么的? sanic的官方网址:https://sanic.readthedocs.io/en/latest/ sanic框架是一个类似于flask框架的在Python3.5以上版本的文本服务器,他能够快速的编写,它是通过惊人的开发效率完成开发,希望通过这篇文章得到激励 sanic框架的理念是:简单,高效 sanic的应用如上图,类似于flask. 2,下载使用sanic框架 在下载之前要确保有pip并且版本是最新的,Python版本是3.5以上的版本,Sanic框架使用的…
assert-------断言 new assert.AssertionError(options) Error 的一个子类,表明断言的失败. options(选项)有下列对象 message <string> 如果有值,则错误信息会被设为该值. actual (实际)<any> 错误实例的 actual 属性会被设为该值.用于 actual 错误输入,例如使用 assert.strictEqual(). expected (期望值)<any> 错误实例的 expect…
UIWindow定义了一个window对象,其用于管理和协调一个app在设备屏幕上的显示.除非一个app能在外部设备上显示内容,一般就只有一个window. window的主要功能:1)提供一个区域来显示views:2)发送events给views. 如果想要改变你的app显示的内容,你可以改变window的根视图,但你不能创建一个新的window对象.  @property(nonatomic) UIWindowLevel windowLevel  // 默认值为0.0. const UIWi…
1,ssl 示例: 可选择的SSLContent from sanic import Sanic import ssl context = ssl.create_default_context(purpose=ssl.Purpose.CLIENT_AUTH) # 创建默认的连接环境 context.load_cert_chain("/path/to/cert", keyfile="/path/to/keyfile") app = Sanic() app.run(ho…
1,streaming(流媒体) 1.1请求流媒体 Sanic允许你通过流媒体携带请求数据,如下,当请求结束await request.stream.read()就会返回None,仅仅只有post请求put请求,和patch请求装饰,才会有流媒体参数. from sanic import Sanic from sanic.views import CompositionView # 合成视图 from sanic.views import HTTPMethodView # http协议方法视图…
1,websocket(网络套接字) 在websocket上Sanic提供了一种简单使用的抽象化,来设置websocket(网络套接字) from sanic import Sanic from sanic.response import json from sanic.websocket import WebSocketCommonProtocol # 实例化一个Sanic对象 app = Sanic() @app.websocket("/feed") async def feed(…
1,静态文件 就向图片文件一样,静态文件和指导性的文件,当通过Sanic服务端用app.static()方法注册的时候,这种方法采用端点url和文件名称获得.这样的文件的指定,将会通过指定的端点访问. from sanic import Sanic from sanic.blueprints import Blueprint # 实例化一个Sanic对象 app = Sanic(__name__) # 从/static的静态文件中获取静态文件 app.static("/static",…
1,异常 异常是从处理请求内部抛出来的,并且通过Sanic自动的被处理异常,,异常用第一个参数携带异常信息,还可以接受在HTTP响应中要传递回的状态代码.引发异常 1.1引发异常 自动触发异常,,简单的额使用raise从sanic.exceptions的模块中抛出相关的异常即可 你也可以使用中止函数的状态码,来抛异常 ,如上图所示: 1.2异常处理 @app.exception被使用来重写处理默认的异常,,这个装饰器期望一系列的异常作为参数去处理,你可以通过SanicException去抓住异常…
1,蓝图(Blueprints) 蓝图可用于子路由的应用,代替增加路由的存在,蓝图的定义和增加路由的方法相似,灵活的在应用中注册,并且可插拔的方式. 尤其是在大型应用中使用蓝图的时候在你逻辑打断的地方或者是响应的地方 1.1,第一个蓝图 接下来展示一个简单的在你的应用程序中已经注册了的处理管理员的视图函数如上图所示. 支持你保存到my_blueprint.py文件中,那将会是应用程序的入口. 1.2,注册蓝图 蓝图必须注册到应用的程序中(和flask一毛一样) 这样将会增加在应用程序中的蓝图,并…
1,Sanic的返回的响应体 使用Sanic中的response模块去创建响应对象 返回文本response.text文本(直接字符串就ok) 返回html文件,直接response.html文件(类似于Django中的maksafe和flask中的Makeup) 返回json的数据格式,直接返回response.json(字典) 这个是啥意思啊? 滚动文件:对于大型文件,组合文件和流媒体. 页面跳转:response.redirect("路径")里边写路由的地址 修改信息头和状态:为…
A partial function of type PartialFunction[A, B] is a unary function where the domain does not necessarily include all values of type A. 一个PartialFunction[A, B]类型的偏函数是一个一元函数.它的输入值的范围并不包含所有A类型的值. The function isDefinedAtallows to test dynamically if a…
android的多线程在开发中已经有使用过了,想再系统地学习一下,找到了android的官方文档,介绍进程与线程的介绍,试着翻译一下. 原文地址:http://developer.android.com/guide/components/processes-and-threads.html 首先翻译一下GOOGLE的官方文档, Processes and ThreadsWhen an application component starts and the application does no…
Android 触摸手势基础 官方文档概览 触摸手势检测基础 手势检测一般包含两个阶段: 1.获取touch事件数据 2.解析这些数据,看它们是否满足你的应用所支持的某种手势. 相关API: MotionEvent 兼容版的: MotionEventCompat  (Note that MotionEventCompat is not a replacement for the MotionEvent class. Rather, it provides static utility metho…
人工智能系统Google开源的TensorFlow官方文档中文版 2015年11月9日,Google发布人工智能系统TensorFlow并宣布开源,机器学习作为人工智能的一种类型,可以让软件根据大量的数据来对未来的情况进行阐述或预判.如今,领先的科技巨头无不在机器学习下予以极大投入.Facebook.苹果.微软,甚至国内的百度.Google 自然也在其中.「TensorFlow」是 Google 多年以来内部的机器学习系统.如今,Google 正在将此系统成为开源系统,并将此系统的参数公布给业界…
Android 触摸手势基础 官方文档概览 触摸手势检测基础 手势检测一般包含两个阶段: 1.获取touch事件数据 2.解析这些数据,看它们是否满足你的应用所支持的某种手势. 相关API: MotionEvent 兼容版的: MotionEventCompat  (Note that MotionEventCompat is not a replacement for the MotionEvent class. Rather, it provides static utility metho…
官方文档:https://developer.android.com/reference/android/widget/AutoCompleteTextView.html#setText(java.lang.CharSequence, boolean) public void setText (CharSequence text, boolean filter) Added in API level 17 Like setText(CharSequence), except that it ca…
Sqoop 是 Cloudera 公司创造的一个数据同步工具,现在已经完全开源了. 目前已经是 hadoop 生态环境中数据迁移的首选,另外还有 ali 开发的 DataX 属于同类型工具,由于社区的广泛使用和文档的健全,调研之后决定使用 Sqoop 来做我们之后数据同步的工具. 我们首先来看下 Sqoop 的工作流 他将我们传统的关系型数据库 | 文件型数据库 | 企业数据仓库 同步到我们的 hadoop 生态集群中. 同时也可以将 hadoop 生态集群中的数据导回到传统的关系型数据库 |…