任何问题请联系WX:uu16853

买模板送网站采集器 让你轻松放开双手运营网站!

购买更多有优惠!

火车采集器之列表页附加参数获取功能使用方法_爬虫软件技术与爬虫软件网页数据采集器门户

列表页附加参数获取功能,是在采集内容页地址的时候,通过设置采集规则,获得的值,也就是获取列表页的值,该值将被循环的添加到每条记录上。 如下图,设置在 “添加多级网址采集规则” 的第四步: 我们通过采集腾讯新闻为例来说明这个功能如何使用。 比如我们采集腾讯新闻的时候,要把分类“时政新闻”这个分类加到每条信息里面。 和第二步建立标签一样,在源代码里面找到前后字符,然后我们建立一个标签[标签:分类],如下图,这里又有一个地方可以建立标签   所以标签并不是只能在第二步采集内容规则那里建立大家要明白,看下图: 设置好了我们点击保存,测试下。 因为这个标签的值是在列表页获取的,如果你直接到第二步采集测试是采集不到任何值的如下图: 上图看到,分类标签是灰颜色的,就表示这个标签是在采集地址的时候获取的,也就是通过第一步:采集网址规则,如果你不经过第一步直接在第二步测试的话 是没有值的。 必须通过测试网址如下图: 然后点击测试采集到的地址到第二步才可以. 选中地址,在列表页建立的标签和采集的值就会看到如上图。 然后双击地址就会跳转到第二步:采集内容规则 然后测试,就可以把列表页采集的标签显示出来如下图:

火车采集器之内容分页采集使用教程_爬虫软件技术与爬虫软件网页数据采集器门户

火车采集器之内容分页采集使用教程,采集文章的时候,难免遇到文章有分页,本教程讲解下内容分页的采集。 在规则的第二步:采集内容规则左下方有个“分页获取规则”选项卡,用来设置分页。如下图: 全部列出模式适用于分页地址全部显示出来如下图: 上下页上n页下n页适用用分页地址列出一部分如下图 我们先说下上下页模式的分页,以采集这个地址http://www.asia-home.com.cn/2013/0117/1358391833627.html为例 在第一页我们查看分页代码的情况如下: 在第三页分页代码的情况如下: 在第五页分页代码的情况如下: 通过上面我们是否可以得到一个规律:当前页的源代码是“<strong>当前页码</strong></a>”然后紧接着的代码“<a href=下一页的地址>”就包含了下一页的地址 然后以“</a>”结束,也就是从页面源代码“<strong>当前页码</strong></a>”开始然后再以“</a>”结束,中间就包含了“下一页”的地址,这就是我们说的上下页模式, 原理就是找到当前页如何获取到下一页地址的源代码格式,然后我们把这个源代码格式填写到采集器里面如下图: 左侧空白框填写的是“<strong>(*)</strong></a>”其中当前页的页码我们用(*)代替,右侧的空白框我们写的是“</a>”来做为结束,中间的就是下一页地址。 “自动识别”:采集器会在上面的设置的范围内,自动匹配到分页地址。 “手动填写分页地址规则”:有的时候采集器识别分页的时候遇到无法识别或者识别的不是很准确,我们就可以把分页的格式写上去,来确保识别分页的正确性。 一般是我们先用“自动识别”如果获取不到我们就用“手动填写分页地址规则”。本例子中如果我们用“手动填写分页地址规则”可以设置如下: 因为上面我们说明了下一页的地址格式是“<a href=下一页的地址>”,其中我们需要的部分用[参数]代替。下面用[参数1][参数2]等等按照顺序和上面的[参数]一一对应。 以上分页就设置好了,现在我们设置采集内容的规则: 设置的规则一定要适用于后面的分页,然后不要忘记勾选“该标签在分页中匹配”,如果不勾选是不会采集分页地址的。 如何实现采集到的分页发布到自己网站上也是同样的分页,设置如下: 标签循环处理选项卡下面有个“分页内容连接代码”,在这里设置了连接代码,采集到的每页的内容就会以这个连接码连接在一起。 我们手动在自己网站发布文章的时候,需要分页的时候,我们都设置一个分页代码各个网站系统是不一样的,遇到分页代码就会分页,那么我们就可以把自己网站上 生成分页的代码写到这个“分页内容连接代码”就能实现分页效果了。 我们看下采集的效果: 现在说下全部列出模式的分页,如下图: 设置下分页开始和结束。其他设置和上面上下页是一样的。 备注:其实所有的分页都是可以使用上下页模式的,无论分页地址是否全部或者部分列出,根据上面讲到的原理,找到规律就可以了,我写分页全部用上下页模式 还希望大家不用太死板,灵活运用才能更好的解决问题,其实没有什么难的,分析的方法我在上面写的很清楚了,就按照这个来做就可以了。太死板的人,是帮不了你了,无视就好。

火车头采集器的使用配置教程

这里只是略说重点,需要更多更多深入的了解火车头采集软件请看教学视频。 火车头采集器使用视频教程(入门) https://www.seowhy.com/course/31 店家已经整合好接口文件,你先解压店家给你的压缩包,里面已经设置好采集规则和部分已经采集下来的数据了,你需要配置一下发布模块就行了(或者已经配置)。 【配置发布模块!】 登陆后选择工具配置web发布配置管理。 双击编辑配置,填写自己的域名网址,然后点击“获取列表”,这里最主要是获取到网站的分类,然后你选择要把采集到的内容数据发布到哪个网站分类下。 保存配置后就完成了!一般能获取到网站列表说明是成功连接,没必要进行测试了! 【采集发布内容!】 配置好发布模块后,一般情况下你不用操作其他的了,采集规则已经写好,数据也采集好了,你可以选择直接发布,或者重新采集发布。 首先在采集的时候(采网址)(采内容)(发布)这三项都要选择打钩,就是采集完成后就直接发布到网站了! 右键打开菜单开始任务,或者编辑任务! 运行任务,采集目标站的内容数据并发布内容到我们的网站上。 到首页上看,内容已经顺利成功发布并更新! 还有一个要说的就是本地数据编辑功能,因为是免费版本的采集器,大部分功能是能够使用,但采集到本地的数据是无法编辑的! 【任务编辑设置!】 发送内容到网站哪个栏目,你可以自己选择,编辑任务,发布内容设置,获取栏目列表,然后选择栏目添加。 如果你觉得想多发几个栏目,你可以照着我的规则来复制,粘贴任务,来增加发布任务!目标网站你可以自己寻找来看着制作规则! 编辑规则,主要有二个重要,一个是内容,一个是图片(主要是网站缩略图)如果没有这个图片,发布到网站上的文章是没有缩略图显示的!     你可以自己设置每次发布数据的数量,默认是每次发布5条。   这里是设置采集的间隔,和发布内容的间隔,主要是为了防止采集过快被目标站发现。 【采集图片数据保存】 以上是发布相关的说明,接下来说图片数据的下载上传。 一般情况下采集的内容其中的文字会被保存发布到网站上,但是图片还是目标站的链接图片,也就是说发布到自己网站上的图片是别人家的,你只是在调用而已。于是对于想把图片保存下来放到服务器上永久使用。可以看以下教程,反之跳过。 1,首先编辑任务内容标签,文件下载。   2.选择保存的本地文件夹和设置绝对链接地址。 3.当采集把图片下载到本地后,再用FTP软件上传到根目录下的/1/目录

什么是火车采集器 如何使用火车采集器软件_爬虫软件技术与爬虫软件网页数据采集器门户

  火车数据采集平台是一款通用型数据采集程序框架。它包含了数据采集最常用的计划任务,数据发布,正文识别、OCR图形图像识别,采集入库等模块,可以支持其它采集软件快速稳定在平台上使用。火车采集器平台定义了统一的接口规范并提供了大量的api,用户可以很方便的开发自己的应用并在该平台上运行,可以减少开发上时间和成本。目前平台上有官方自带火车采集器。

如何利用火车采集软件采集58招聘信息_爬虫软件技术与爬虫软件网页数据采集器门户

如何利用火车采集软件采集58招聘信息   今天我们要讲解的内容是:“如何利用火车采集器采集58招聘信息”。   很多找工作的朋友会遇到这样的问题打开58同城网站发现里面太多太多的信息,然后不知道如何去找到自己适合的工作。这个时候我们就可以利用火车采集器来进行数据的采集到电子表格中进行分析。   那如何利用火车头采集来进行采集58上面的信息呢。下面我们就一起讨论一下这问题。   首先第一步您需要确定我们要采集的页面,就是列表。我们以下面的列表地址为例进行讲解。   这是一个58的列表页。我们首先需要对列表页的源代码进行分析,如何分析呢。我们需要右键查看网页源代码。看他的代码组成。 这张图是58招聘信息列表页面的源代码的截图。 那这么多代码我们如何来进行分析。首先我们需要搜索特定的关键字。例如其中一个标题。然后到源代码里面进行搜索。 我们通过分析找到特定的代码格式,然后通过火车采集软件对这些特定的代码进行读取,从而提取我们需要的信息。那58招聘信息这个列表页面的特定代码是什么呢。 我们通过分析得出结论如下:<div class=”item_con job_title”>从这里开始 然后到</div>这个div结束。这样火车采集软件可以分析出网址所在的位置。如下吗截图所示。 通过列表页分析之后我们可以吧这些信息写入火车头采集器的网址获取脚本中,然后进行下面一步的操作就是采集内容。 内容部分比较复杂,我们下面通过一段视频来进行讲解如何采集内容的部分的内容。 获取内容部分的视频亲可以联系QQ进行索取。 我们会附送您视频和制作好的采集规则,欢迎您的来访。 如何利用火车采集软件采集58招聘信息原稿件附件下载 文章未完待续,视频录制好之后会上传优酷,然后地址会贴过来。到时候大家可以观看了。更新日期:2018-07-26

如何使用火车采集器V9.7采集百度搜索关键词教程_爬虫软件技术与爬虫软件网页数据采集器门户

如何使用火车采集器V9.7采集百度搜索关键词教程,当我们在进行网站优化以及内容更新的时候会发现,大批量更新文章是需要很多关键词。而自己手动统计的关键词是远远不够使用的,因此我们会从其他同类型的网站中获取关键词,这时就要用到网页抓取工具,进行关键词的高效采集,也能大大减少时间和人力成本。

快速搭建vpn在 CentOS 6、7下pptp vpn服务器一键安装脚本“大全集”

1, 这个脚本可以单独使用,直接复制或下载执行即可,不用依赖安装包的其它脚本。 CentOS 6、7下pptp vpn一键安装脚本,安装如下: wget http://mirrors.linuxeye.com/scripts/vpn_centos.sh chmod +x ./vpn_centos.sh ./vpn_centos.sh Centos7搭建pptp一键安装脚本 废话不多说,先上脚本地址:Centos7一键pptp 使用: wget http://files.cnblogs.com/files/wangbin/CentOS7-pptp-host1plus.sh chmod +x ./CentOS7-pptp-host1plus.sh ./CentOS7-pptp-host1plus.sh -u your_username -p your_password wget http://files.cnblogs.com/files/wangbin/vpn_centos.sh chmod +x ./vpn_centos.sh ./vpn_centos.sh 可在-u、-p后随意更改自己的登录用户名和密码。但密码长度必须大于8个 ASCII字符,否则为了安全,脚本将会随机生成密码。 CentOS 6 (32/64位) 下载一键安装脚本 wget https://dl.dropboxusercontent.com/sh/44oorvdsjvz0mzn/NNL_fB9K7L/centos6_pptpd.sh 运行脚本 chmod +x centos6_pptpd.sh ./centos6_pptpd.sh 然后等待安装完成后 会自动创建一个随机的用户。 Debian/Ubuntu (32/64位) 下载安装脚本 wget –no-check-certificate http://chinatoosex.com/script/pptp.sh 运行一键安装脚本 sh pptp.sh 运行完成后 ,预设了一个用户test,密码test123 2.添加或者修改用户 方法一(简略)添加用户的方法: echo […]

新手怎么开展跨境电商?跨境电商选品、物流、入驻、运营推广

目前跨境电商发展前景很好,很多人都想做跨境电商,新手如何开展跨境电商? 跨境电商开展步骤 一、选品 选品对于跨境电商尤为重要,选择的商品合适,就比较容易运营起来,选的不合适,累成狗也做不起来! 1、市场容量要足够大,关键词月搜索量大于10万,太冷门的产品就不要做了; 2、竞争热度不能太大,一般亚马逊上400个以上review的就别做了; 3、有足够的利润空间,毛利率至少45%以上,且运费售价占比不能超过30%; 4、查看买家评论,分析寻找痛点,改进商品,微创新; 5、商品生命周期至少要1年以上,易于升级,符合潮流趋势; 6、货源有一定优势,供货稳定,成本较低; 7、卖家喜好,如果自己本身都不喜欢该品类,想做好是不可能的。 注意:千万不要选择有侵权风险的商品,前几天速卖通卖家因商品涉嫌侵权被起诉,账户被冻结了,之前其他平台也已发生过多次了。 二、仓储物流 1、自备库存(国内备货,国内直发国外) 2、自备库存(海外仓备货) 3、零备货,供应商一件代发(直发国外,或发给自己,自己在发国外) 跨境电商发货方式 如果有一定订单量,可以从国内整包发国外,再在国外拆分、打包快递,运费会便宜不少; 三、入驻跨境电商平台 主流B2C跨境电商平台:亚马逊、eBay、速卖通、Wish 新手,预算较少的情况下,建议先从Wish做起; 特别注意:欧美国家 做东南亚市场的可以入驻:Lazada、Shopee、Qoo10 另外,自建站结合入驻平台也是一种不错的选择,值得考虑 入驻亚马逊、eBay、速卖通、Wish对比分析 从费用看,wish免费入驻,其他平台会适当收取一些费用,汇款周期都差不多在2周左右; 亚马逊、eBay、速卖通、Wish 资费对比 四、运营推广 1、平台站内推广(购买关键词广告位),参加试用等促销活动,销售破零 2、找独立的第3方测评师进行测评; 3、社交平台Facebook、twitter、Instagram、Pinterest等开通官方账号,做内容营销; 4、Youtube 做视频营销 跨境电商推广营销 相关文章推荐: 跨境电商入驻亚马逊 eBay 速卖通 Wish 还是 自建站? 跨境电商选品,亚马逊、eBay、速卖通、Wish如何选品? 2018至2022出口跨境电商年复合增长率达20%以上 出口跨境电商推广营销之七种武器,外贸B2B、B2C营销 外贸B2B升级版,跨境供应链S2B2C服务模式 始发于今日头条

Android 3.0自带的天气预报例子代码 Android开发技术

Android 3.0正式版API Level 11中加入了一个天气预报例子,下面是manifest.xml中的关键代码,只是少了xml的编码头: <manifest xmlns:android=”http://schemas.android.com/apk/res/android” package=”com.example.android.weatherlistwidget”> <uses-sdk android:minSdkVersion=”11” /> <application android:label=”Weather Widget Sample”> <receiver android:name=”WeatherWidgetProvider“> <intent-filter> <action android:name=”android.appwidget.action.APPWIDGET_UPDATE” /> </intent-filter> <meta-data android:name=”android.appwidget.provider” android:resource=”@xml/widgetinfo” /> </receiver> <service android:name=”WeatherWidgetService” android:permission=”android.permission.BIND_REMOTEVIEWS” android:exported=”false” /> <provider android:name=”WeatherDataProvider” android:authorities=”com.example.android.weatherlistwidget.provider” /> </application> </manifest> 这里WeatherDataProvider.java的源码为主要是ContentProvider相关的处理,这里作为appWidget的receiver class WeatherDataPoint { String city; //城市 int degrees; //度数 WeatherDataPoint(String c, int d) { city = c; […]

Android平板开发注意点 Android开发技术

  很多网友可能看到即将有多款Android平板上市,就Android平板开发的注意点这里Android123给大家总结如下注意点:   1. 系统版本:   目前Google官方支持的平板开发版本为Android 3.0 honeycomb,API Level 11,有的网友可能看到HTC Flyer或Samsung Galaxy Tab这里并不推荐大家购买,Android 2.3或2.2并不适合平板,可能和主流的平板发展有些偏离,至少可以看到主流的3.0平板使用NVIDIA Tegra2双核处理器,而HTC Flyer是高通的单核、Galaxy Tab使用的是三星自己的单核处理器。移植和固件更新上无法得到Google官方的主流支持。   2. 硬件注意   这里从品质和固件升级来看,摩托罗拉Xoom还是很不错的,但目前主要是CDMA EVDO版本,只能在中国大陆的电信网络上使用,不过开发者可以考虑价格更优惠的WiFi版Xoom平板电脑,这里Android开发网再给大家两个候选推荐三星Galaxy Tab 10.1这是一款10.1的平板,使用NVIDIA Tegra2处理器,拥有1GB的RAM,还有就是LG Optimus Pad,总而言之。处理器使用NVIDIA Tegra2,RAM在1GB预装Android 3.0的,手机制造全球排名在前5的品牌可以保证用户数量和固件升级的效率。   3. 分辨率注意   目前来看即将主流Android平板分辨率在1280×800这个水平,屏幕尺寸也在10英寸左右,而1024×768的7英寸平板不推荐开发者使用,按照趋势来看更大尺寸和更高的分辨率是趋势。   4. 平板应用   平板在早期比较适合电子阅读,同时视频播放,游戏娱乐都是必不可少的,如果你是Android平板开发者可以考虑下平板和手机相比哪些软件是很稀缺的。

Android开发知识-3月13日总结 Android开发技术

   来自国内外的Android开发相关知识总结,整理于2011年3月13日。   1. NDK开发使用什么IDE比较好? 这里Android123推荐使用Visual Studio 2005或更高版本,对于代码管理和显示效果比较出色。   2. SurfaceView如何截图 ? 使用Linux下标准的Framebuffer无法获取是一片黑色,类似Windows下截取DirectX这样的DMA模式的数据一样,由于SurfaceView在游戏或高实时性画面比较多,Android除了从2.3.3开始新增了一个SurfaceFlinger API用于截图.当然有关OpenGL的截图还可以查看android开发网早期文章,如果你有Root权限截图普通图片通过读取/dev/graphics/fb0即可。   3. Android模拟器和真机到底性能差异多少? 这里Android开发网提示,模拟器的性能和PC的CPU、RAM有很大的关系,同时默认的模拟器启动时分配的RAM较小,而真机也分为很多层次,比如CPU从ARM11这样单核频率在550MHz左右,也有效率更高的A8、A9双核的,同时真机的RAM也是从256MB到1GB不等,对于实际性能差距mTweak评估可能造成10倍或更高的效率差别。   4. android开发时项目的包名管理和代码风格,一般考虑到设计模式,这里android123推荐大家有ui、view、service、provider、util、network以及常量const包,对于Java工程的管理和代码优雅性大家应该多参考优秀的开源工程,比如Android自带的apps的代码,看一些设计模式对于项目管理控制都有很大的帮助,尤其是模块化的开发。   5. 跨进程的数据传输,如果是几个应用协同处理需要跨进程,对于Android平台来说设计一个AIDL服务器比较方便,类似系统的很多服务都是通过getSystemService这样的方式访问server来处理在代码可复用上面和通讯上,类似微软的COM模型,开发者无需关注内部实现曝露出通用的接口即可。

Android平台待开发软件列表 Android开发技术

   很多Android开发者不知道做哪些软件,如果你的基础足够扎实可以尝试下列表中的应用吧:   1. 文件管理器 – Google在Android手机中并没有预装文件管理器,目前来看市面上还没有一款比较像样的文件管理器,这里Android123推荐大家做一款不错的文件管理器,对于平时SD卡的管理还是比较有帮助的。   2. 视频播放器 – 由于系统中的播放器支持识别3gp、H.264编码的mp4和wmv,对于flv、rmvb、rm、avi以及vob格式的文件来说都还无法播放,如果你做过解码器相关的项目,做一个全能播放器也是不错的。   3. 软件商城 – 对于Java的基础性测试,类似Market的客户端开发是一个不错的检验,当然你可能需要先学习下服务器相关的知识,这里Android开发网推荐使用JSON在Android平台,比较省流量吧。   由于目前国内的Android软件在上面涉及的,只有暴风影音手机版和QQ影音手机版做的还算正统外,第1类和第三类值得开发者深挖,这样你的基础会变得更加牢固。 

Android裁剪图片最简单方法 Android开发技术

   很多网友平时如果需要在Android平台下开发处理图片裁剪的应用,如果感觉实现的逻辑比较麻烦,比如说需要写类此Win32下的橡皮筋类CRectTracker来设置裁剪区域,这里Android开发网给大家一个最简单可靠的方法,通过下面的Intent调用系统的Camera程序的裁剪功能实现图片修剪。   Intent intent = new Intent("com.android.camera.action.CROP");      intent.setClassName("com.android.camera", "com.android.camera.CropImage");     不过这里Android123提醒大家可能会出现无法找到Activity的android.content.ActivityNotFoundException异常,这是由于Android内部的gallery和camera都有处理,可以尝试另一种URI,com.android.gallery的com.android.camera.CropImage,在setClassName时,具体的代码为 final Intent intent = new Intent("com.android.camera.action.CROP"); intent.setClassName("com.android.camera", "com.android.camera.CropImage"); intent.setData(Uri.fromFile(mFile)); intent.putExtra("outputX", width); intent.putExtra("outputY", height); intent.putExtra("aspectX", width); intent.putExtra("aspectY", height); intent.putExtra("scale", true); intent.putExtra("noFaceDetection", true); intent.putExtra("output", Uri.parse("file:/" + mFile.getAbsolutePath())); startActivityForResult(intent, REQUEST_CROP_IMAGE);  

Android开发之设置断点单步调试 Android开发技术

  Android平台的开发过程中,可能我需要使用到Java常规的设置断点,单步跟踪每个变量,相对于Android ADT独有的Logcat、TraceView以及DDMS中的其他一些工具而言,设置断点检查每个变量的运行输出更适合一些大型项目的排错,或状态检测,作为Java开发中不可缺少的调试方法,在Android项目中可以通过Eclipse IDE的在某行前面单击鼠标右键,选择Toggle Breakpoint来下断点,而Disable Breakpoint或Remove Breakpoint来禁用或移除断点,具体操作如图所示:    在下断点的运行,Android123提示大家,必须通过Debug方式才行,标准的Run是针对最终的release版本而设计的,要想单步跟踪,这里Android开发网给出两种方法,第一种可以在Eclipse中单击Debug这个小虫子按钮,选择你要调试的应用。   而第二种,在你的Package Explorer中对着工程名右击鼠标,在弹出的菜单中选择Debug As,Android Application,这样既可,如下图所示:

Android Zip文件解压缩代码 Android开发技术

   在Android平台中如何实现Zip文件的解压缩功能呢? 因为Android内部已经集成了zlib库,对于英文和非密码的Zip文件解压缩还是比较简单的,下面Android123给大家一个解压缩zip的java代码,可以在Android上任何版本中使用,Unzip这个静态方法比较简单,参数一为源zip文件的完整路径,参数二为解压缩后存放的文件夹。 private static void Unzip(String zipFile, String targetDir) {   int BUFFER = 4096; //这里缓冲区我们使用4KB,   String strEntry; //保存每个zip的条目名称    try {    BufferedOutputStream dest = null; //缓冲输出流    FileInputStream fis = new FileInputStream(zipFile);    ZipInputStream zis = new ZipInputStream(new BufferedInputStream(fis));    ZipEntry entry; //每个zip条目的实例     while ((entry = zis.getNextEntry()) != null) {      try {       Log.i("Unzip: ","="+ entry);      […]

Android线程优先级设置方法 Android开发技术

  对于Android平台上的线程优先级设置来说可以处理很多并发线程的阻塞问题,比如很多无关紧要的线程会占用大量的CPU时间,虽然通过了MultiThread来解决慢速I/O但是合理分配优先级对于并发编程来说十分重要。Android在线程方面主要使用的是Java本身的Thread类,我们可以在Thread或Runnable接口中的run方法首句加入    Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND); //设置线程优先级为后台,这样当多个线程并发后很多无关紧要的线程分配的CPU时间将会减少,有利于主线程的处理,相关的Thread优先级Android123就Android平台专有的定义罗列有以下几种: int THREAD_PRIORITY_AUDIO //标准音乐播放使用的线程优先级 int THREAD_PRIORITY_BACKGROUND //标准后台程序 int THREAD_PRIORITY_DEFAULT // 默认应用的优先级 int THREAD_PRIORITY_DISPLAY //标准显示系统优先级,主要是改善UI的刷新 int THREAD_PRIORITY_FOREGROUND //标准前台线程优先级 int THREAD_PRIORITY_LESS_FAVORABLE //低于favorable int THREAD_PRIORITY_LOWEST //有效的线程最低的优先级 int THREAD_PRIORITY_MORE_FAVORABLE //高于favorable int THREAD_PRIORITY_URGENT_AUDIO //标准较重要音频播放优先级 int THREAD_PRIORITY_URGENT_DISPLAY //标准较重要显示优先级,对于输入事件同样适用。

ADT插件的10.0.1必须要Eclipse 3.5才能升级 Android开发技术

   目前Android开发工具ADT插件最新版本已经升到了10.0.1,但是如果你使用的Eclipse版本过低,可能无法升级,比如说使用的Eclipse版本过低无法运行在Windows Vista/7操作系统上,同时升级插件会提示 Android Development Tools (10.0.1.v201103111512-110841) requires plug-in "org.eclipse.core.runtime (3.5.0)", or later version.这样的错误。

android.resource://这个Uri你知道吗 Android开发技术

   如何访问平时APK文件Res目录下的内容呢? 如果直接访问Apk下的assets目录可以使用AssetManager类处理,而需要访问res/raw这样的文件夹怎么办呢? 这里Android123可以告诉大家APK在安装时已经解压缩,部分资源存放在/data/data/package_name/这里, 比如我们想访问res/raw/android123.cwj文件,可以使用android.resource://package_name/" + R.raw.android123 这个Uri,其中package_name是你工程的包名。   完整的处理代码为 Uri uri = Uri.parse("android.resource://com.android123.Sample/raw/android123.cwj"); 即可使用工程res/raw目录下的文件了。   

Android 3.0开发用的平板推荐 Android开发技术

  随着Android 3.0的平板不断曝光,很多公司开始介入Android平板电脑的开发。这里Android123就市面上主流的平板做一个简单的分析。   一线品牌: 摩托罗拉Xoom、三星Galaxy Tab 8.9和Galaxy Tab 10.1 、LG Optimus Pad(LG G-Slate)、HTC未知型号的产品。   二线品牌: 宏碁Iconia Tab、华硕Eee Pad Transformer等。   由于Motorola Xoom是CDMA EVDO网络的设备,同时有传闻将在6月份推出Xoom第二代产品,如果喜欢Xoom的网友可以考虑购买一个WiFi版本。而三星Galaxy Tab 8.9和10.1这里Android开发网推荐购买。在二线品牌中我们选择了老牌的笔记本和上网本制造商 Acer和Asus可以保证品质,同时华硕的Eee Pad Transformer支持外接笔记本键盘,可以变身一个“笔电”   而对于部分市场上的Android 2.x平板作为开发完全不推荐大家够买   三星Galaxy Tab P1000   同时目前是Android 2.x可能升级3.0的产品有   联想LePad、HTC Flyer。   最终购买的结论是Android平板考虑到固件升级及时,以及质量保证建议购买上述一线品牌产品,同时CPU尽量是NVIDIA Tegra2 A9双核,RAM在1GB,屏幕在1280×800,预装Android 3.0或3.0.1系统的平板设备。

Android Theme主题样式开发注意点 Android开发技术

  Android默认情况下提供了一些实用的主题样式,比如说Theme.Dialog可以让你的Activity变成一个窗口风格,而Theme.Light则让你的整个Activity具有白色的背景,而不是黑色那么沉闷。具体使用方法很简单在Androidmanifest.xml文件中对你的Activity节点上加入些代码,如图所示   部分代码为 android:theme="@android:style/Theme.Dialog"  和  android:theme="@android:style/Theme.Dialog"  ,这里Android123提醒大家,有关@后面是android:的定义均在Android内部的Framework层由系统自带。

Android开发之Java基础系列教程目录 Android开发技术

   对于越来越多的开发者加入Android开发行列,Android123决定推出Java基础系列教程,让大家打牢Java基础,主要我们以Java的虚拟机原理、Java集合类以及Java设计模式这三方面,让C/Objective-C/C++/Symbian C++以及Visual C++开发者轻松掌握Java语言特性和易错点。   一、Java虚拟机原理、内存分配   二、Java集合类和数据结构类   三、Java设计模式和面向对象   如果你过去从没有系统的学习过Java,Android开发网强烈建议关注我们今后的系列教程,最重要的是完全免费,好学易懂。

Android开发之Java虚拟机原理和内存分配 Android开发技术

   开发出高效稳定的Android应用我们不得不需要了解下Java虚拟机的原理和内存分配机制,Android使用的是Google经过优化的Dalvik Java VM。通常情况下Java编译过的代码是一些class文件,通过Java VM的类解析器分析、效验后执行。Java语言和C/C++有着本质区别的就是内存管理上,Java VM有一个垃圾收集清理器GC可以自动的回收内存。   Java虚拟机在执行代码的时候,首先解析Class,查找该类的方法、常量,这些对于常规情况下都编译成二进制的代码保存在jar文件中,而对于Java的反射,VM的类加载器需要动态的查找这些类名,虽然节省了编译时间,但是运行时的查找大大降低运行效率。   对于Android应用来说,手机的RAM相对于PC还小了很多,同时电脑上的主流应用使用的是Visual C++编写,所以对于手机上已经不占优势的硬件来讲使用Java这样的内存大户语言必须严格的了解内存释放有助于提高程序的性能。对于Android的内存释放情况,大家可以在DDMS中的Logcat中看到类似  08:10:18.895: DEBUG/dalvikvm(1281): GC freed 38611 objects / 2097960 bytes in 182ms 这样的语句。可以大概了解你的应用的对象回收情况,如图     Android应用通常情况的运行的RAM占用在20MB左右,对于程序美工我们尽量用代码绘制方式实现,而不是贴图。下面我们一起看下有关内存的使用跟踪: 首先我们在Eclipse的DDMS中找到Devices设备管理,选择需要查看的进程,单击上方的Update head那个绿色的按钮,然后切换到Heap页面,单击Cause GC按钮即可,如图   如果你在左边找不到你应用的进程,可以先在手机上运行你的软件之后即可,同时上面的Update Heap按钮不要忘记,上图中标记为红色的一个都不能少。

Android开发之Java集合类性能分析 Android开发技术

   对于Android开发者来说深入了解Java的集合类很有必要主要是从Collection和Map接口衍生出来的,目前主要提供了List、Set和Map这三大类的集合,今天Android123就他们的子类在标准情况和多线程下的性能做简单的分析。   Collection接口主要有两种子类分别为List和Set,区别主要是List保存的对象可以重复,而Set不可以重复,而Map一般为key-value这样的对应关系,比如我们常用的HashMap。   一、List 主要有ArrayList、LinkedList、Vector和Stack   有关这些子类的性能,Android开发网从插入、删除、移动等方面按照元素的执行效率做一一分析,通过分析Sun 的Java源码和实际元素操作得出下面结论:   ArrayList – 他的构造主要从AbstractList实现,主要是判断下初始元素的容量,ArrayList最大的特点就是提供了Add、Get操作,当然可以通过迭代器来遍历,对于元素的存在可以通过contains方法判断。   LinkedList – 作为一种双向链表结构,对于元素的插入、删除效率比较高,只需要调整节点指向即可,但是对于随机查找而言性能主要看这个链表长度和运气了。LinkedList也提供了ArrayList的get方法,但是要复杂的多,主要通过next或previous方法遍历得到。   Vector – 比较简单和ArrayList差不多,主要是内部实现了synchronized关键字,实现了线程安全访问但性能有些降低,同时对于元素的扩充在算法上和ArrayList稍有不同,通过构造的容量增量系数来决定。   Stack – 作为栈的操作,本次继承于Vector,提供了push,pop和peek方法,peek是不弹出根据数据大小获取最后一个元素对象。   二、Set 主要有HashSet 和 TreeSet   HashSet – 该类是从Set接口继承而来,相对于List而言就是说内部添加的元素不能重复,当然从名字的Hash来看就是通过哈希算法来实现防止冲突来获得防止重复的,整体上从HashMap实现,存放元素方法的也是类似key- value的对应的,通过迭代器遍历,不过HashSet不是线程安全的。   TreeSet – 这个相对于HashSet而言主要是提供了排序支持,TreeSet是从TreeMap类实现,也是非线程安全的。   可以看到Set的两个类都和Map有关,下面就一起看下有关映射(Map)相关的使用。   三、Map 主要有 HashMap 和 TreeMap   HashMap – 提供了比较强大的功能实现,比如说loadFactor可以控制元素增长时内存分配,HashMap也是非线程安全的。   TreeMap – 相对于HashMap它的排序可以通过传入包含comparator的属性来控制。 […]

Android开发之Java并发包集合类性能分析 Android开发技术

  上一次我们主要分析了Java集合类在单线程和多线程下的性能 Android开发之Java集合类性能分析,今天Android123就并发包concurrent库中的集合类性能做简单的评估分析。   并发包java.util.concurrent库是JDK 1.5中加入的,Android可以很好的支持,在线程的控制和同步管理方面比Thread有更好的表现,就其中的ConcurrentHashMap、CopyOnWriteArrayList、CopyOnWriteArraySet以及ArrayBlockingQueue和前面的HashMap、ListArray、Set以及Queue最简单的性能对比在多线程下。   一、ConcurrentHashMap是线程安全版的HashMap,它的构造同样有initialCapacity和loadFactor系数属性,但是还多了一个concurrentcyLevel,默认空构造方法下,这三个值为16、0.75和16。在ConcurrentHashMap内部并不是通过synchronized实现同步的,如果传入的对象value为null将会抛出空指针异常,而防止冲突仍然使用java Object类的hashcode方法实现的。   1) 单线程下,100个元素   ConcurrentHashMap 的添加效率远差于 HashMap,不过整体一般的应用几乎感觉不到。   2) 多线程下,100个元素   在10个线程下它们两个的性能差不多,不过这时候ConcurrentHashMap性能已经超越了HashMap无论元素多少,而随着线程数的增加效率提升明显,不过对于Android手机这样的应用,应用超过10个线程可能不是很多,不过对于Java VM而言,并发包在多线程下性能优势明显,强烈推荐。   二、CopyOnWriteArrayList是一个线程安全版的ArrayList,但在读取元素时CopyOnWriteArrayList是无锁的,通过这点可以看出它的内部并不是简单实用synchronized关键字实现加锁的,对于并发包来说内部使用了ReentrantLock实现线程安全访问的。对于元素增加来说CopyOnWriteArrayList的新内存分配是通过创建一个比原始大1的缓冲区,将老的数据复制到新的缓冲区,新增的元素加到数组尾部实现元素添加的。删除时也是通过ReentrantLock实现的,比ArrayList的删除操作复杂一些,首先创建一个比当前数组元素少1的缓冲区,然后复制现有的数组到缓冲区,但复制的过程中比现有的数组少1,和添加元素正好相反。Android开发网提示大家CopyOnWriteArrayList使用的添加和删除并不是类似ArrayList那样简单的System.arrayCopy,所以性能上肯定和ArrayList有些出入。   1) 单线程下,100个元素   CopyOnWriteArrayList在元素添加、删除时比ArrayList慢了近一倍,但查找性能没有多大变化,但是随着元素的增加,在单线程下CopyOnWriteArrayList效率大不如ArrayList,在元素数量达到100以后时。  2) 多线程下,100个元素   这里Android123主要测试手机上可能发生的10个线程,这样环境下CopyOnWriteArrayList的添加和删除效率也是远不如ArrayList,但查找效率已经快于ArrayList,当元素增加到10000个时,他们的添加和删除效率相当,但CopyOnWriteArrayList的查找效率远大于ArrayList。   三、CopyOnWriteArraySet 是基于CopyOnWriteArrayList的,由于Set机制不允许重复,所以CopyOnWriteArraySet的add方法在处理元素添加时,调用CopyOnWriteArrayList内部的addIfAbsent方法,如果存在了则返回,不过仍然效率不是很理想。在添加时由于做了额外的操作,所以再添加时比CopyOnWriteArrayList慢,其他和CopyOnWriteArrayList相同。   四、ArrayBlockingQueue 从名字来看就知道是一个队列,不过属于FIFO的线程安全队列,结构类似栈。

Android开发之Java设计模式 Android开发技术

  对于很多C/C++程序员初入Android开发来说,如果你没有认证学习过Java的设计模式,不理解托管语言的OOP设计方法,可能你的应用变得很结构化,对于项目管理、架构扩展来说将会存在很多问题,Android123参看了目前国内很多应用发现很多代码完全就不是一个Java程序员写出来的,虽然能用但是这样设计对于日后的维护等方面将会有很严重的问题.   目前注明的主要有23种设计模式,就常规的Java设计模式Android开发网给大家应该掌握的主要有以下:   一、创建型模式   1. 工厂方法模式   2. 单例模式   3. 生成器模式  二、行为型模式   1. 迭代器模式   2. 责任链模式   3. 观察者模式   4. 模板方法模式  三、结构型模式   1. 代理模式    2. 外观模式   由于设计模式讲解较费时,具体的Android123分多个章节具体描述,同时希望初入Java开发的网友先深刻了解下Java的抽象类、接口和继承相关的问题,以便理解今后相关的内容。

Android开发之Java设计模式入门篇 Android开发技术

   有关Android开发相关的Java基础系列之设计模式入门篇,Android123帮助一些初入Java语言开发的程序员补充些常识性问题,可以帮助C/C++程序员少走些弯路。   1. 抽象类 – 在一个类的前面有abstract关键字,一般描述些公共属性,没有具体对象概念,比如    abstract class Android123 {     }    2. 最终类 – 在一个类前面有final关键词,这样的类无法再被派生,没有子类,需要注意的是abstract和final不能同时出现在一个类中。final修饰的类为:    final class Android123 {     }    3. 接口 – 接口关键字interface,特点就是不能用new去实例化,同时C++和Java语言有本质不同,C++支持多重继承,可以继承多个父类,而Java只能集成一种类型的父类,定义方法如下:    public interface Android123() {    }    4. 抽象类和接口的区别    Java接口和Java抽象类表示的都比较抽象,接口只能是抽象和公开的,不能有构造器,也就是上面提到的不能被实例化,比如 public abstract class Android123() {        public void CWJ() {          //dosomething    这里可以写具体的实现方法        } […]

Android开发之Java设计模式基础篇 Android开发技术

   今天我们就Android开发中的一些设计模式做一些基础性的掌握,在上一次的 Android开发之Java设计模式入门篇 中我们提到了一些有关 Java基础内容,本次就Android项目的架构设计相关内容做分析:   1. 静态工厂方法    静态工厂方法可以算是工厂方法加单例模式的整合在Android平台上,由于Android的Context可以很好的传递实例,静态工厂方法可以提到传统的类构造器,对于一些逻辑的服务提供类可以考虑这样的设计,比如文件下载、图片裁剪等操作。   2. Java的类访问权限    对于程序的可靠性而言,成员变量尽量私有,通过暴漏公开的方法来访问这些私有成员,提供类似getXXX和setXXX这样的方法,不仅是Java,这点C#对于属性的操作概念在Dot Net上已经深入人心,好处就是可以阻止继承后的访问换乱问题。   3. 使用枚举替代常量    Java在JDK 1.5开始加入了enum枚举类,相对于常规的final int这样的定义一些常量更简单安全,毕竟常量是一堆类似整形的数值,打印起来没有过多的意义,枚举对于继承后访问的清晰度可以很好的杜绝隐患发生。   4. 使用列表优先于数组   Java的集合类很方便,使用List类的列表在开销上比Object [ ] 这样的数组大,但是对于泛型的支持而言更好用强大。也可以避免一些不必要的错误,比如   cwjObject [] obj= new int[1];   obj[1] = "android开发网测试"; //这样会在运行时抛出类似ArrayStoreException这样的异常。   而使用列表则为:   List<cwjObject> obj=new ArrayList<int>();  obj.add("android123测试"); // 由于传入列表的是字符串,和构造时类型的int不同,在编译时就提示错误,可以避免一些不必要的情况发生。   5. Java的foreach代替for   Java的foreach仍然使用for来写,这点和C#直接用foreach关键字有点不同,但是使用方法是一样的,除了更简洁外,其实foreach比传统的for更加优化,比如传统的for第二个限制位,一般访问属性或方法,比如说   […]

Android面试题,看看你基础如何? Android开发技术

  近期很多公司招聘Android程序员,就一些常见的Android面试基础题做下总结,看看你能做出多少道?   1. Intent的几种有关Activity启动的方式有哪些,你了解每个含义吗?     这里Android123提示大家,Intent的一些标记有FLAG_ACTIVITY_BROUGHT_TO_FRONT 、FLAG_ACTIVITY_CLEAR_TOP、FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET、FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS、FLAG_ACTIVITY_MULTIPLE_TASK和FLAG_ACTIVITY_NEW_TASK 等。每种含义大家看SDK文档和具体跑下这样你的记忆会更深刻些。   2. Activity和Task的启动模式有哪些? 每种含义是什么?    有关在AndroidManifest.xml中的android:launchMode定义,主要有standard、singleTop、singleTask和singleInstance,同时对于android:taskAffinity这些问题大家也要了解,Android开发网在以前的文章中讲过,不过很多开发者仍然不是很清楚,这些基础问题我们以后仍然会再次总结。   3. 通过Intent传递一些二进制数据的方法有哪些?    1). 使用Serializable接口实现序列化,这是Java常用的方法。   2). 实现Parcelable接口,这里Android的部分类比如Bitmap类就已经实现了,同时Parcelable在Android AIDL中交换数据也很常见的。   4. 能说下Android应用的入口点吗?   在Google的虚拟机中Application实例中已经实现了main方法,有关具体的Application介绍可以参考 Android程序的入口点是什么,不是Main()吗   5. Java基础问题,说说HashSet和HashTable的区别?   这个相信Java程序员都知道HashSet相对于HashMap就是不能存放重复的数据,对于HashTable来说,存放的数据不能出现key或value为null这样的情况。   6. Java基础问题,用Java的集合类写下广度优先搜索.   这个属于基础数据结构问题,通过队列处理一层一层,相对于深度优先的栈处理方式来说更实用一些。   7. Android都有哪些XML解析器,都熟练掌握吗?   这里XmlPull、SAX和DOM相信做过Web开发的都已经滚瓜烂熟了。   8. SQLite支持事务吗? 添加删除如何提高性能?   SQLite作为轻量级的数据库,比MySQL还小,但支持SQL语句查询,提高性能可以考虑通过原始经过优化的SQL查询语句方式处理。   9. Android Service和Binder、AIDL你都熟练吗?   作为Android重要的后台服务,这些每个Android开发者都应该掌握,这也算是和Java […]

设置Activity大小不再全屏原理 Android开发技术

  如何设置Activity的大小,让你的窗口看起来不再是全屏的。有些网友可能知道通过主题比如Theme.Dialog来实现,不过今天Android123告诉大家设置Activity不再全屏显示的原理。Android Theme也主要是通过定义Style来实现的,实现的原理大家可以直接看Android Framework中的定义,今天给一种更简单,但相对灵活的方法,比如不要Theme.Dialog中的边框,下面就一起来看下自定义Activity大小的实现方法。   1. 创建一个样式文件到你的工程,保存在在res/values/styles.xml,这里文件名不能随便修改,内容为,注意保存时使用UTF-8编码。 <?xml version="1.0" encoding="utf-8"?> <resources>         <style name="Theme.Android123" parent="android:style/Theme.Dialog">         <item name="android:windowBackground">@drawable/bg</item>  </style> </resources>  2. 上面我们定义的主题风格为Theme.Android123,父风格仍然从Theme.Dialog实现,但我们自定义了背景,位置在drawable/bg中,这里我们创建一个bg.xml文件放到res/drawable文件夹中,bg.xml的内容为 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:Android="http://schemas.android.com/apk/res/android">         <padding android:left="15dp" android:top="15dp" android:right="15dp" android:bottom="15dp" />         <stroke android:width="3dip" color="#000000" />         <corners android:radius="5dp" />  <solid android:color="#ffffff" />       </shape>  里面我们定义了一个shape对象,实现背景drawable形状,其中padding代表距离边框,这里我们设置了左、上、右、下四个位置的间距。stroke可以制造出一些3D立体效果,corners是四个角,radisu属性可以设置半径,值越大越圆滑,根据运行效果你可以微调,最后soild是填充颜色,这里我们用了ffffff表示纯白。   3. 最后在androidmanifest.xml中,在你的activity节点加一个 android:theme属性,值为@style/Theme.Android123 即可。

100% Secure Checkout

PayPal / MasterCard / Visa