- Android之提示Failed to load WebView provider: No WebView installed
码莎拉蒂 .
Andriod积累AndroidFailedtoloadWebViewNoWebViewinstalled
1问题FatalException:android.util.AndroidRuntimeException:android.webkit.WebViewFactory$MissingWebViewPackageException:FailedtoloadWebViewprovider:NoWebViewinstalledatandroid.webkit.WebViewFactory.getPro
- android实践:canvas文字图片旋转显示
汤面不加鱼丸
android前端javascript
问题:如何在手机竖屏模式下将文字/图片旋转显示,即类似横屏方向上显示显示效果:实现:1.文字旋转显示canvas.save();//保存状态入栈canvas.translate(getWidth()>>1,getHeight()>>1);//显示中心PainttitlePaint=newPaint();titlePaint.setColor(Color.WHITE);titlePaint.setT
- wpa_supplicant连接到了路由,但是 udhcpc会分配到不同网段的ip,路由器ip为192.168.0网段,板子分配ip为192.168.1的网段
张海森_168820
嵌入式调试wifi及ap热点网络
wpa_supplicant连接到了路由,但是udhcpc会分配到不同网段的ip,路由器ip为192.168.0网段,板子分配ip为192.168.1的网段你提到的情况:使用wpa_supplicant成功连接到路由器;然后通过udhcpc(DHCP客户端)获取到了192.168.1.x的IP;而路由器本身是在192.168.0.x网段;这说明:你的WiFi接入点(SSID)并不是路由器192.1
- AppBarLayout+ CoordinatorLayout,ViewPager2为什么不会覆盖AppBarLayout
yzpyzp
android
这里的mViewPage为什么高度设置为match_parent,这不是把addBtn的布局区域都覆盖了吗?deepseek回答:我们正在分析一个Android布局文件的问题。用户的问题是:为什么mViewPage的高度设置为match_parent,这样不会覆盖addBtn的布局区域吗?首先,我们来看一下布局结构:整个布局是一个SmartRefreshLayout,里面包含一个Coordinat
- 区间合并:区间合并问题
区间合并:区间合并问题区间合并www.acwing.com/problem/content/805/按区间的左端点排序扫描整个区间,在这过程中把可能有交点的区间合并全包含:不做改动相交:right后移相离:更新至下一个维护区间importjava.util.*;publicclassMain{staticfinalintN=100010;staticPair[]pairs=newPair[N];s
- Linux中如何修改root密码
tealcwu
IT运维linux运维服务器
在Linux中,修改root用户密码可以通过以下步骤进行。你需要具有超级用户权限才能执行这些操作。方法一:使用passwd命令修改root密码使用具有超级用户权限的账户登录如果你已经以root身份登录,或者你当前账户具备超级用户权限(例如sudo权限),可以直接执行以下命令:sudopasswdroot输入新密码系统会提示你输入新的root密码。输入新密码并确认(两次输入)。Newpassword
- Mybatis实现多租户
@ConfigurationpublicclassMyBatisPlusConfig{/***分页插件**@return*/@BeanpublicPaginationInterceptorpaginationInterceptor(){PaginationInterceptorpaginationInterceptor=newPaginationInterceptor();//创建SQL解析器集合
- Android ViewPager没有更多页面时滑动的提示
diaostar
android
privatevarlastPositionOffset=-1overridefunonPageScrolled(position:Int,positionOffset:Float,positionOffsetPixels:Int){super.onPageScrolled(position,positionOffset,positionOffsetPixels)valisInFirstOrEnd
- 微信小程序之底部导航栏——tabBar
小猴紫啊
小程序
原文:https://blog.csdn.net/champion0324/article/details/78070468微信的开发文档里有,很多人也写了,自己写一遍,加深印象罢!在学习Android的时候,被模仿一个app的界面,实现其UI。而一般来说,总是避免不了导航栏的。比较大众化的,就是底部导航栏啦,而实现的方式也是非常的多,如:Fragment+ViewPageOr来一个RadioGr
- python中怎么安装pip3
weixin_46648511
Pytorchpycharmpython
1.到https://pypi.org/下载对应pip3模块2.打开anacondaprompt,用cd指令到安装的文件目录下3.输入python.exe-mpipinstallpip3模块的路径4.pip相关的指令pip--version查看已经安装了的pip版本pipinstallpackage_name(包名)下载安装包如pipinstallopencv-pythonpipshowpacka
- vm+ubuntu24.04扩展磁盘
youliroam
数据库ubuntuvm扩容
vm+ubuntu24.04扩展磁盘$lsblk$sudofdisk-l1.修复GPT表警告$sudoparted/dev/sdaprint当询问是否修复时,输入Fix2.扩展物理分区/dev/sda3$sudogrowpart/dev/sda33.刷新物理卷(PV)$sudopvresize/dev/sda3检查可用的扩展空间.$sudovgdisplayubuntu-vg扩展逻辑卷(LV)$s
- 60 主分区的创建与删除
宸凉
OracleOCP#LINUX基础大数据linux运维服务器ssh数据库网络
fdisk-l找到我们需要操作的这块磁盘/dev/sdbfdisk/dev/sdb【p】printthepartitiontable----------------------打印分区表(指示你要创建的是主分区)【n】addanewpartition-----------------------------新建一个分区【Select(defaultp)】:输入【p】(primary),创建主分区/
- ViewPager预加载屏蔽技术指南
powerelectricdog
本文还有配套的精品资源,点击获取简介:ViewPager是Android中用于显示多个视图或片段的关键组件,它默认预加载相邻页面以提供平滑过渡。然而,这种预加载可能会导致不必要的资源消耗或性能损失。本文将探讨如何通过代码操作来屏蔽ViewPager的预加载功能,包括自定义PagerAdapter,重写instantiateItem()和destroyItem()方法,以及调整setOffscree
- React Native 实现抖音式图片滑动切换浏览组件-媲美抖音体验的滑动式流畅预览组件
老猿阿浪
React-Nativereactnativereact.jsjavascript
写在前面“如何让用户像刷抖音一样浏览我们的图片列表?”——这个需求背后隐藏着性能、体验和交互设计的多重挑战。本文将带你从零实现一个高性能的ReactNative图片浏览器,支持分页预加载、横向滑动预览、文字展示和缓存优化,打造媲美原生体验的图片浏览方案。一、架构设计1.1技术选型需求技术方案理由纵向滑动FlashList高性能列表渲染横向滑动ReactNativeViewPager原生级流畅度图片
- HDFS 读写流程代码级深度解析
北漂老男人
HDFShdfshadoop大数据
HDFS读写流程代码级深度解析基于Hadoop3.3.4源码,聚焦关键类与方法实现一、HDFS写入流程核心代码解析1.客户端初始化写入流//客户端创建文件输出流FileSystemfs=FileSystem.get(conf);FSDataOutputStreamout=fs.create(newPath("/user/data.log"));调用链:DistributedFileSystem.c
- 模仿 微信8.0下拉出现小程序 - 二楼页面
Kingchow_Yang
Android系列
2021年8月1日先放上今天思路的实现效果图(ViewPager2):仅测试二楼效果,头部三个圆点的动画我之前实现过,今天这个还没加入。之前也试过其他方法,比如用帧布局放两个待加载的Fragment,如果有某个Fragment被覆盖,就直接隐藏布局。然后通过scrollTo()或者layout()方法重摆Fragment的位置,产生拖动的效果。但是实现效果并不理想。今天偶然得到灵感:我能不能用Vi
- java 打印 小票_JAVA调用小票打印机
d.Scorpio94
java打印小票
String[]pris=newString[4];intheight=175+pris.length*15+20;//通俗理解就是书、文档Bookbook=newBook();//打印格式PageFormatpf=newPageFormat();pf.setOrientation(PageFormat.PORTRAIT);//通过Paper设置页面的空白边距和可打印区域。必须与实际打印纸张大小相
- java 打印 小票_java 调收银机打印小票
45度仰望苍穹
java打印小票
publicclassMyPrintimplementsPrintable{staticLoggerlog=Logger.getLogger(MyPrint.class);//业务类UserServiceuserService=newUserServiceImpl();PayInfoServicepayInfoService=newPayInfoServiceImpl();publicintpri
- IPage<T> 与 Page<T> 有什么区别?
Klong.k
java前端javascript
✅一句话区别:IPage是接口,Page是实现类。实际开发中,一般你用Page就够了,它是最常用的分页对象。✅对比分析对比项IPagePage类型接口实现类(implementsIPage)用途用于参数接收或返回值接口统一抽象实际使用的分页对象是否可实例化❌不可以✅可以:newPagequeryGroupMembersByGroupId(Integercurrent,Integersize,Str
- Proxmox VE支持RM520N 5G模块
仙吟
5G
准备工作硬件软路由(如j4125),需要支持minipcie移远RM520N(M.2KEYB接口)M.2KEYB转minipcie的转换模块软件安装PVE系统移远RM520N官方提供的驱动和拨号软件PVE使用RM520N安装驱动安装编译需要的工具aptinstallmakegccpve-headers-`uname-r`dkmsusb-modeswitchwpasupplicantnet-tool
- oracle排序太慢优化
woshji
oracle数据库
1、排序字段加索引(优化效果不明显)2、Oracle修改sort_area_size,workarea_size_policy(效果很明显)2.1、登录dba账号sqlplus账号/密码@localhost:1521/数据库名2.2、showparametersort_area_size;查看sort_area_size大小默认是65536b(64kb)2.3、showparameterworka
- NX二次开发跟随鼠标响应的动态预览
曹大师
UFUNc++windows
用到了鼠标钩子和坐标转换,启动钩子后,程序会一直捕捉你的鼠标响应,会一直执行你实现的代码,所以在数据的处理上一定要严格,不能出现变量未初始化和空指针等情况,不然会造成程序闪退,在程序执行完一定要将钩子卸载干净,不然也会造成程序闪退。如果你遇到类似问题解决不掉可以关注博主,给博主留言。LRESULTCALLBACKhookproc(UINTnCode,WPARAMwParam,LPARAMlPara
- 3D游戏引擎EngineTest的TestWindow
Magnum Lehar
游戏引擎
#pragmaonce#include"Test.h"#include"..\Platform\PlatformTypes.h"#include"..\Platform\Platform.h"usingnamespaceprimal;platform::window_windows[4];LRESULTwin_proc(HWNDhwnd,UINTmsg,WPARAMwparam,LPARAMlpa
- Android开发——原生渲染方案实现 PDF 预览功能
Jerry说前后端
#Android界面开发androidpdf
Android开发——原生渲染方案实现PDF预览功能1.引言2.原生渲染方案核心设计:从数据到视图3.混合文档容器:ViewPager2与适配器设计原生渲染方案实现PDF预览功能1.引言 在移动应用开发中,PDF预览是文档处理场景的核心需求之一。Android生态提供了多元化的技术方案,从系统级简版预览到原生渲染的深度定制,开发者需结合功能复杂度、性能要求和用户体验进行选型。本文将围绕Pdf
- MFC 在自定义类中向MFC窗口发送消息
笛卡尔积的迪
mfc
在MSGDlg.h或者其他头文件中增加自定义自定义消息:#defineWM_COUNT_MSGWM_USER+100在MSGDlg.h头文件中添加消息处理函数的声明afx_msgLRESULTOnCountMsg(WPARAM,LPARAM);在CMSGDlg类实现文件MSGDlg.cpp中的消息映射表中加入自定义消息映射:BEGIN_MESSAGE_MAP(CMSGDlg,CDialog)ON_
- Android开发-翻页类视图
難釋懷
android
在Android应用中,翻页类视图(PagingViews)是一种非常直观且用户友好的方式来展示内容。无论是用于展示图片轮播、引导页还是分页加载数据列表,翻页效果都能极大地提升用户体验。本文将介绍几种实现翻页效果的常见组件和方法,并提供代码示例帮助你快速上手。一、ViewPager2:现代翻页解决方案ViewPager2是ViewPager的升级版,提供了更多的功能和更好的性能。它支持水平和垂直方
- B站锁定三倍速(自用)
追逐此刻
其他其他
控制台输入allowpasting再输入document.querySelector("video").playbackRate=3
- 微信小程序实现点击按钮跳转页面
老光私享
微信小程序小程序前端javascript开发语言
微信小程序中点击按钮跳转页面可以使用wx.navigateTo或wx.redirectTo方法。首先,在按钮的绑定事件中调用方法,如:跳转页面然后,在页面的js文件中实现跳转逻辑,如:Page({jumpPage:function(){wx.navigateTo({url:'/pages/newpage/newpage'})}})注意,需要在项目的app.json文件中注册新页面,才能在小程序中使
- centOs mysql8 重置数据库密码
菜籽日记
MySqlcentoslinux运维数据库mysql
方法一:通过宝塔面板重置如果是宝塔面板重置数据库密码。方法二:通过命令行重置。#停止MySQL服务systemctlstopmysql#启动MySQL安全模式mysqld_safe--skip-grant-tables登录MySQLmysql-urootFLUSHPRIVILEGES;ALTERUSER'root'@'localhost'IDENTIFIEDBY'newpassword';这是
- 无线网络通信技术介绍
gjxman1314
网络通信通信网络
根据国际上所采用的通信技术种类可将无线传感器网络划分为无线广域网(WWAN)、无线城域网(WMAN)、无线局域网(WLAN)、无线个域网(WPAN)、低速率无线个域网(LR-WPAN)。以下是对各类网络各自常见和常用的通信技术进行简单介绍。1无线广域网(WWAN)无线广域网WWAN(WirelessWideAreaNetworks)主要是为了满足超出一个城市范围的信息交流和网际接入需求,让用户可以
- ASM系列五 利用TreeApi 解析生成Class
lijingyao8206
ASM字节码动态生成ClassNodeTreeAPI
前面CoreApi的介绍部分基本涵盖了ASMCore包下面的主要API及功能,其中还有一部分关于MetaData的解析和生成就不再赘述。这篇开始介绍ASM另一部分主要的Api。TreeApi。这一部分源码是关联的asm-tree-5.0.4的版本。
在介绍前,先要知道一点, Tree工程的接口基本可以完
- 链表树——复合数据结构应用实例
bardo
数据结构树型结构表结构设计链表菜单排序
我们清楚:数据库设计中,表结构设计的好坏,直接影响程序的复杂度。所以,本文就无限级分类(目录)树与链表的复合在表设计中的应用进行探讨。当然,什么是树,什么是链表,这里不作介绍。有兴趣可以去看相关的教材。
需求简介:
经常遇到这样的需求,我们希望能将保存在数据库中的树结构能够按确定的顺序读出来。比如,多级菜单、组织结构、商品分类。更具体的,我们希望某个二级菜单在这一级别中就是第一个。虽然它是最后
- 为啥要用位运算代替取模呢
chenchao051
位运算哈希汇编
在hash中查找key的时候,经常会发现用&取代%,先看两段代码吧,
JDK6中的HashMap中的indexFor方法:
/**
* Returns index for hash code h.
*/
static int indexFor(int h, int length) {
- 最近的情况
麦田的设计者
生活感悟计划软考想
今天是2015年4月27号
整理一下最近的思绪以及要完成的任务
1、最近在驾校科目二练车,每周四天,练三周。其实做什么都要用心,追求合理的途径解决。为
- PHP去掉字符串中最后一个字符的方法
IT独行者
PHP字符串
今天在PHP项目开发中遇到一个需求,去掉字符串中的最后一个字符 原字符串1,2,3,4,5,6, 去掉最后一个字符",",最终结果为1,2,3,4,5,6 代码如下:
$str = "1,2,3,4,5,6,";
$newstr = substr($str,0,strlen($str)-1);
echo $newstr;
- hadoop在linux上单机安装过程
_wy_
linuxhadoop
1、安装JDK
jdk版本最好是1.6以上,可以使用执行命令java -version查看当前JAVA版本号,如果报命令不存在或版本比较低,则需要安装一个高版本的JDK,并在/etc/profile的文件末尾,根据本机JDK实际的安装位置加上以下几行:
export JAVA_HOME=/usr/java/jdk1.7.0_25  
- JAVA进阶----分布式事务的一种简单处理方法
无量
多系统交互分布式事务
每个方法都是原子操作:
提供第三方服务的系统,要同时提供执行方法和对应的回滚方法
A系统调用B,C,D系统完成分布式事务
=========执行开始========
A.aa();
try {
B.bb();
} catch(Exception e) {
A.rollbackAa();
}
try {
C.cc();
} catch(Excep
- 安墨移动广 告:移动DSP厚积薄发 引领未来广 告业发展命脉
矮蛋蛋
hadoop互联网
“谁掌握了强大的DSP技术,谁将引领未来的广 告行业发展命脉。”2014年,移动广 告行业的热点非移动DSP莫属。各个圈子都在纷纷谈论,认为移动DSP是行业突破点,一时间许多移动广 告联盟风起云涌,竞相推出专属移动DSP产品。
到底什么是移动DSP呢?
DSP(Demand-SidePlatform),就是需求方平台,为解决广 告主投放的各种需求,真正实现人群定位的精准广
- myelipse设置
alafqq
IP
在一个项目的完整的生命周期中,其维护费用,往往是其开发费用的数倍。因此项目的可维护性、可复用性是衡量一个项目好坏的关键。而注释则是可维护性中必不可少的一环。
注释模板导入步骤
安装方法:
打开eclipse/myeclipse
选择 window-->Preferences-->JAVA-->Code-->Code
- java数组
百合不是茶
java数组
java数组的 声明 创建 初始化; java支持C语言
数组中的每个数都有唯一的一个下标
一维数组的定义 声明: int[] a = new int[3];声明数组中有三个数int[3]
int[] a 中有三个数,下标从0开始,可以同过for来遍历数组中的数
- javascript读取表单数据
bijian1013
JavaScript
利用javascript读取表单数据,可以利用以下三种方法获取:
1、通过表单ID属性:var a = document.getElementByIdx_x_x("id");
2、通过表单名称属性:var b = document.getElementsByName("name");
3、直接通过表单名字获取:var c = form.content.
- 探索JUnit4扩展:使用Theory
bijian1013
javaJUnitTheory
理论机制(Theory)
一.为什么要引用理论机制(Theory)
当今软件开发中,测试驱动开发(TDD — Test-driven development)越发流行。为什么 TDD 会如此流行呢?因为它确实拥有很多优点,它允许开发人员通过简单的例子来指定和表明他们代码的行为意图。
TDD 的优点:
&nb
- [Spring Data Mongo一]Spring Mongo Template操作MongoDB
bit1129
template
什么是Spring Data Mongo
Spring Data MongoDB项目对访问MongoDB的Java客户端API进行了封装,这种封装类似于Spring封装Hibernate和JDBC而提供的HibernateTemplate和JDBCTemplate,主要能力包括
1. 封装客户端跟MongoDB的链接管理
2. 文档-对象映射,通过注解:@Document(collectio
- 【Kafka八】Zookeeper上关于Kafka的配置信息
bit1129
zookeeper
问题:
1. Kafka的哪些信息记录在Zookeeper中 2. Consumer Group消费的每个Partition的Offset信息存放在什么位置
3. Topic的每个Partition存放在哪个Broker上的信息存放在哪里
4. Producer跟Zookeeper究竟有没有关系?没有关系!!!
//consumers、config、brokers、cont
- java OOM内存异常的四种类型及异常与解决方案
ronin47
java OOM 内存异常
OOM异常的四种类型:
一: StackOverflowError :通常因为递归函数引起(死递归,递归太深)。-Xss 128k 一般够用。
二: out Of memory: PermGen Space:通常是动态类大多,比如web 服务器自动更新部署时引起。-Xmx
- java-实现链表反转-递归和非递归实现
bylijinnan
java
20120422更新:
对链表中部分节点进行反转操作,这些节点相隔k个:
0->1->2->3->4->5->6->7->8->9
k=2
8->1->6->3->4->5->2->7->0->9
注意1 3 5 7 9 位置是不变的。
解法:
将链表拆成两部分:
a.0-&
- Netty源码学习-DelimiterBasedFrameDecoder
bylijinnan
javanetty
看DelimiterBasedFrameDecoder的API,有举例:
接收到的ChannelBuffer如下:
+--------------+
| ABC\nDEF\r\n |
+--------------+
经过DelimiterBasedFrameDecoder(Delimiters.lineDelimiter())之后,得到:
+-----+----
- linux的一些命令 -查看cc攻击-网口ip统计等
hotsunshine
linux
Linux判断CC攻击命令详解
2011年12月23日 ⁄ 安全 ⁄ 暂无评论
查看所有80端口的连接数
netstat -nat|grep -i '80'|wc -l
对连接的IP按连接数量进行排序
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
查看TCP连接状态
n
- Spring获取SessionFactory
ctrain
sessionFactory
String sql = "select sysdate from dual";
WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext();
String[] names = wac.getBeanDefinitionNames();
for(int i=0; i&
- Hive几种导出数据方式
daizj
hive数据导出
Hive几种导出数据方式
1.拷贝文件
如果数据文件恰好是用户需要的格式,那么只需要拷贝文件或文件夹就可以。
hadoop fs –cp source_path target_path
2.导出到本地文件系统
--不能使用insert into local directory来导出数据,会报错
--只能使用
- 编程之美
dcj3sjt126com
编程PHP重构
我个人的 PHP 编程经验中,递归调用常常与静态变量使用。静态变量的含义可以参考 PHP 手册。希望下面的代码,会更有利于对递归以及静态变量的理解
header("Content-type: text/plain");
function static_function () {
static $i = 0;
if ($i++ < 1
- Android保存用户名和密码
dcj3sjt126com
android
转自:http://www.2cto.com/kf/201401/272336.html
我们不管在开发一个项目或者使用别人的项目,都有用户登录功能,为了让用户的体验效果更好,我们通常会做一个功能,叫做保存用户,这样做的目地就是为了让用户下一次再使用该程序不会重新输入用户名和密码,这里我使用3种方式来存储用户名和密码
1、通过普通 的txt文本存储
2、通过properties属性文件进行存
- Oracle 复习笔记之同义词
eksliang
Oracle 同义词Oracle synonym
转载请出自出处:http://eksliang.iteye.com/blog/2098861
1.什么是同义词
同义词是现有模式对象的一个别名。
概念性的东西,什么是模式呢?创建一个用户,就相应的创建了 一个模式。模式是指数据库对象,是对用户所创建的数据对象的总称。模式对象包括表、视图、索引、同义词、序列、过
- Ajax案例
gongmeitao
Ajaxjsp
数据库采用Sql Server2005
项目名称为:Ajax_Demo
1.com.demo.conn包
package com.demo.conn;
import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;
//获取数据库连接的类public class DBConnec
- ASP.NET中Request.RawUrl、Request.Url的区别
hvt
.netWebC#asp.nethovertree
如果访问的地址是:http://h.keleyi.com/guestbook/addmessage.aspx?key=hovertree%3C&n=myslider#zonemenu那么Request.Url.ToString() 的值是:http://h.keleyi.com/guestbook/addmessage.aspx?key=hovertree<&
- SVG 教程 (七)SVG 实例,SVG 参考手册
天梯梦
svg
SVG 实例 在线实例
下面的例子是把SVG代码直接嵌入到HTML代码中。
谷歌Chrome,火狐,Internet Explorer9,和Safari都支持。
注意:下面的例子将不会在Opera运行,即使Opera支持SVG - 它也不支持SVG在HTML代码中直接使用。 SVG 实例
SVG基本形状
一个圆
矩形
不透明矩形
一个矩形不透明2
一个带圆角矩
- 事务管理
luyulong
javaspring编程事务
事物管理
spring事物的好处
为不同的事物API提供了一致的编程模型
支持声明式事务管理
提供比大多数事务API更简单更易于使用的编程式事务管理API
整合spring的各种数据访问抽象
TransactionDefinition
定义了事务策略
int getIsolationLevel()得到当前事务的隔离级别
READ_COMMITTED
- 基础数据结构和算法十一:Red-black binary search tree
sunwinner
AlgorithmRed-black
The insertion algorithm for 2-3 trees just described is not difficult to understand; now, we will see that it is also not difficult to implement. We will consider a simple representation known
- centos同步时间
stunizhengjia
linux集群同步时间
做了集群,时间的同步就显得非常必要了。 以下是查到的如何做时间同步。 在CentOS 5不再区分客户端和服务器,只要配置了NTP,它就会提供NTP服务。 1)确认已经ntp程序包: # yum install ntp 2)配置时间源(默认就行,不需要修改) # vi /etc/ntp.conf server pool.ntp.o
- ITeye 9月技术图书有奖试读获奖名单公布
ITeye管理员
ITeye
ITeye携手博文视点举办的9月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。 9月试读活动回顾:http://webmaster.iteye.com/blog/2118112本次技术图书试读活动的优秀奖获奖名单及相应作品如下(优秀文章有很多,但名额有限,没获奖并不代表不优秀):
《NFC:Arduino、Andro