iphone dev info

iphone 屏幕: 3.5 英寸(对角线) 480 x 320 像素分辨率,每英寸 163 像素

 

iphone的样式,和一些网站

 

http://www.cssiphone.com/

挺喜欢这个风格的:http://www.cssiphone.com/site/217

 

 

iphone访问网站的浏览器信息:

 

User-Agent:Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_1_2 like Mac OS X; zh-cn) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7D11 Safari/528.16
Accept:application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language:zh-cn
Accept-Encoding:gzip, deflate
Cookie:JSESSIONID=w5qi65d9mo0x
Connection:keep-alive
 

 

 

通过user-agent:可以获取到是iphone在访问,那么就可以做一些优化了:)

 

        String userAgent = request.getHeader("User-Agent");
        if (userAgent.indexOf("iphone") == -1) {
            return true;
        }

需要获取其他信息参考:http://www.iteye.com/topic/243061 

 

iphone浏览是safari, 里面的javascript支持一些iphone的设备,就像以后的浏览器可以通过js调用摄像头一样。

在http://analogue.ca/iphone/ 里面,有这样一段js:

 

	<script type="application/x-javascript">
		addEventListener('load', function() { 
			setTimeout(hideAddressBar, 0); 
		}, false);
		function hideAddressBar() { 
			window.scrollTo(0, 1); 
		}
	</script>
	<script type="text/javascript">
		function orient()
		{
			switch(window.orientation){  
				case 0: document.getElementById("orientcss").href = "css/portrait.css";
				break;

				case -90: document.getElementById("orientcss").href = "css/landscape.css";
				break;

				case 90: document.getElementById("orientcss").href = "css/landscape.css";
				break;
			}
		}
		window.onload = orient();
	</script>

 

注意里面的type是:application/x-javascript ,x表示尚未确定。而window.orientation 则是检测iphone的树立状态是横向还是竖向。

 

http://popart.com/iphone-snow-globe/ 这个就是通过js实现的一个动画,而检测改变状态的是加在body上的:onorientationchange="updateOrientation();"

 

 

iphone中文开发中心: http://www.apple.com.cn/developer/iPhone/

 

互联网开发文档: http://www.apple.com.cn/developer/Documentation/InternetWeb/index.html

 

 

iPhone web开发应知应会:http://dreamramon.spaces.live.com/blog/cns!9615FB50FFDBCFD3!4609.entry

 

 

iPhone 开发基础教程之一:http://subject.it168.com/article/articleview.aspx?id=274986&type=cms

 

关于:<meta name="viewport" content="width=320, user-scalable=yes">

http://note19.com/2007/10/03/iphone-and-the-meta-viewport-tag/

 

http://iphone.hohli.com/ 这个还没弄明白,好像是js模拟的一个iphone的local程序的样式

http://cubiq.org/spinning-wheel-on-webkit-for-iphone-ipod-touch/11 一个web版本的datepicker

demo: http://cubiq.org/dropbox/sw/  需要使用safari浏览器查看

隐藏iphone的浏览器地址栏的脚本:http://www.iphonemicrosites.com/tutorials/how-to-hide-the-address-bar-in-mobilesafari/

 

关于iphone上的safari的介绍:

http://www.evotech.net/blog/2007/07/web-development-for-the-iphone/

 

iphone开发环境的搭建:http://jsc0754.blog.163.com/blog/static/1038922452009281156410/

 

http://www.cocoachina.com/ 国内开发iphone比较好的资源

 

代码示例。

http://www.cocoachina.com/bbs/read.php?tid-12269.html

 

Gemma 4端侧AI落地iPhone:本地大模型如何重构AI信任边界 人工智能正从云端依赖走向终端自主,端侧大模型成为新一代AI基础设施的核心形态。其原理在于模型轻量化、硬件协同推理与全链路离线化设计,技术价值体现在隐私保障、低延迟响应和边缘确定性执行。典型应用场景覆盖医疗问诊、法律文书处理、方言语音转录及离线多模态理解等对数据敏感、网络不可靠或实时性要求高的领域。Gemma 4在iPhone上的完整本地运行,正是这一范式转移的关键实证——它不再需要上传数据、不依赖网络连接、所有推理均在A17 Pro NPU中完成,标志着AI主权真正回归用户设备。 阅读详情

相关推荐

SAR学习笔记后续-phased工具箱介绍

摘要:相控阵雷达介绍,基于仿真对MATLAB中phased工具箱进行了详细介绍

yjh_2019的博客 1万+

iPhone本地运行Gemma-2:离线大模型实战指南

大语言模型(LLM)在移动端的离线部署,正从概念走向工程现实。其核心原理在于模型轻量化、硬件协同加速与内存高效管理——通过INT4量化压缩参数规模、Metal与ANE异构计算分工、Unified Memory零拷贝架构,显著降低延迟与功耗。技术价值体现在隐私可控、网络无关、实时响应三大维度,广泛适用于金融合规、现场作业、老年交互等强隐私或弱网场景。本文聚焦Gemma-2系列在iOS平台的深度优化实践,涵盖MLX框架集成、Metal Kernel手写调优及iOS内存保活机制,提供可复用的端侧AI落地路径。

huqiyes的专栏 312

VPI与Matlab协同仿真:相干光通信接收端DSP算法全解析

本文详细解析了如何利用VPI与Matlab协同仿真,构建完整的相干光通信接收端DSP算法处理闭环。重点介绍了从VPI导出数据后,在Matlab中实现时钟恢复、偏振解复用和载波相位估计等核心算法的步骤与原理,并阐述了如何通过误码率计算完成仿真验证,为相干光通信系统算法研究与验证提供了高效实用的方法。

ll5678的博客 611

iPhone快捷指令一键WOL远程唤醒 [新手向教程]

原文链接:https://blog.youkuaiyun.com/sinat_41680617/article/details/147372648。原文链接:https://blog.youkuaiyun.com/m0_37728676/article/details/120724647)按如图格式加入刚才写的那个脚本(其中 ***** * * * * 意思是每分钟执行一次 也可以按照需要修改)如果想要在宿舍之外的地方连校园网 访问url进行唤醒, 需要进行路由器的配置(看下一段 )这一步的图片教程详见这段后面贴的链接。

maimangm的博客 1420

STM32F103(二十三)通用同步异步收发器(USART)

学习板:STM32F103ZET6 往期博客: STM32F103五分钟入门系列(一)跑马灯(库函数+寄存器)+加编程模板+GPIO总结 STM32F103五分钟入门系列(二)GPIO的七大寄存器+GPIOx_LCKR作用和配置 STM32F103五分钟入门系列(三)GPIO的常用库函数使用方法总结+一个网络上的误区 STM32F103五分钟入门系列(四)蜂鸣器实验(库函数+寄存器) STM32F103五分钟入门系列(五)按键实验(库函数+寄存器) STM32F103五分钟入门系列(六)时钟框图+相关寄存器

Curnane0_0的博客 1019

从通用到定制:营销Agent如何跨越数据鸿沟,实现对话SOP的个性化飞跃

从通用到定制:营销Agent如何跨越数据鸿沟,实现对话SOP的个性化飞跃

丨汀、的博客 656

16 岁高中生成功在 iPhone 7 上安装 Ubuntu 20.04 桌面!

作者 |米开朗基杨来源 |https://mp.weixin.qq.com/s/u5MmNcKdM37JhGuyPTIZLQ近日,国外一名 16 岁的开发者发布了一则视频,展示自己为...

程序猿DD 572

AutoSAR从0开始实战 --- 目录

​​​​​​本专栏是全网最真实的AutoSAR实战专栏,博主将从一个0基础小白的身份来讲解AutoSAR工具的配置,以及相应代码的讲解。

wj博客 1728

在iPhone上运行Linux终端:iSH完整使用指南

你是否曾经想过在iPhone上运行真正的Linux终端?🤔 当你在通勤路上突然需要调试服务器,或者想在手机上快速写个Python脚本时,是否觉得iOS的限制让你束手无策?别担心,iSH来了!这是一个革命性的项目,让你在iOS设备上运行完整的Linux shell环境,通过用户模式x86仿真和系统调用翻译,将Linux的威力装进你的口袋。 iSH不仅是一个简单的终端模拟器,它是一个完整的Linu

gitblog_01090的博客 824

【深度学习|语义分割之UNet】如何使用ResNet50 作为 U-Net 网络的骨干网络(backbone)并使用预训练的 ResNet50 模型。附代码及解读。

【深度学习|语义分割之UNet】如何使用ResNet50 作为 U-Net 网络的骨干网络(backbone)并使用预训练的 ResNet50 模型。附代码及解读。

985小水博的摸鱼日常 3090

模拟量输入功能块 S_ITR(Easy系列PLC完整ST源代码)

IN Input INT 输入数字量 1IN ISH INT 输入数字量上限 2IN ISL INT 输入数字量下限 3IN OSH REAL 输出工程量上限 4IN OSL REAL 输出工程量下限 5OUT OUTPUT REAL 输出工程量 6VAR temp1 REAL 临时变量1 7VAR temp2 REAL 临时变量2 8。

RXXW_Dor的博客 716

在iPhone上运行完整的Linux环境:iSH Shell深度使用指南

你是否曾经想过,在iOS设备上拥有一个完整的Linux命令行环境?当你在旅途中需要调试服务器、编写脚本或学习Linux命令时,iSH Shell正是你需要的解决方案。这个开源项目通过用户态x86模拟和系统调用转换技术,让Linux Shell在iOS设备上流畅运行,为你提供了移动端的强大开发工具。 iSH Shell不仅是一个简单的终端模拟器,它是一个完整的Linux环境,支持Alpine Li

gitblog_00863的博客 885

2026终极反反爬:Canvas/WebGL/字体指纹全维度伪装,应对浏览器检测实战指南

本文分享了2026年浏览器指纹检测现状及全维度伪装方案。当前反爬系统采用多维度联合指纹检测,重点针对硬件级(WebGL、Canvas)、系统级(字体、CPU)和行为级(鼠标移动)指纹。作者设计了一个独立的指纹伪装引擎,包含真实设备指纹库、指纹生成器和统一注入层,通过JS沙箱隔离实现伪装。核心方案包括:Canvas指纹通过真实设备渲染差异添加微偏移;WebGL指纹完整劫持上下文返回真实显卡参数;字体指纹劫持measureText方法模拟不同系统字体宽度。该方案实测可连续运行一个月零封号,解决了传统方法易被检测

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 924

IPhone程序发布到应用程序商店的流程

对于个人开发者,你需要完成以下几个过程: 申请一个Development证书 > 设置你的IPhone手机 > 创建一个App ID > 创建并下载安装一个Development Provisioning Profile。经过这几步,你写的程序就可以跑在自己的手机上了(否则只能在虚拟机里面运行)。 然后申请一个Distribution证书 > 创建并安装一个Distribution Provi

鹰击长空 2009

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

第一个iPHONE应用

1.       开发工具 在本应用中,开发工具为苹果的Xcode4.2 。 To create the iOS application in this tutorial, you need Xcode 4.2. Xcode is Apple’s integrated development environment (or IDE) for both...

miki西游 不积跬步,无以至千里;不积小流,无以成江海 131

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

对于近阶段公司代码 review 小结

来新公司,给公司的SDK review了一下。发现了不少小问题,在此总结一下。 (我下面说明问题可能是很简单,但是搞清楚某些问题还是花了些时间的,大家引以为戒吧) 先谈谈处理的问题: 1.某天QA说有游戏在iphone5 上测试,启动闪退。 我通过日志捕捉到,是因为用了openssl库,这个库包含了libcrypto.a, 这个库 和 老款的 iphone 处理器 架构冲突...

Elle0508的博客 296

PyTorch模型转Core ML实操指南:iPhone端高效AI推理落地

Core ML是Apple官方机器学习部署框架,用于将训练好的模型(如PyTorch、TensorFlow)编译为iOS原生可执行格式,实现零依赖、低延迟、低功耗的设备端推理。其核心原理是通过coremltools将模型转换为.mlmodelc二进制包,内含Metal优化内核与Neural Engine指令集,在A系列/M系列芯片上实现CPU/GPU/NPU协同调度。技术价值在于保障确定性性能、内存零拷贝、隐私合规及App Store可上架性;典型应用场景涵盖实时图像分类、AR物体识别、工业缺陷检测与移动端

weixin_30700099的博客 483

python控制苹果手机流量_用 Python 脚本实现对 Linux 服务器的网卡流量监控

*这篇文章网上已经有相关代码,为了加深印象,我做了相关注释,希望对朋友们有帮助工作原理:基于/proc文件系统Linux 系统为管理员提供了非常好的方法,使其可以在系统运行时更改内核,而不需要重新引导内核系统,这是通过/proc 虚拟文件系统实现的。/proc 文件虚拟系统是一种内核和内核模块用来向进程(process)发送信息的机制(所以叫做“/proc”),这个伪文件系统允许与内核内部数据结构...

weixin_39862985的博客 164

iphone开发之通过unix系统底层获取和系统相关的硬件信息

在获取和系统相关的硬件信息的时候,api的接口有时并不是很多。但是我的理解是iOS终究是一个操作系统,是一个基于unix的衍生系统,从操作系统的角度来理解的话,系统底层的东西是很丰富的。 内核 sysctl 含义详解: l compat子树:内核二进制兼容相关的控制 l debug子树:内核调试与信息查询 l dev子树:用于遍历和查询系统中的设备信息 l hw子树:硬件驱动信息及行为控...

mmdev 90
上一篇: postgresql 资源和安装
下一篇: mac pc install
xiaoxinphp
博客等级 码龄18年 1粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值