- libevent之android与鸿蒙编译过程
老中医的博客
libeventharmonyos
背景最近基于libevent开发了一个端侧的缓存代理库,先是基于macOS编译开发的,基本0问题,后来移植到鸿蒙与android时遇到一些编译链接问题。libevent版本如下:软件版本号libevent-2.1.8android编译编译环境androidstudio版本ndk编译链版本api级别AndroidStudioFlamingo|2022.2.1Patch2Build#AI-222.44
- ffmpeg for android编译全过程与遇到的问题
老张音视频开发进阶
ffmpegandroid
编译前准备编译环境:Ubuntu16,可自行下载VMWare最新版并百度永久许可证或在服务器上安装Ubuntuffmpeg源码:ffmpeg4.2.2NDK下载:AndroidNDKr21e有条件的最好还是在Liunx平台下编译吧,Windows平台下编译坑更多,文章末尾有Github源码可自取开始编译1.解压NDK,执行unzipandroid-ndk-r21e-liunx-x86_64.zip
- Android编译m、mm、mmm指令
Dic-
AndroidAOSPandroidaosp编译mmm
aosp源码位置:build/envsetup.sh包含描述编译指令的作用。m:Makesfromthetopofthetree.mm:Buildsandinstallsallofthemodulesinthecurrentdirectory,andtheirdependencies.mmm:Buildsandinstallsallofthemodulesinthesupplieddirector
- 编译linphone-sdk-android
guodongAndroid
编译linphone-sdk-android编译环境系统Ubuntu20.04.4LTS2核4G50G存储i5-8250U1.60GhzAndroidSDKr24.4.1AndroidNDKr18bLinphoneSDKRelease4.5CMake3.16.3Python3.8.10Git2.15.1Java1.8.0_312Android环境准备安装AndroidSDKNDKcmdline-t
- Android编译6.0系统源码(vmware)完美爬坑
easyworkshop
一、环境搭建1、系统:Ubuntu16.04.6LTS(XenialXerus)amd64推荐阿里镜像站下载,速度比ubuntu官网快地址:https://developer.aliyun.com/mirror/下载完成后开始安装到虚拟机,由于使用VMwareWorkstation15Pro偶尔会出现莫名其妙的问题,比如大小写错乱,鼠标滚轮卡顿等,本文使用的是VMwareWorkstation12
- 解决Android编译报错:Unable to make field private final java.lang.String java.io.File.path accessible
旺仔大牛
androidjavapython
文章目录出错场景解决方案出错场景从网上的下载的一个老Android项目,编译时报以下错误>Task:app:processDebugMainManifestFAILEDExecutionfailedfortask':app:processDebugMainManifest'.>Unabletomakefieldprivatefinaljava.lang.Stringjava.io.File.pat
- [一]ffmpeg音视频解码
_yao_
音视频处理ffmpeg音视频
[一]ffmpeg音视频解码一.编译ffmpeg1.安装vmware虚拟机2.vmware虚拟机安装linux操作系统3.安装ftp和fshell软件4.在Ubuntu(Linux)中编译Android平台的FFmpeg(arm和x86)5.解压FFmpeg6.Android编译脚本(1)修改FFmpeg的configure文件7.开始编译(1)执行configure文件生成makefile文件(
- Android openssl3.0.x编译和使用
AE86飙一下啊
androidubuntuandroidstudio
Androidopenssl3.0.x编译和使用1、前提准备编译需要在linux环境下进行,笔者使用的是vmware虚拟机安装ubuntu20.04进行编译,虚拟机的安装和ubuntu的安装这里就不详细说明了,可自行百度。vmware官网下载地址ubuntu20.04下载地址2、编译环境openssl编译需要提前安装所需要的环境,这一点在openssl官网文档中有说明。Android编译说明ope
- WXUI 基于uni-app x开发的高性能混合UI库
喵十一点半
uni-appuiuniappxunix高性能混合UI库
uni-appx是什么?uni-appx,是下一代uni-app,是一个跨平台应用开发引擎。uni-appx没有使用js和webview,它基于uts语言。在App端,uts在iOS编译为swift、在Android编译为kotlin,完全达到了原生应用的功能、性能。uni-appx在app端,不管逻辑层、渲染层,都是kotlin,没有通信问题、没有混合渲染问题。不是达到了原生的性能,而是它本身就
- Android 编译ffmpeg库
小纸箱
Android编译androidffmpeg
Android编译ffmpeg库下载ffmpeg源码gitclonehttps://git.ffmpeg.org/ffmpeg.git或者gitclonehttps://github.com/FFmpeg/FFmpeg.git。下载NDK版本,目前我使用的是NDK21,下载NDK和查看NDK目录文件的方法:(1)进入AndroidStudio查看,勾选ShowPackageDetails,可以查看
- Android编译优化之Jetifier优化
搜狐技术产品小编2023
android
本文字数:9048字预计阅读时间:40分钟在狐友项目的编译优化中,我们发现在BuildAnalyzer中有明确的Warnings提示,告知项目可以进行Jetifier优化。Jetifier是之前项目进行AndroidX迁移时引入的插件,它能辅助迁移三方库到AndroidX。Jetpack套件能够帮助你更轻松的搭建高质量的APP,它包括了依赖库、工具和指导。它通过最佳实践、模板代码、以及简化复杂的任
- Android 编译过程介绍,Android.mk 和 Android.bp 分析, 在源码中编译 AndroidStudio 构建的 App
xiaowang_lj
android
Android编译过程介绍,Android.mk和Android.bp分析,在源码中编译AndroidStudio构建的App_.mk编译目录所有.bp-CSDN博客
- 使用docker创建自己的Android编译容器
我是黄大仙
androiddockerandroid容器
文章目录背景步骤1.创建Dockerfile2.编写Dockerfile指令3.编译4.使用背景每次拿到新机器或者系统重装,最麻烦的就是各种环境配置,最近学习了一下docker的知识,用dockerfile创建一个Android编译容器,这样就不用每次都吭哧吭哧的配置各种环境,至少编译可以方便点,开发环境还是得手动配的。步骤1.创建Dockerfile新建一个目录,创建Dockerfile,并在这
- 基于NXP iMX8 进行安卓Android编译和开发
toradex
ByToradex胡珊逢简介安卓Android因其丰富的生态环境,以及快捷的应用开发和分发,获得了广泛的市场关注。Toradex最新基于NXPiMX8处理器的ApalisiMX8QM和ColibriiMX8QXP也提供给了Android9.0(Pie)支持。下面我们将介绍如从源码开始编译安卓。安卓系统目前并非Toradex官方直接提供技术支持的操作系统,而由合作伙伴Kynetics进行移植和维护。
- 【安卓的签名和权限】
苏柘_level6
android
Android编译使用哪个key签名?一看Android.mk在我们内置某个apk的时候都会带有Android.mk,这里面就写明了该APK使用的是什么签名,如:LOCAL_CERTIFICATE:=platform表明使用的是platform签名LOCAL_CERTIFICATE:=PRESIGNED表明使用的是apk原本的签名,记住这里的PRESIGNED需要大写二看产品自定义秘钥大部分公司在
- 编译相关
修塔寻千里
什么是编译,可以简单理解为将高级语言转化为机器或虚拟机所能识别的低级别语言的过程。对于Android来说,这个过程就是把Java或者Kotlin转变为Android虚拟机运行的Dalvik字节码的过程。Android编译Gradle是Android官方的编译工具,它是GitHub上的一个开源项目。目前开源的项目有FaceBook的Buck以及Google的Bazel。自己”造轮子”有如下好处:统一
- 常见错误集合
ATTTA
android编译错误AAPT:error:resourceandroid:attr/lStarnotfound解决删除implementation"androidx.core:core-ktx:+"添加configurations.all{resolutionStrategy{force'androidx.core:core-ktx:1.6.0'}}
- Android 编译静态链接的可执行文件
「已注销」
Androidandroid静态链接-可执行程序
Android编译静态链接的可执行文件在Android开发与调试过程中往往遇到以下两种场景,导致我们编译的可执行程序无法运行:不支持动态链接,比如系统初始化进程init和Recovery模式下执行的recovery,它们在执行的时候,往往不会挂载/system分区,不存在ld和ldd.so等动态加载工具和C库,这样的可执行程序往往需要静态链接。一些辅助测试的工具程序。比如busybox等,如果是动
- Android编译优化之混淆配置
Calvin880828
android系统分析Android性能androidandroidstudiogradle
Android编译优化之混淆配置背景为了使用java8及后续java新版本的特性,Google增加了一步编译过程—脱糖(desugaring),但这一步会导致更长的编译时间,这也是为什么Google会推出D8和R8编译器来优化编译速度。什么是脱糖?脱糖即在编译阶段将在语法层面一些底层字节码不支持的特性转换为基础的字节码结构,(比如List上的泛型脱糖后在字节码层面实际为Object);Androi
- android编译.a文件,Android 7.1源码编译导入AS完整教程
jfgfyth
android编译.a文件
本教程仅针对Android7.1系统,为便于虚拟机备份和出现问题时的还原,本教程分为3步:初始化编译环境、源码同步、编译源码导入AndroidStudio。编译源码:Android7.1.2_r1源码。编译环境:VMWare虚拟机、Ubuntu16.04系统。虚拟机硬件:内存12G,硬盘200G,处理器数量2,每个处理器的核心数量1。1.初始化编译环境1.1新建虚拟机选择将虚拟磁盘存储为单个文件、
- Android编译时注解
huweijian5
Android编译时注解[TOC]前言相信大家经常都使用到注解,如果使用过AndroidAnnotations,Dagger2,EventBus,RxJava,BufferKnife等开源项目,对注解应该更为深刻,这些项目的原理基本都是基于编译时注解动态生成代码,效果等同于手写代码,因此相对反射来说性能基本无影响。另外,已经实现了注解轻松实现线程切换开源项目,欢迎fork&star.了解注解注解的
- Unity Android编译IL2CPP 对比 Mono
TrudgeCarrot
参考https://zhuanlan.zhihu.com/p/19972689?refer=indieacehttps://blogs.unity3d.com/cn/author/josh/从一些其他人的博客和IL2CPP开发人员的博客中可以理解出IL2CPP是未来的趋势。并且现在也在不断的完善中。对于编译时间太长,推测他们可能会像ios采用不剥离模式,运行标准库,到时可能会减少编译时长(猜测)I
- Android编译,Error: could not find jdk tools.jar
小康师兄
AndroidAndroidJDL
下载jdk7https://download.csdn.net/download/kangweijian/10804091拷贝到usr/java解压sudotar-zxvfjdk-7u79-linux-x64.tar.gz修改环境变量sudovi/etc/profileexportJAVA_HOME=/usr/java/jdk1.8.0_111exportJRE_HOME=${JAVA_HOME}
- Android编译源码时禁用werror避免报错
WJ_S
Androidandroidmakefile
修改源码目录下的build/core/config.mk如下:-TARGET_ERROR_FLAGS:=-Werror=return-type-Werror=non-virtual-dtor-Werror=address-Werror=sequence-point+#TARGET_ERROR_FLAGS:=-Werror=return-type-Werror=non-virtual-dtor-We
- Android编译报Manifest merger failed with multiple errors, see logs
819forever
在集成支付宝SDK时,编译一直报Manifestmergerfailedwithmultipleerrors,seelogs。这个只知道是Manifest中的错误,但是打开Manifest文件又看不到具体的错。最后发现是我找错了位置(其实还是在Manifest文件中找错误)如图,打开Manifest文件,然后点击mergedManifest,这时右边有一个红色的error,这就是错误的原因。是由于
- 关于uniapp X 的最新消息
王家视频教程图书馆
Uniappuni-app
uni-appx是什么?uni-appx,是下一代uni-app,是一个跨平台应用开发引擎。uni-appx没有使用js和webview,它基于uts语言。在App端,uts在iOS编译为swift、在Android编译为kotlin,完全达到了原生应用的功能、性能。可以下载打包后的hellouni-appx的apk来体验。(通过显示界面元素边界可知界面都是原生UI,解包后也不会看到js引擎,里面
- 交叉编译gRPC初实践
real沛林
#gRPC汽车操作系统Linuxlinuxc++
快速开始一、创建android编译目录,在grpc源码根目录下运行:mkdir-pcmake/build_android&&cdcmake/build_android二、cmkae生成对应Makefile等编译所需的文件cmake-DCMAKE_TOOLCHAIN_FILE=/zhuyazhou/DDS/tools_dds/android-ndk-r25/build/cmake/android.t
- Android编译FreeType2
航行在蓝天的蚂蚱
android前端服务器
cmake_minimum_required(VERSION3.4.1)project(freetype2-static)#添加定义add_definitions(-DANDROID_NDK-DFT2_BUILD_LIBRARY=1)#指定头文件的搜索路径#include_directories(${CMAKE_SOURCE_DIR}/include_all)#include_directorie
- WebRTC之Android编译
FlyerGo
前言在前面关于WebRTC的相关学习笔记中,笔者记录的多是一些理论相关的知识,比如各种协议之类的。虽说有纸上谈兵、空中阁楼的嫌疑,但笔者觉得更多的是磨刀不误砍菜工,有了部分理论的支撑,才能使我们在后面的实践中走得更远。今天就来点实际点的实践,我们尝试下编译Android版的WebRTC...本文的内容主要来源于官网WebRTCAndroidNative编译教程https://webrtc.gith
- 从0到1实现Android编译时注解
Wn〤Mdu
前言我们经常使用的一些第三方框架,比如:butterknife,通过一行注解就可以实现View的“自动赋值”。那么,这其中的原理是什么呢?为了带大家更好的深入了解,本文将打造一个简单的Demo,来说明这其中的原理。实现思路我们先看Demo的效果:publicclassMainActivityextendsAppCompatActivity{//被注解的View@BindView(R.id.tv)T
- 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