Core Motion框架集中了运动数据处理.该框架是在IOS 4 SDK中引入的,用于取代accelerometer加速计访问.它提供了对3个关键的机载传感器的集中式监测.这些传感器有陀螺仪.磁力计和加速计组成,其中陀螺仪用于测量设备的旋转,磁力计提供了一种测量罗盘方位的方式,加速计用于监测沿着3根轴的重力变化.第四个入口点称为设备移动(device motion),他把全部3中传感器都结合进单个监测系统中. Core Motion使用来自这些传感器原始值创建可度的测量结果,主要表现为力向量的…
UIDevice类展示了一些关键的特定于设备的属性,包括使用的iPhone ,Ipad或iPod Touch型号.设备名称.以及OS名称和版本. 他是一种一站式解决方案,用于提取出某些系统详细信息.每个方法都是一个实例方法,他们是使用UIDevice单例通过[UIDevice currentDevice]调用的. 可以通过UIDevice获取的系统信息包括下面的这些项. 1.systemName:它用于返回当前使用的操作系统的名称.对于目前这一代IOS设备,在平台上只运行一种OS:iPhone…
应用程序的Info.plist属性列表使你能够在向iTunes提交应用程序时指定应用程序的要求.这些限制允许告诉iTunes应用程序需要哪些设备特性. 每个IOS单元都会提供一个独特的特性集.一些设备回提供照相机和GPS能力,另外一些则不会.一些设备具有机载陀螺仪.自动聚焦,以及其他强大的选项.你可以指定在设备上运行应用程序时需要哪些特性. 在Info.plist文件中包括UIRequiredDeviceCapabilities键时,iTunes将限制把应用程序安装到提供必须能力的设备.把这个列…
利用设备的机载陀螺仪可以实现,当你旋转手机屏幕时,里面的画面不会随着视图更新而移动,以平衡物理运动. 下面例子利用少量简单的几何变换执行该操作.他建立一个运动管理器,订阅设备运动更新,然后基于运动管理器返回的摇晃,前倾和左右摇摆的角度应用图像变换. @implementation TestBedViewController { CMMotionManager *motionManager; UIImageView *imageView; } - (void) shutDownMotionMana…
UIDevice类使用内置的orientation属性获取设备的物理方向.IOS设备支持这个属性的7个可能的值. >UIDeviceOrientationUnknown:方向目前未知. >UIDeviceOrientationPortrait:Home键在下.   >UIDeviceOrientationPortraitUpsideDown:Home键在上 >UIDeviceOrientationLandscapeLeft:Home键在左边 >UIDeviceOrientat…
倾斜滚轮使用设备的内置加速计来控制在UIScrollView的内容周围移动.当用户调增设备时,材料会相应的下落,他不会把视图定位在屏幕上,而是把内容视图滚动到一个新的偏移位置. 创建这个界面的挑战在于:确定设备在什么地方应该具有他的静止轴,大多数人最初建议当显示屏靠在他的背部应该是稳定的,并且z轴方向笔直的指向上方.事实证明:这实际是一个相当糟糕的设计选择.要使用那根轴,就意味着导航期间屏幕必须实际的偏离观看者.随着设备旋转离开视图,用户将不能完全看到屏幕上所发生的事情,尤其是在固定的位置使用设…
近年来,Apple在其旗舰设备上引入了Retina显示屏.根据Apple的说法,他的像素密度非常高,足以使人眼无法区分单独的像素. UIScreen类提供了一种容易的方式,用于监查当前设备是否提供了内置的Retina显示屏.检查屏幕的scale属性,它提供了从逻辑坐标空间转换为设备坐标空间的转换因子.对于标准显示屏,转换因子是1.0,因此1点对应于1个像素.对于Retina显示屏,它是2.0. -(BOOL)hasRetinaDisplay { return ([UIScreen mainScr…
UIDevice类提供了一些API,使你能够跟踪设备的特征,包括电池的状态和接近度传感器.他们二者都以通知的形式提供更新,可以订阅他们,以便在有重要的更新时通知你的应用程序. 1>启动和禁用接近度传感器 接近度在此时是一个特定于iPhone的特性.iPod Touch和iPad没有提供接近度传感器.除非具有相对身体部位握持iPhone的某个迫切的理由(或者反之亦然),否则使用接近度传感器获益甚少. 当启用接近度感应器时,它具有一项主要的任务.他会检测正前方是否有较大的物体.如果是,他将会关闭屏幕…
借助一点编程工作,iPhone的机载加速计就可以使对象在屏幕上四处“移动”,实时响应用户倾斜手机的方式.下面的代码就是创建一个动画式的蝴蝶,用户可以使之快速移过屏幕. 使之工作的秘密在于:向程序中添加一个所谓的"物理计时器“.他不是直接响应加速中的变化,而是加速计回调用于测量当前的力.它取决于计时器例程随着 时间的推移通过改变他的画面对蝴蝶应用那些力.下面是列出要记住的关键点. (1).只要力的方向仍然保持相同,蝴蝶就会加速.他的速度会依据加速力在x或y方向上的量度成比例的提高. (2).由计时…
iPhone提供了3个机载的传感器,用于沿着iPhone的3根相互垂直的轴(左/右(x轴).上/下(y轴)和前/后(z轴))度量加速能力.这些值指示作用于iPhone的力,它们来自重力和用户移动.可以通过在脑袋周围晃动iPhone(向心力)或者把它从高楼上投下(自由落体)来获得某种净力反馈. 要向iPhone加速计更新订阅某个对象,可把它设置委托.设置为委托的对象必须实现UIAccelerometerDelegate协议:     加速度传感器使用步骤如下:     ①召唤UIAccelerom…
sysctl()和sysctlbyname()允许获取系统信息.这些标准的UNIX函数用于询问操作系统有关硬件和OS的详细信息. 这些常量使你能够检查核心信息,比如系统的CPU频率,可用的内存量等.它引入了一个UIDevice类,用于搜集系统信息,并通过一系列方法调用返回它. 每个型号都提供了独特的内置能力,准确知道你正在处理哪款iPhone有助于确定那个单元是否有可能支持诸如可访问性,GPS和磁力计之类的特性. #pragma mark sysctlbyname utils - (NSStri…
加速计 ● 加速计的作用 ● 用于检测设备的运动(比如摇晃) ● 加速计的经典应用场景 ● 摇一摇 ● 计步器 ● 加速计程序的开发 ● 在iOS4以前:使用UIAccelerometer,用法非常简单(到了iOS5就已经过期) ● 从iOS4开始:CoreMotion.framework ● 虽然UIAccelerometer已经过期,但由于其用法极其简单,很多程序里面都 还有残留 UIAccelerometer的使用步骤 ● 获得单例对象 UIAccelerometer *accelerom…
Google官方教程: Google 地图 API V3 使用入门 Google 地图 API V3 针对移动设备进行开发 Google 地图 API V3 之事件 Google 地图 API V3 之控件 Google 地图 API V3 之 叠加层 Google Maps API V3 之绘图库 信息窗口 Google Maps API V3 之 图层 Google Maps API V3 之 路线服务 针对移动设备进行开发 Google Maps API v3 旨在实现快速加载,并可在移动…
iOS开发需要一台Mac电脑.Xcode以及iOS SDK.因为苹果设备都具有自己封闭的环境,所以iOS程序的开发必须在Mac设备上完成(当然,黑苹果应该也是可以的,但就需要花很多的精力去折腾基础环境),Xcode是一个集成开发环境,包括了编辑器.调试.模拟器等等一系列方便开发和部署的工具,iOS SDK则是开发应用所必需,不同的SDK分别对应不同的iOS版本或设备,通常我们需要下载多个iOS SDK以确保我们开发的程序能够在不同版本的iOS上正常运行.   创建新工程   Xcode提供了很多…
配置iOS项目的设备系统目标设置:Base SDK和Deployment Target Xcode为开发者提供了两个可配置的设置:第一个是Base SDK,第二个是iOS的Deployment Target.通过配置这两个参数可定制应用的功能以及可运行的设备和操作系统版本. 打开配置界面的操作如下: 打开工程,然后选择工程导航面板上的工程文件: 在编辑器面板上选择**TARGETS**,再选择**Build Settings**选项卡,Base SDK设置通常是这里的第三个选项,Deployme…
编写Hello World应用程序通常被觉得,是学习不论什么编程语言的第一步.在这一章,你将创建iOS版的Hello World应用程序作为起步,高速了解Xcode这个开发iOS应用程序的主要工具.      下一步.你将学习Objective-C的基础知识.在此基础之上.将探索类(class)与对象(object)的知识.它们是构建应用程序的主要基石.与此同一时候,你将创建CarValet应用程序,练习一些类的编写.并学习属性(property)的知识.在本章末尾,你将在指导下完毕编程挑战题以…
本人才疏浅学,写一篇文档总结自己在msm8916平台上移植自己编写的简单的字符设备驱动开发的整个流程.这个小项目的主要功能是开发一个简单的APP,APP通过JNI去调用位于kernel的字符设备驱动. APP的设计,开发平台Android Studio 主要的文件是下面的三个文件: MainActivity.java文件的内容如下: package com.example.administrator.myled; import android.nfc.Tag; import android.su…
PCI是一种广泛采用的总线标准,它提供了许多优于其它总线标准(如EISA)的新特性,目前已经成为计算机系统中应用最为广泛,并且最为通用的总线标准.Linux的内核能较好地支持PCI总线,本文以Intel 386体系结构为主,探讨了在Linux下开发PCI设备驱动程序的基本框架. 一.PCI总线系统体系结构 PCI是外围设备互连(Peripheral Component Interconnect)的简称,作为一种通用的总线接口标准,它在目前的计算机系统中得到了非常广泛的应用.PCI提供了一组完整的…
本着每天记录一点成长一点的原则,打算将目前完成的一个WPF项目相关的技术分享出来,供团队学习与总结. 总共分三个部分: 基础篇主要争对C#初学者,巩固C#常用知识点: 中级篇主要争对WPF布局与美化,在减轻代码量的情况做出漂亮的应用: 终极篇为框架应用实战,包含MVVM框架Prism,ORM框架EntityFramework Core,开源数据库Postgresql. 目录 Prism+MaterialDesign+EntityFramework Core+Postgresql WPF开发总结…
在触屏设备上,一些比较基础的手势都需要通过对 touch 事件进行二次封装才能实现.zepto 是移动端上使用率比较高的一个类库,但是其 touch 模块模拟出来的一些事件存在一些兼容性问题,如 tap 事件在某些安卓设备上存在事件穿透的 bug,其他类型的事件也或多或少的存在一些兼容性问题. 于是乎,干脆自己动手对这些常用的手势事件进行了封装,由于没有太多真实的设备来进行测试,可能存在一些兼容性问题,下面的代码也只是在 iOS 7.Andorid 4 上的一些比较常见的浏览器中测试通过. ta…
上次转载了一篇<将你的网站打造成一个iOS Web App>,但偶然发现这篇文章的内容有些是错误的——准确来说也不是错误,只是不适合自半年前来的情况了(也可以说是iOS7 之后的时间)——话说现在的的移动设备真是日新月异.好了,结合Jeff 查阅的资料,下面来详细来说说iOS / Android 移动设备中的 touch icons. 关于 “Touch icons” favicons 知道是什么吧?浏览器的tab 前面的那个小图标,放入某个网站到收藏夹的时候也会看到,这个可以说是pc 互联网…
iOS应用内付费(IAP)开发步骤列表 前两天和服务端同事一起,完成了应用内付费(以下简称IAP, In app purchase)的开发工作.步骤繁多,在此把开发步骤列表整理如下.因为只是步骤列表,所以并不含详细的说明教程,需要看教程的新手,可以看我附在最后的一些参考链接. 配置Developer.apple.com 登录到Developer.apple.com,然后进行以下步骤: 为应用建立建立一个不带通配符的App ID 用该App ID生成和安装相应的Provisioning Profi…
1.IOS 获取最新设备型号方法列表最新对照表:http://theiphonewiki.com/wiki/Models方法: #import "sys/utsname.h” struct utsname systemInfo; uname(&systemInfo); NSString *deviceString = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding]; 这样得到的  …
经过两周的摸索,终于对Linux设备驱动开发有了个初步的认识,下面对Linux设备驱动开发环境的搭建做个小结,以方便自己以后查询,同时也能给同道的初学者一点帮助. 刚接触Linux设备驱动时,初学者往往连如何编译驱动程序都不懂,更别说编译进内核或加载测试了.一般都是在网上找个最简单的 helloworld驱动程序,然后严格按照网上所说的步骤编译,结果却得到一大堆见都没见过的错误,更不要说根据错误信息来解决问题了,很多人到这里就 不知道如何往下进行了.十几天前我也卡在这里很长时间,现在知道所以然了…
本博实时更新<Linux设备驱动开发具体解释(第3版)>的最新进展. 2015.2.26 差点儿完毕初稿. 本书已经rebase到开发中的Linux 4.0内核,案例多数基于多核CORTEX-A9平台. [F]是修正或升级:[N]是新增知识点:[D]是删除的内容 第1章 <Linux设备驱动概述及开发环境构建>[D]删除关于LDD6410开发板的介绍[F]更新新的Ubuntu虚拟机[N]加入关于QEMU模拟vexpress板的描写叙述 第2章 <驱动设计的硬件基础> […
一.开发工具包 二.设备sdk开发工具包…
Linux设备驱动开发详解 http://download.csdn.net/detail/wuyouzi067/9581380…
Preface 前面对linux设备驱动的相应知识点进行了总结,现在进入实践阶段! <linux设备驱动入门篇>:http://infohacker.blog.51cto.com/6751239/1218461 <linux设备驱动扫盲篇>:http://infohacker.blog.51cto.com/6751239/1218747 <fedora下的字符设备驱动开发>:http://infohacker.blog.51cto.com/6751239/1155153…
/** * Author:hasen * 參考 :<linux设备驱动开发具体解释> * 简单介绍:android小菜鸟的linux * 设备驱动开发学习之旅 * 主题:时钟 * Date:2014-11-15 */ 一.内核定时器             1.内核定时器编程             软件意义上的定时器终于依赖硬件定时器来是实现.内核在时钟中断发生后运行检測各定时器是否到期, 到期后的定时器处理函数将作为软中断在底半部运行.实质上,时钟中断处理程序会唤起TIMER_SOFTIR…
代码地址如下:http://www.demodashi.com/demo/11284.html 一.准备工作 编译环境 xcode 用于生成冗余架构代码, 实现生成零耦合架构 二.程序实现 上个月的一篇移动端面向文档开发一文久违的被编辑推荐到了首页, 也引来了饿了么大神的关注, 虽然最后实力不济未被录用, 但也指明了我前进的方向. 从4月到现在从一个想法到一步步的实现, 感觉自己还是有充足的长进的, 今天我们继续来完善这个项目. 之前有写过一个python脚本的生成工具, 通过读取json文件进…