从我大二的时候,大概六年前开始写技术博客,到现在已经有540+了,大概每年会写一百篇左右。

这篇文章由四部分组成:

  1. 博客的流量来源
  2. 不同文章类型的写作要点
  3. 如何写博客
  4. 如何收集写作的灵感

流量来源

首先,我将技术博客分为下面几种类型:

  1. 技术细节型。频率: 每天几次,15~30分钟可以写完。
  2. 干货型。频率: 每月几次,1~2小时可以搞定。
  3. 实践总结型。频率: 每周1~2次,2+小时以上的时间。
  4. 杂谈与鸡汤型。频率: 每季度几次,少则几小时,动则上月。

接着,奉献上一章我的博客的用户来源图,分析完大概如下:

程序员怎样才能写出一篇好的博客或者技术文章

前三者可以带来很多的流量,后者可以带来大量的评论啦。

前三者可以让你在Google上有一个好位置~~,后者可以让你在用户心中有个好位置。

通过社交媒体可以让第四种类型的文章,有大量的评论和转载。

干货型和实践总结型的文章通过聚合网站来传播的效果最好。

在Google中有个好位置意味着——第一的位置会有50%以上的用户访问,这一点很重要哦~~。再放出神图:

程序员怎样才能写出一篇好的博客或者技术文章

首先作为一个专业的程序员,我们会用某个关键词去搜索,如“InsecurePlatformWarning: A true SSLContext object is not available.” :如果这时你的标题就是《Python 解决 InsecurePlatformWarning: A true SSLContext object is not available》,那么你就找到了你的用户了。

这是我之前用了5分钟不到的文章写的一篇文章,它在半年的时间里带来了6,599个访问量。它在Google的搜索结果中排第一:

程序员怎样才能写出一篇好的博客或者技术文章

虽然很不情愿地被排名第二的文章抄袭了——但是我还是第一,这该死的伪原创

而用户不会只访问你的一个页面的:

程序员怎样才能写出一篇好的博客或者技术文章

一般来说,前三种类型的用户获取到他们想要的信息就走了,不会留下评论。至于第四种类型,没有大V的光环,偶尔文章被转企业V转转也能多个几十个粉丝。所以我没有第四种类型的文章太多的经验哈。

不同文章类型的写作要点

接着, 让我们再看看上面的几种类型:

技术细节型

在我的博客里很大一部分文章都是这一类,主要是原自早先对SEO的研究。对于先这种没有光环的人来说,这是我博客的主要流量来源。这也是让我坚持下去的动力,每天有大概三百个用户来自搜索引擎。

这种类型主要来自于日常工作,但是好像写这一类的人不多。每天我们都会遇到不同的技术问题——如某个第三库更新,某个浏览器bug,如何使用某个技术。因此,我们就会用这样的关键字和词去搜索,反正大部分教程序员使用Google的文章就是这么写的。

既然你想要这样的搜索,那我就直接把搜索结果放前面好了,如:

如果你也擅长用Google的话,我想你就懂了奥秘。标题的前半部分是关键字,后半部分指名意图。

接着,就是贴解决方案和代码咯~~。在这时候需要注意几点:

  • 试着去表达一些技术上的细节,也会省去一些技术上的细节。
  • 以自己学习的角度去想怎样写可以一步步下来。
  • 加入一点点自己的情感,博客和文档是不一样的。
  • 编写更简洁的内容,因为技术博客与此文不同的是,技术博客是面向寻找信息的人。

干货型

一般来说,这种类型的文章更类似于GitHub上的那些Awesome类型的Repo。说说几个标题,大概可能就会有点感觉了:

  • 每个程序员必知之SEO
  • 作为一个前端工程师你了解你的小伙伴么 - chrome
  • App 上架相关事宜、解决技巧
  • 20 个非常有用的 Java 程序片段
  • Java 开发者不容错过的 12 种高效工具

通常来说,这一类型的文章都是作者一段时间对于某一个东西的总结,非常有收藏价值。故而,这种类型的文章会在GitHub或者聚合网站上比较受欢迎。所以,它也更容易传播。

但是写起来的难度比较大,这依赖于你的使用经验。所以,也不是一天、两天就能搞定的。

实践总结型

看看标题,可能大家都知道这一类文章要怎么写了:

这通常是一系列的文章,而这一系列的文章一般是连续写出来的。也因此,我们可以发现很大的书都是由这一类的文章衍生出来的。

这一类的文章更像是干货型和技术细节型的结合,面向特定领域的技术,也属于干货。对于这种类型的文章来说,更依赖于代码——读者需要依据代码一步步往下深入。

所以在这一类型的文章中代码往往比较重要。

杂谈与鸡汤型

来几一些标题:

  1. 为什么整个互联网行业都缺前端工程师?
  2. 程序员职业生涯中应该思考的10个问题
  3. 怎么减少编程中的 bug?
  4. 为什么大公司看起来都那么糟糕?

BlaBla,简单地来说这一类文章基本上是没有技术的,都是一些以理论为主的概括。同时,写这一类文章的时候,也意料着可能在某一领域有一定的水平——写出来才会有人看。而由于偏向理论,这一类文章看的人往往会更多,因为它并不倾向于使用领域特定的技术。

所以这种类型是受众很广的文章,并且也像鸡汤一样容易传播。同时,这种类型的文章,更依赖于社区媒体及聚合网站的传播。因为大部分情况下,用户不会这么去搜索文章的。

如何写博客

对于博客的内容来说,下面几点很重要哦:

  1. 标题、小标题。一个好的标题会带来更多的流量的。
  2. 内容。以代码为例的文章,最好有代码。代码可以放在GitHub上,一举两得。
  3. 图 —— 一图胜千言,如本文第一节中的框架图。,一个框架图可以省去你的很多话语。
  4. 排版,又可称为UI设计。基本的语法高亮要有,容易阅读也要有。最简单就是白底黑字。

下面有我之前在《招聘笔杆子——成为笔杆子》一文中说到的一些要点:

标题——必须重要,类名

对于写博文的人来说,重点的是如何清楚的去表达他们的想法,标题算是其中之一,这个也就是为什么标题党成为了标题党,而《设计模式》成为了经典。刚开始学编程的时候,更吸引你注意力的可能是《72小时学会Javascript》,而不是《Javascript 权威指南》,兴许让你买前者的原因是因为你能看懂前者,而后者不仅看不懂,而且价格更贵。只是一年以后,《72 小时学会Javascript》被你扔到了垃圾箱,而《Javascript 权威指南》却放在了原来放那本书的位置上。你定义的类难道仅仅应该是class="kwhl">class class="kwhl">class1么?

小标题——地图,method

小标题有点类似于sitemap.xml,只是他就是站点地图,一点就到了相应的地方。他应该直接了解的说这是开始菜单,标题栏,菜单栏,而不应该是简简单单的第一章,如果你真是那样写的话,你写的函数想必是

def fun1 end

如果你写的是getdata那么,我想你的函数名应该和你的文章一样,告诉人们,你要的是getdata。所以不要吝啬你鼠标的一下,它可以承受上百万字的点击。如果因为那样坏了,你可以告诉我,我可以帮你免费换一个欧姆龙的微动,前提是你的鼠标可以换。如果是HTML那么应该是h2 h3,markdown也就是用得比较多的github上的README.md的##或者是###

内容——函数体

这里可不是让你用一个让人难以理解的Magic Number,你写得越复杂,别人看的时间就越久,通俗易懂,就是一个很好的开始。你可以把一个个复杂的方法分解出来,或者提炼函数,或者重命名。当你相信你看不懂你的文章,正如你看不懂你写的hello,world我想你是时候去重构你的函数了。

复杂的部分,就用段落来解决,一个函数如同一个段落只应该表达一个思想,太长了就如同这篇文章一样没有多少人会认真去看。你需要给你写的一个精美的代码加一个注释,所以你也需要给你复杂的地方加上个(PS)。

在编写内容的时候需要注意下面的几点:

  • 代码。必要的时候贴出代码,会是一种快速有效的方法,工作的时候是为了完成某个任务。
  • 列表。列表可以简明扼要的说明你想要表达的内容。
  • 图表。一张流程图可以说明程序的步骤,一个表格可以作好一个对比。
  • 标题。标题的好处,可以让用户快速定位,让用户找到想要的内容。
  • 链接。一个好的URL对于使用英文的人来说,可以利于SEO,对于中文,使用的人可以判断出文章的专业与否。

引言——README

我想都会去看的,无论是在破解软件的时候,还是github上面的项目。简单的说说,这篇文章是干什么的,这个程序是干什么的。大家都会,不是么?

没有什么好写的?说说你是怎么开始编程吧,然后写在你的博客上,你会发现你会爱不释手的。

如何收集写作的灵感

下面是我最近在做的,感觉很不错,推荐一下咯:

一般是先有个论点,然后再论据,最后才写。

第一步,在平时把想到的一些能写的文章用TODO的形式列出来,如我用的是“奇妙清单”。下面就是我最近想写的一些文章的一些标题:

程序员怎样才能写出一篇好的博客或者技术文章

但是有一些还没灵感,只是想到了个大概——所以有的是只是一个标题。这些文章大部分都属于杂谈型的,想到什么就说点什么,但是会有个核心。

第二步,在平时偶然会有点灵感的时候,就用Google Keep创建一个新的记事,稍微写几句,提醒一下自己咯。在这一步,相当于就是找一些论据来支撑自己的观点,等到这些观点差不多的时候就可以写了。

程序员怎样才能写出一篇好的博客或者技术文章

第三步,便是写。写的时候其实没有啥感觉,就如同我之前在《编程同写作,写代码只是在码字》一文中所说的。不得不再说说这个标题,一看就知道要写什么了~~。

真正的想法都在脑子里,而不在纸上,或者IDE里。

所以,其实写代码的时间很短,真实长的是想出怎么写,文章也是如此。

其他

转载保留来源微信公众号:Phodal

如果你也想着怎么写好文章,不烦多看看我的文章吧,哈哈~~

class="kwhl">class="p1">转自:http://blog.csdn.net/mapboo/article/details/49536297

class="kwhl">class="p1">CSDN博主Mapboo原创,感谢博主!

class="kwhl">class="p1">==============================

class="kwhl">class="p1">class="kwhl">class="s1">前言:

class="kwhl">class="p1">class="kwhl">class="s1">纵观国内的广告平台,比如多盟,万普,百度,腾讯,或者别的一些广告平台,真是应接不暇,但是具体接入那就自己判断了,经过一番折腾,最终还是选择了谷歌平台,理应是稳定,可靠,安全,收入颇高,但是登录网络有点问题,应该大家都懂吧,这里就不再赘述了,各自想办法吧;

class="kwhl">class="p1">class="kwhl">class="s1">准备工作:

class="kwhl">class="p1">class="kwhl">class="s1">1,首先你是Android开发者,或者至少会点Java编程基础;

class="kwhl">class="p1">class="kwhl">class="s1">2,熟悉使用Android Studio(以下简称:AS),即官方Android应用开发工具;

class="kwhl">class="p1">class="kwhl">class="s1">3,注册了http://www.google.cn/admob/ 应用,并且有个banner_ad_unit_id吧;

class="kwhl">class="p1">class="kwhl">class="s1">4,待加入横幅广告条的app;

class="kwhl">class="p1">class="kwhl">class="s1">5,可参考官方接入指南:https://developers.google.com/mobile-ads-sdk/docs/admob/android/quick-start

class="kwhl">class="p1">class="kwhl">class="s1">开发过程:

class="kwhl">class="p1">class="kwhl">class="s1">1,创建或打开AS 工程,本示例是新建工程;

class="kwhl">class="p1">class="kwhl">class="s1">2,打开Android SDK Manager安装Google Repository;

class="kwhl">class="p1">class="kwhl">class="s1">3,关联我们的广告SDK,这里有两种方式:

class="kwhl">class="p1">class="kwhl">class="s1">A  点击Project Structure 直接选取,如下图:

class="kwhl">class="p1">class="kwhl">class="s1">com.google.android.gms:play-services:7.8.0;

class="kwhl">class="p1">class="kwhl">class="s1">

class="kwhl">class="p1">class="kwhl">class="s1">B 打开build-gradle 加入一行代码,如下图:

class="kwhl">class="p1">class="kwhl">class="s1">compile 'com.google.android.gms:play-services:6.+'

class="kwhl">class="p2">

class="kwhl">class="p1">class="kwhl">class="s1">4,程序会开始自动编译,然后打开AndroidManifest.xml 文件,添加如下代码:

class="kwhl">class="dp-highlighter bg_java">

class="kwhl">class="bar">

class="kwhl">class="tools">

[java] class="kwhl">class="ViewSource" title="view plain" href="http://blog.csdn.net/mapboo/article/details/49536297#">view plainclass="kwhl">class="tracking-ad" data-mod="popu_168">class="kwhl">class="tracking-ad" data-mod="popu_168"> class="kwhl">class="CopyToClipboard" title="copy" href="http://blog.csdn.net/mapboo/article/details/49536297#" target="_blank">copy

class="kwhl">class="tracking-ad" data-mod="popu_169"> class="kwhl">class="PrintSource" title="print" href="http://blog.csdn.net/mapboo/article/details/49536297#" target="_blank">printclass="kwhl">class="About" title="?" href="http://blog.csdn.net/mapboo/article/details/49536297#">?

    class="kwhl">class="dp-j" start="1">

  1. class="kwhl">class="alt"><?xml version=class="kwhl">class="string">"1.0" encoding=class="kwhl">class="string">"utf-8"?>
  2. class="kwhl">class=""><manifest xmlns:android=class="kwhl">class="string">"http://schemas.android.com/apk/res/android"
  3. class="kwhl">class="alt">    class="kwhl">class="keyword">package=class="kwhl">class="string">"com.mapboo.adviewdemo" >
  4. class="kwhl">class="">
  5. class="kwhl">class="alt">   <span style=class="kwhl">class="string">"color:#ff0000;"> <uses-permission android:name=class="kwhl">class="string">"android.permission.INTERNET" />
  6. class="kwhl">class="">    <uses-permission android:name=class="kwhl">class="string">"android.permission.ACCESS_NETWORK_STATE"/></span>
  7. class="kwhl">class="alt">
  8. class="kwhl">class="">    <application
  9. class="kwhl">class="alt">        android:allowBackup=class="kwhl">class="string">"true"
  10. class="kwhl">class="">        android:icon=class="kwhl">class="string">"@mipmap/ic_launcher"
  11. class="kwhl">class="alt">        android:label=class="kwhl">class="string">"@string/app_name"
  12. class="kwhl">class="">        android:theme=class="kwhl">class="string">"@style/AppTheme" >
  13. class="kwhl">class="alt">
  14. class="kwhl">class="">       <span style=class="kwhl">class="string">"color:#ff0000;"> <meta-data android:name=class="kwhl">class="string">"com.google.android.gms.version"
  15. class="kwhl">class="alt">            android:value=class="kwhl">class="string">"@integer/google_play_services_version" /></span>
  16. class="kwhl">class="">
  17. class="kwhl">class="alt">        <activity
  18. class="kwhl">class="">            android:name=class="kwhl">class="string">".MainActivity"
  19. class="kwhl">class="alt">            android:label=class="kwhl">class="string">"@string/app_name" >
  20. class="kwhl">class="">            <intent-filter>
  21. class="kwhl">class="alt">                <action android:name=class="kwhl">class="string">"android.intent.action.MAIN" />
  22. class="kwhl">class="">
  23. class="kwhl">class="alt">                <category android:name=class="kwhl">class="string">"android.intent.category.LAUNCHER" />
  24. class="kwhl">class="">            </intent-filter>
  25. class="kwhl">class="alt">        </activity>
  26. class="kwhl">class="">
  27. class="kwhl">class="alt">       <span style=class="kwhl">class="string">"color:#ff0000;"> <activity
  28. class="kwhl">class="">            android:name=class="kwhl">class="string">"com.google.android.gms.ads.AdActivity"
  29. class="kwhl">class="alt">            android:configChanges=class="kwhl">class="string">"keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
  30. class="kwhl">class="">            android:theme=class="kwhl">class="string">"@android:style/Theme.Translucent" /></span>
  31. class="kwhl">class="alt">
  32. class="kwhl">class="">    </application>
  33. class="kwhl">class="alt">
  34. class="kwhl">class=""></manifest>

 

class="kwhl">class="p1">class="kwhl">class="s1">5,打开activity_main.xml 文件,输入如下代码:

class="kwhl">class="dp-highlighter bg_java">

class="kwhl">class="bar">

class="kwhl">class="tools">

[java] class="kwhl">class="ViewSource" title="view plain" href="http://blog.csdn.net/mapboo/article/details/49536297#">view plainclass="kwhl">class="tracking-ad" data-mod="popu_168">class="kwhl">class="tracking-ad" data-mod="popu_168"> class="kwhl">class="CopyToClipboard" title="copy" href="http://blog.csdn.net/mapboo/article/details/49536297#" target="_blank">copy

class="kwhl">class="tracking-ad" data-mod="popu_169"> class="kwhl">class="PrintSource" title="print" href="http://blog.csdn.net/mapboo/article/details/49536297#" target="_blank">printclass="kwhl">class="About" title="?" href="http://blog.csdn.net/mapboo/article/details/49536297#">?

    class="kwhl">class="dp-j" start="1">

  1. class="kwhl">class="alt"><RelativeLayout xmlns:android=class="kwhl">class="string">"http://schemas.android.com/apk/res/android"
  2. class="kwhl">class="">    xmlns:tools=class="kwhl">class="string">"http://schemas.android.com/tools"
  3. class="kwhl">class="alt">    xmlns:ads=class="kwhl">class="string">"http://schemas.android.com/apk/res-auto"
  4. class="kwhl">class="">    android:layout_width=class="kwhl">class="string">"match_parent"
  5. class="kwhl">class="alt">    android:layout_height=class="kwhl">class="string">"match_parent"
  6. class="kwhl">class="">    android:paddingBottom=class="kwhl">class="string">"@dimen/activity_vertical_margin"
  7. class="kwhl">class="alt">    android:paddingLeft=class="kwhl">class="string">"@dimen/activity_horizontal_margin"
  8. class="kwhl">class="">    android:paddingRight=class="kwhl">class="string">"@dimen/activity_horizontal_margin"
  9. class="kwhl">class="alt">    android:paddingTop=class="kwhl">class="string">"@dimen/activity_vertical_margin"
  10. class="kwhl">class="">    tools:context=class="kwhl">class="string">".MainActivity"
  11. class="kwhl">class="alt">    android:gravity=class="kwhl">class="string">"center_vertical">
  12. class="kwhl">class="">
  13. class="kwhl">class="alt">    <TextView
  14. class="kwhl">class="">        android:layout_width=class="kwhl">class="string">"match_parent"
  15. class="kwhl">class="alt">        android:layout_height=class="kwhl">class="string">"wrap_content"
  16. class="kwhl">class="">        android:text=class="kwhl">class="string">"@string/demoName"
  17. class="kwhl">class="alt">        android:gravity=class="kwhl">class="string">"center"
  18. class="kwhl">class="">        android:textSize=class="kwhl">class="string">"30dp"
  19. class="kwhl">class="alt">        android:layout_marginTop=class="kwhl">class="string">"150dp"
  20. class="kwhl">class="">        />
  21. class="kwhl">class="alt">
  22. class="kwhl">class="">    <com.google.android.gms.ads.AdView
  23. class="kwhl">class="alt">        android:id=class="kwhl">class="string">"@+id/adView_bottom"
  24. class="kwhl">class="">        android:layout_width=class="kwhl">class="string">"match_parent"
  25. class="kwhl">class="alt">        android:layout_height=class="kwhl">class="string">"wrap_content"
  26. class="kwhl">class="">        android:layout_alignParentBottom=class="kwhl">class="string">"true"
  27. class="kwhl">class="alt">        android:layout_centerHorizontal=class="kwhl">class="string">"true"
  28. class="kwhl">class="">        android:layout_gravity=class="kwhl">class="string">"bottom"
  29. class="kwhl">class="alt">        ads:adSize=class="kwhl">class="string">"BANNER"
  30. class="kwhl">class="">        ads:adUnitId=class="kwhl">class="string">"@string/banner_ad_unit_id" />
  31. class="kwhl">class="alt">
  32. class="kwhl">class=""></RelativeLayout>

 

class="kwhl">class="dp-highlighter bg_java">

class="kwhl">class="bar">

class="kwhl">class="tools">

[java] class="kwhl">class="ViewSource" title="view plain" href="http://blog.csdn.net/mapboo/article/details/49536297#">view plainclass="kwhl">class="tracking-ad" data-mod="popu_168">class="kwhl">class="tracking-ad" data-mod="popu_168"> class="kwhl">class="CopyToClipboard" title="copy" href="http://blog.csdn.net/mapboo/article/details/49536297#" target="_blank">copy

class="kwhl">class="tracking-ad" data-mod="popu_169"> class="kwhl">class="PrintSource" title="print" href="http://blog.csdn.net/mapboo/article/details/49536297#" target="_blank">printclass="kwhl">class="About" title="?" href="http://blog.csdn.net/mapboo/article/details/49536297#">?

    class="kwhl">class="dp-j" start="1">

  1. class="kwhl">class="alt"><resources>
  2. class="kwhl">class="">    <string name=class="kwhl">class="string">"app_name">AdViewDemo</string>
  3. class="kwhl">class="alt">    <string name=class="kwhl">class="string">"demoName">谷歌Admob广告条示例</string>
  4. class="kwhl">class="">    <string name=class="kwhl">class="string">"banner_ad_unit_id">ca-app-pub-class="kwhl">class="number">8514769117499822/class="kwhl">class="number">6386262194</string>
  5. class="kwhl">class="alt"></resources>

 

class="kwhl">class="p1">class="kwhl">class="s1">6,打开MainActivity文件,输入如下代码:

class="kwhl">class="dp-highlighter bg_java">

class="kwhl">class="bar">

class="kwhl">class="tools">

[java] class="kwhl">class="ViewSource" title="view plain" href="http://blog.csdn.net/mapboo/article/details/49536297#">view plainclass="kwhl">class="tracking-ad" data-mod="popu_168">class="kwhl">class="tracking-ad" data-mod="popu_168"> class="kwhl">class="CopyToClipboard" title="copy" href="http://blog.csdn.net/mapboo/article/details/49536297#" target="_blank">copy

class="kwhl">class="tracking-ad" data-mod="popu_169"> class="kwhl">class="PrintSource" title="print" href="http://blog.csdn.net/mapboo/article/details/49536297#" target="_blank">printclass="kwhl">class="About" title="?" href="http://blog.csdn.net/mapboo/article/details/49536297#">?

    class="kwhl">class="dp-j" start="1">

  1. class="kwhl">class="alt">class="kwhl">class="keyword">package com.mapboo.adviewdemo;
  2. class="kwhl">class="">
  3. class="kwhl">class="alt">class="kwhl">class="keyword">import android.support.v7.app.ActionBarActivity;
  4. class="kwhl">class="">class="kwhl">class="keyword">import android.os.Bundle;
  5. class="kwhl">class="alt">class="kwhl">class="keyword">import android.util.Log;
  6. class="kwhl">class="">class="kwhl">class="keyword">import android.view.Menu;
  7. class="kwhl">class="alt">class="kwhl">class="keyword">import android.view.MenuItem;
  8. class="kwhl">class="">class="kwhl">class="keyword">import com.google.android.gms.ads.AdListener;
  9. class="kwhl">class="alt">class="kwhl">class="keyword">import com.google.android.gms.ads.AdRequest;
  10. class="kwhl">class="">class="kwhl">class="keyword">import com.google.android.gms.ads.AdView;
  11. class="kwhl">class="alt">
  12. class="kwhl">class="">class="kwhl">class="keyword">public class="kwhl">class="keyword">class="kwhl">class MainActivity class="kwhl">class="keyword">extends ActionBarActivity {
  13. class="kwhl">class="alt">
  14. class="kwhl">class="">    class="kwhl">class="annotation">@Override
  15. class="kwhl">class="alt">    class="kwhl">class="keyword">protected class="kwhl">class="keyword">void onCreate(Bundle savedInstanceState) {
  16. class="kwhl">class="">        class="kwhl">class="keyword">super.onCreate(savedInstanceState);
  17. class="kwhl">class="alt">        setContentView(R.layout.activity_main);
  18. class="kwhl">class="">
  19. class="kwhl">class="alt">        class="kwhl">class="comment">/**
  20. class="kwhl">class="">class="kwhl">class="comment">         * 创建广告条对象
  21. class="kwhl">class="alt">class="kwhl">class="comment">         */
  22. class="kwhl">class="">        AdView mAdView = (AdView) findViewById(R.id.adView_bottom);
  23. class="kwhl">class="alt">        AdRequest adRequest = class="kwhl">class="keyword">new AdRequest.Builder().build();
  24. class="kwhl">class="">
  25. class="kwhl">class="alt">        class="kwhl">class="comment">/**
  26. class="kwhl">class="">class="kwhl">class="comment">         * 创建一个监听,比如判断用户是不是已经点击了广告条,以此来给用户增加积分等操作;
  27. class="kwhl">class="alt">class="kwhl">class="comment">         */
  28. class="kwhl">class="">        AdListener listener = class="kwhl">class="keyword">new AdListener() {
  29. class="kwhl">class="alt">            class="kwhl">class="annotation">@Override
  30. class="kwhl">class="">            class="kwhl">class="keyword">public class="kwhl">class="keyword">void onAdClosed() {
  31. class="kwhl">class="alt">                class="kwhl">class="keyword">super.onAdClosed();
  32. class="kwhl">class="">
  33. class="kwhl">class="alt">                Log.i(class="kwhl">class="string">"TAG"class="kwhl">class="string">"onAdClosed");
  34. class="kwhl">class="">            }
  35. class="kwhl">class="alt">
  36. class="kwhl">class="">            class="kwhl">class="annotation">@Override
  37. class="kwhl">class="alt">            class="kwhl">class="keyword">public class="kwhl">class="keyword">void onAdFailedToLoad(class="kwhl">class="keyword">int errorCode) {
  38. class="kwhl">class="">                class="kwhl">class="keyword">super.onAdFailedToLoad(errorCode);
  39. class="kwhl">class="alt">
  40. class="kwhl">class="">                Log.i(class="kwhl">class="string">"TAG"class="kwhl">class="string">"onAdFailedToLoad");
  41. class="kwhl">class="alt">            }
  42. class="kwhl">class="">
  43. class="kwhl">class="alt">            class="kwhl">class="annotation">@Override
  44. class="kwhl">class="">            class="kwhl">class="keyword">public class="kwhl">class="keyword">void onAdLeftApplication() {
  45. class="kwhl">class="alt">                class="kwhl">class="keyword">super.onAdLeftApplication();
  46. class="kwhl">class="">
  47. class="kwhl">class="alt">                Log.i(class="kwhl">class="string">"TAG"class="kwhl">class="string">"onAdLeftApplication");
  48. class="kwhl">class="">            }
  49. class="kwhl">class="alt">
  50. class="kwhl">class="">            class="kwhl">class="annotation">@Override
  51. class="kwhl">class="alt">            class="kwhl">class="keyword">public class="kwhl">class="keyword">void onAdLoaded() {
  52. class="kwhl">class="">                class="kwhl">class="keyword">super.onAdLoaded();
  53. class="kwhl">class="alt">
  54. class="kwhl">class="">                Log.i(class="kwhl">class="string">"TAG"class="kwhl">class="string">"onAdLoaded");
  55. class="kwhl">class="alt">            }
  56. class="kwhl">class="">
  57. class="kwhl">class="alt">            class="kwhl">class="annotation">@Override
  58. class="kwhl">class="">            class="kwhl">class="keyword">public class="kwhl">class="keyword">void onAdOpened() {
  59. class="kwhl">class="alt">                class="kwhl">class="keyword">super.onAdOpened();
  60. class="kwhl">class="">
  61. class="kwhl">class="alt">                Log.i(class="kwhl">class="string">"TAG"class="kwhl">class="string">"onAdOpened");
  62. class="kwhl">class="">            }
  63. class="kwhl">class="alt">        };
  64. class="kwhl">class="">
  65. class="kwhl">class="alt">        class="kwhl">class="comment">/**
  66. class="kwhl">class="">class="kwhl">class="comment">         * 设置监听
  67. class="kwhl">class="alt">class="kwhl">class="comment">         */
  68. class="kwhl">class="">        mAdView.setAdListener(listener);
  69. class="kwhl">class="alt">
  70. class="kwhl">class="">        class="kwhl">class="comment">/**
  71. class="kwhl">class="alt">class="kwhl">class="comment">         * 开始载入广告条
  72. class="kwhl">class="">class="kwhl">class="comment">         */
  73. class="kwhl">class="alt">        mAdView.loadAd(adRequest);
  74. class="kwhl">class="">    }
  75. class="kwhl">class="alt">
  76. class="kwhl">class="">
  77. class="kwhl">class="alt">    class="kwhl">class="comment">/**
  78. class="kwhl">class="">class="kwhl">class="comment">     *
  79. class="kwhl">class="alt">class="kwhl">class="comment">     官方示例:https://developers.google.com/mobile-ads-sdk/docs/admob/android/quick-start
  80. class="kwhl">class="">class="kwhl">class="comment">     
  81. class="kwhl">class="alt">class="kwhl">class="comment">     分享:安卓发布平台 http://blog.csdn.net/mapboo/article/details/49531043
  82. class="kwhl">class="">
  83. class="kwhl">class="alt">class="kwhl">class="comment">     应用汇:http://www.appchina.com/
  84. class="kwhl">class="">class="kwhl">class="comment">     安智市场:http://www.anzhi.com/
  85. class="kwhl">class="alt">class="kwhl">class="comment">     华为市场:http://appstore.huawei.com/
  86. class="kwhl">class="">class="kwhl">class="comment">     百度市场:http://app.baidu.com/pass/center
  87. class="kwhl">class="alt">class="kwhl">class="comment">     蒲公英:http://www.pgyer.com
  88. class="kwhl">class="">class="kwhl">class="comment">     N多网 :http://www.nduoa.com/developer
  89. class="kwhl">class="alt">class="kwhl">class="comment">     豌豆荚:http://developer.wandoujia.com/
  90. class="kwhl">class="">class="kwhl">class="comment">     360:http://dev.360.cn
  91. class="kwhl">class="alt">class="kwhl">class="comment">     QQ:http://op.open.qq.com
  92. class="kwhl">class="">class="kwhl">class="comment">     FIR:http://fir.im
  93. class="kwhl">class="alt">
  94. class="kwhl">class="">class="kwhl">class="comment">     Android中国开发者 交流QQ群:361871827 欢迎加入一起讨论技术...
  95. class="kwhl">class="alt">
  96. class="kwhl">class="">class="kwhl">class="comment">     */
  97. class="kwhl">class="alt">}

 

class="kwhl">class="p1">class="kwhl">class="s1">编译运行:

class="kwhl">class="p1">class="kwhl">class="s1">运行代码,就会出现Admob广告条,只要替换自己的banner_ad_unit_id就能开始赚钱了;

class="kwhl">class="p2">效果图:

class="kwhl">class="p2">

class="kwhl">class="p1">class="kwhl">class="s1">本实例源代码下载地址:http://pan.baidu.com/s/1pJ3UEcr

class="kwhl">class="p1">class="kwhl">class="s1">Android中国开发者 QQ群:361871827 欢迎一起讨论技术..

原文:http://ask.android-studio.org/?/article/21

 

本篇教程中使用到的Android Studio版本为1.0, Eclipse ADT版本23.0.4。请尝试更新到该版本。

Android Studio默认使用 Gradle 构建项目, Eclipse 默认使用Ant构建项目。建议Android Studio导入项目时,使用Gradle 构建项目。

导入 Eclipse 项目

本例中,使用到的 Eclipse 项目结构如图:

class="kwhl">class="aw-comment-upload-img-list active">class="kwhl">class="img-polaroid" title="" data-original="/app/get_remote_pic.php?file=http://ask.android-studio.org/uploads/article/20141216/45f83b51565330ab635948c79a597239.png" alt="" />

e-demo 为主项目, appcompat_v7 为 library 项目。

导入 Generate Gradle build files 项目

Google官方建议是通过本方法进行Android Studio导入 Eclipse 项目。

这种方式有一个好处就是兼容 Eclipse 的文件目录结构,通过版本控制中的文件过滤,可以在一个项目组中,同时使用 Eclipse 和Android Studio。

讲解1

File --> Export

class="kwhl">class="aw-comment-upload-img-list active">class="kwhl">class="img-polaroid" title="" data-original="/app/get_remote_pic.php?file=http://ask.android-studio.org/uploads/article/20141216/5f71fdc0d8a2aa0130f35878f56b42b7.png" alt="" />

讲解2

选择导出类型。选择 Android --> Generate Gradle build files 。

class="kwhl">class="aw-comment-upload-img-list active">class="kwhl">class="img-polaroid" title="" data-original="/app/get_remote_pic.php?file=http://ask.android-studio.org/uploads/article/20141216/4a5bd6b43cfda8441245bbdaf3d0bb87.png" alt="" />

点击 Next 。

讲解3

很长一段英语(完全看不懂是什么意思)。

class="kwhl">class="aw-comment-upload-img-list active">class="kwhl">class="img-polaroid" title="" data-original="/app/get_remote_pic.php?file=http://ask.android-studio.org/uploads/article/20141216/6c948e5304c3b4ec8e28e94d952111ce.png" alt="" />

点击 Next 。

讲解4

选择要导出的项目。

class="kwhl">class="aw-comment-upload-img-list active">class="kwhl">class="img-polaroid" title="" data-original="/app/get_remote_pic.php?file=http://ask.android-studio.org/uploads/article/20141216/430eb4e5f8d0fc5d33af14eaea7e0d2a.png" alt="" />

因为我的 e-demo 项目依赖了 appcompat_v7 项目,所以我将 e-demo 和 appcompat_v7 都选择了导出。

点击 Next 。

讲解5

最终确认要导出的项目。

class="kwhl">class="aw-comment-upload-img-list active">class="kwhl">class="img-polaroid" title="" data-original="/app/get_remote_pic.php?file=http://ask.android-studio.org/uploads/article/20141216/6d60a606a98d7d7420b4114777e72468.png" alt="" />

Force overriding of existing files 表示覆盖导出文件。使用 Generate Gradle build files 的方式导出项目,会在项目目录中生成一些文件。这里的覆盖文件指的就是覆盖这些可能已经生成过的文件。如果你之前有使用这种方式导出过项目,建议勾选。

点击 Finish 。

讲解6

这一步没有什么好说的,直接点击 Finish 。

class="kwhl">class="aw-comment-upload-img-list active">class="kwhl">class="img-polaroid" title="" data-original="/app/get_remote_pic.php?file=http://ask.android-studio.org/uploads/article/20141216/8df260e8772e1612e7ddec6a6a9a2e07.png" alt="" />

讲解7

很多同学经常被家中无线路由器信号不好所困扰,影响上网心情,尤其是100平米以上的户型。正如上一篇文章中提到的路由器天线的数量不能够代表信号强弱,有3根的、4根的、甚至6根,文章中有详细解释,但是技术性语言比较多,比较难懂。在这里我简单提供几套解决方案以及注意事项,供大家参考。

路由器的摆放位置,有几个点需要注意:

1.路由器应该摆放在高处

正所谓高处不胜寒,高高在上有助于信号覆盖。我记得有篇文章提到,路由器信号是向下发射的,虽然并不是很准确,但毕竟如果将路由器放在地上,家里各种家具对信号的遮挡也是会影响到的。

提醒一下,有同学将路由器放在弱电箱里的,基本上这种方式大大影响信号覆盖,为啥不放在冰箱里呢,对散热有好处。(玩笑)

2.路由器天线该朝向哪里?

苹果的前 Wi-Fi 工程师,同时也是Mac上的Wi-Fi工具程式iStumbler的创造者,他文章表示,将所有天线都朝上的摆法是错的。因为路由器的天线必须与接收端装置的天线搭在一起来看,当装置上的天线,与路由器 Wi-Fi 的天线方向及平面一致,所接收到的讯号就最强。 所以,最好的方向,是每条天线都指向不同的平面,因为每台Wi-Fi接收端的装置,Wi-Fi 天线的设计都有不同的方向。

如下图所示:

class="kwhl">class="aligncenter size-full wp-image-1120" data-original="http://www.151051.cn/wp-content/uploads/2016/02/TB1lxHdFVXXXXaKXpXXXXXXXXXX_620x10000q90.png" alt="TB1lxHdFVXXXXaKXpXXXXXXXXXX_620x10000q90" width="600" height="328" />

class="kwhl">class="aligncenter size-full wp-image-1119" data-original="http://www.151051.cn/wp-content/uploads/2016/02/2250441601-4.png" alt="2250441601-4" width="650" height="521" />

 

3.路由器应当摆放在房间的哪个位置?

当然最佳最理想的摆放位置当然是整个房间的正中央了,如下图所示:

class="kwhl">class="aligncenter size-full wp-image-1121" data-original="http://www.151051.cn/wp-content/uploads/2016/02/QQ截图20160229121805.jpg" alt="QQ截图20160229121805" width="566" height="527" />

像这种70~80平米的房间,放在房间中央地区,可以保证信号覆盖到房间的各个角落(包括隔壁老王),所以尽量保证只隔一堵墙,毕竟wifi信号穿墙能力是比较弱的。

在装修的时候,最好在墙里埋一根网线,路由器放在衣柜或者立柜顶端或者干脆在墙上钉一个小架子,实在不行就走一条明线。

如果100平米以上房间,可能即便放在房间中央,个别区域还是会存在信号死角,如下图:

class="kwhl">class="aligncenter size-full wp-image-1122" data-original="http://www.151051.cn/wp-content/uploads/2016/02/QQ截图20160229121749.jpg" alt="QQ截图20160229121749" width="562" height="460" />

大房子有大房子的缺憾,更别提复式的了(心中窃喜自己没有大房子),但是可以利用中继路由或wifi信号放大器解决(屌丝满眼都是泪),好了,关于wifi信号放大器的摆放也是有讲究的。

如下图:

class="kwhl">class="aligncenter size-full wp-image-1123" data-original="http://www.151051.cn/wp-content/uploads/2016/02/QQ截图20160229122157.jpg" alt="QQ截图20160229122157" width="597" height="435" />

简而言之就是,“我要看到你,你也要看到我”,俩设备要对视,直线可见为最佳。上图中wifi信号放大器的位置还可以再向西移个几米。一般室内信号直线有效传输距离应在20~80米左右,所以只要对视,信号一般都是满的。

安装wifi信号放大器最基本的准则就是假设放大器的位置,该位置的wifi信号一定不能太弱。如果太弱,它都接收不到路由器发射出来的信号,谈何放大。

说到别墅,最好在墙里走一根网线连接上下楼,安装两个无线路由器,如果不然,可以根据上图将无线设备部署在楼上,信号穿透一层楼板传递到楼下,不过仍可能存在死角问题。那么就按照上面的准则部署多个wifi放大器吧。

4.能否增加路由器的发射功率?

国标中提到的家用路由器的发射功率不得超过10mw,这个标准远比国外一些国家的标准低很多,可见天朝还是比较重视电磁干扰的标准的。像日本只要不超过100mw都是合格的。

很多企业用的wifi设备,尤其是室外设备,发射功率一般在500mw左右,这个在X宝上一搜就能搜到。如果你不介意大功率无线设备电磁干扰,可以在家里装个大功率发射器(呵呵呵呵,中兴w815n,再配个大dbi天线)那酸爽,隔壁老王也开心。

顺便提到一些大功率无线网桥,x宝可以各种搜索到,用于远距离信号传输,这个我深有体会,一般家庭需求不大,就不在这里详细说明了。

5.换高dbi的增益天线会对路由器穿墙有帮助吗?

家用路由器天线一般是2dbi~3dbi,好一点的在5dbi左右,如果自行更换为9dbi甚至15dbi的增益天线,可以负责任的说,然并卵。

上面提到路由器的发射功率是有国家标准的,即便换了更高更好的增益的天线,也仅仅可能会令信号更加稳定一些,但是该弱还是弱,除非自行安装放大电路增加发射功率,但这个谁会?我是不会吗,也没必要这样做。

6.现在市面上有很多品牌的无线路由器,有智能的,有普通的,大家该如何选择呢?

小米路由器mini、联想newifi mini、斐讯某款、极路由以及其他采用MT7620A/N的解决方案是我比较青睐的,一般内存在64M以上,带USB插槽,2.4G/5.8G双频,价格也都不贵,79~139之间吧。而且都有智能手机APP管理,以及各种支撑的路由app,远程下载等等。

智能家庭解决方案我推荐小米一套,具体的可以到官网了解。小米路由器(或小米路由器mini)+小蚁摄像机+智能家庭套装+空气净化器+台灯等等,智能化控制和管理很方便。

单独路由器推荐联想newifi,刷小云os2.0固件后非常好用,性能稳定,配置高,速度快,关键是价格便宜,活动价69~79元一台。

7.题外话,路由器问题解决了,那么我该选择什么宽带呢?(仅限北京地区)

首选联通宽带,能甩其他几条街,当然价格也是。具体原因不想解释,太费口水了,大家只要记得,“要想少操心,选联通就对了”。这不是广告,是真心话。

========================

哦了,就说这么多,要是喜欢的话,转发注明来自:伟大的郭大侠的博客 http://www.151051.cn/router/家用路由器选购摆放使用以及wifi放大器使用.html

网上搜不到flashfirebug的破解版,就自己研究了一下代码,其实并不复杂。

使用的时候需要与flashplayer_debug一起使用。

class="kwhl">class="aligncenter size-full wp-image-1100" data-original="http://www.151051.cn/wp-content/uploads/2015/12/QQ截图20151229175019.jpg" alt="QQ截图20151229175019" width="313" height="261" /> class="kwhl">class="aligncenter size-large wp-image-1101" data-original="http://www.151051.cn/wp-content/uploads/2015/12/QQ截图20151229175036-1024x287.jpg" alt="QQ截图20151229175036" width="1024" height="287" />

含flashdebug包:
http://www.151051.cn/soft/flashfirebug/FlashFireBug-4.8.4.1-cracked&flashplayer_debug.7z

单独flashfirebug包:
http://www.151051.cn/soft/flashfirebug/flashfirebug-4.8.4-fx.xpi

class="kwhl">class="gpost-above mobile-no">

class="kwhl">class="tips-box font16 mar-b20">营销代有手段出,各领风骚数百天。要说现在哪些营销方式最能传播,屡屡刷爆朋友圈的H5页面肯定就是首当其冲的,提到H5页面,就立马想到“围住神经猫”,上线微信朋友圈3天的时间便创造了用户500万,访问量超1亿的神话。

H5如此势头,不得不让营销人对H5页面的未来充满了期待,越来越多的人开始在营销中运用H5页面。其实在移动端各个领域,H5页面的叫法很多,也会称为翻翻看、手机微杂志、广告页、场景应用、海报\画报(动态海报、指尖海报、掌中海报、动画海报、微画报、微海报)等等,经常能见到的就是滑动翻页。

然而大企业大公司的土豪都在利用自己强大资源和技术比拼H5场景页面,一些小企业或普通独立营销者就只能眼巴巴看着吗?NO,实力差点技术差点效果差点,但是我们也能做。下面木木就给大家推荐一些H5场景页面免费制作神器来,排名不分先后!

搜狐快海报

class="kwhl">class="highslide-image" href="http://image.woshipm.com/wp-files/2015/05/35dfdb55fc262ac304990e36c6ed552e.jpeg">class="kwhl">class=" aligncenter" data-original="/app/get_remote_pic.php?file=http://image.woshipm.com/wp-files/2015/05/35dfdb55fc262ac304990e36c6ed552e.jpeg" alt="" data-original="http://image.woshipm.com/wp-files/2015/05/35dfdb55fc262ac304990e36c6ed552e.jpeg" />

快海报是搜狐快站平台上全新推出的免费H5页面制作工具,操作也极为简便易学,完全没有技术要求。采用拖拽式操作,属性式设置的模式。一拖一拽,简单配置,所见即所得,一分钟即可学会,三分钟便能完成。还有海量模板即将上线,替换内容即可生成。快海报还支持同一组件的多重动画设置,让画面更丰富更炫酷。和其他一样,搜狐快站海报也是适用于包括活动推广、企业宣传、产品展示、会议组织、预约报名、节日祝福等不同的场景。

体验地址:http://www.kuaizhan.com

初页

class="kwhl">class="highslide-image" href="http://image.woshipm.com/wp-files/2015/05/9f47125d0098a9822fe29c987fdfdd88.jpeg">class="kwhl">class=" aligncenter" data-original="/app/get_remote_pic.php?file=http://image.woshipm.com/wp-files/2015/05/9f47125d0098a9822fe29c987fdfdd88.jpeg" alt="" data-original="http://image.woshipm.com/wp-files/2015/05/9f47125d0098a9822fe29c987fdfdd88.jpeg" />

初页作为手机端制作动态海报的APP,门槛还是比较低的,容易上手,可以直接在手机上编辑,制作极为便利,图文混排的模板也很丰富。可免费下载安卓版和苹果版初页App,或通过电脑在线创建、编辑,轻松创作优雅、炫酷,利于微信传播的H5海报。

体验地址:http://chuye.cloud7.com.cn/

MaKa

class="kwhl">class="highslide-image" href="http://image.woshipm.com/wp-files/2015/05/86c1e4678cd20a7164b9769a4babd10e.jpeg">class="kwhl">class=" aligncenter" data-original="/app/get_remote_pic.php?file=http://image.woshipm.com/wp-files/2015/05/86c1e4678cd20a7164b9769a4babd10e.jpeg" alt="" data-original="http://image.woshipm.com/wp-files/2015/05/86c1e4678cd20a7164b9769a4babd10e.jpeg" />

MAKA这个平台制作起来非常简单,静态模板和动态模板都有,模板样式丰富,浏览体验不错。有多种动态效果以及交互效果可供选择,除收费版外提供免费版,不过免费版不提供自定义动效、支付、导航、预约等服务,也不能添加外链。

体验地址:http://www.maka.im/home/index.html

点点客海报

class="kwhl">class="highslide-image" href="http://image.woshipm.com/wp-files/2015/05/ee5c56d8cb3b7e3fef41521a4ecd4fc8.jpeg">class="kwhl">class=" aligncenter" data-original="/app/get_remote_pic.php?file=http://image.woshipm.com/wp-files/2015/05/ee5c56d8cb3b7e3fef41521a4ecd4fc8.jpeg" alt="" data-original="http://image.woshipm.com/wp-files/2015/05/ee5c56d8cb3b7e3fef41521a4ecd4fc8.jpeg" />

点点客是微信第三方开发服务商,大家都知道,不仅推出了微信营销服务,也有排版和免费的点点客海报,无需注册,扫码登录即可编辑动态海报,多种效果、翻页动画、背景音乐、可统计浏览量,也提供定制。

体验地址:http://www.dodoca.com/index

口袋通微杂志

class="kwhl">class="highslide-image" href="http://image.woshipm.com/wp-files/2015/05/5adfce71d8cce1d219ae517129dd7415.jpeg">class="kwhl">class=" aligncenter" data-original="/app/get_remote_pic.php?file=http://image.woshipm.com/wp-files/2015/05/5adfce71d8cce1d219ae517129dd7415.jpeg" alt="" data-original="http://image.woshipm.com/wp-files/2015/05/5adfce71d8cce1d219ae517129dd7415.jpeg" />

口袋通是一个免费的微商平台,其场景海报也是为了其电商功能服务,不过免费得版提供的交互较为简单,没有多样的模板。

体验地址:http://youzan.com/

秀米秀制作

class="kwhl">class="highslide-image" href="http://image.woshipm.com/wp-files/2015/05/4f0fd02e34a48c42720ed46a7fc7c32c.jpeg">class="kwhl">class=" aligncenter" data-original="/app/get_remote_pic.php?file=http://image.woshipm.com/wp-files/2015/05/4f0fd02e34a48c42720ed46a7fc7c32c.jpeg" alt="" data-original="http://image.woshipm.com/wp-files/2015/05/4f0fd02e34a48c42720ed46a7fc7c32c.jpeg" />

秀米在公众平台的图文排版上可是名声远扬。和秀米的图文神器一样,秀制作目前也是免费的,提供多种模板,傻瓜式操作,可以外链,可与秀米图文排版双剑合璧。

体验地址:http://xiumi.us/

易传单

class="kwhl">class="highslide-image" href="http://image.woshipm.com/wp-files/2015/05/6cd68354a4231ce6de6155b0859683b7.jpeg">class="kwhl">class=" aligncenter" data-original="/app/get_remote_pic.php?file=http://image.woshipm.com/wp-files/2015/05/6cd68354a4231ce6de6155b0859683b7.jpeg" alt="" data-original="http://image.woshipm.com/wp-files/2015/05/6cd68354a4231ce6de6155b0859683b7.jpeg" />

编辑器界面比较友好,设计灵活方便,数据统计与表单上也是亮点所在。除了模板较少之外其他的都是相当好。

体验地址:http://www.echuandan.com/

epub360意派

class="kwhl">class="highslide-image" href="http://image.woshipm.com/wp-files/2015/05/c0f016af8e4a00ccdfa6680c70c3327c.jpeg">class="kwhl">class=" aligncenter" data-original="/app/get_remote_pic.php?file=http://image.woshipm.com/wp-files/2015/05/c0f016af8e4a00ccdfa6680c70c3327c.jpeg" alt="" data-original="http://image.woshipm.com/wp-files/2015/05/c0f016af8e4a00ccdfa6680c70c3327c.jpeg" />

这不是奇虎360的,意派的交互功能极为强大,可以说更适合专业的设计师打造的交互设计,动画效果出色,虽然简单傻瓜式的模板不多,但自由度相对较高。不过如果只是制作简单的单页,上手也并不是很复杂。只是免费版作品数量限制为10个,导出有logo。

体验地址:http://www.epub360.com/

易企秀

class="kwhl">class="highslide-image" href="http://image.woshipm.com/wp-files/2015/05/6434b100eb29e331dc978a513ea72dae.jpeg">class="kwhl">class=" aligncenter" data-original="/app/get_remote_pic.php?file=http://image.woshipm.com/wp-files/2015/05/6434b100eb29e331dc978a513ea72dae.jpeg" alt="" data-original="http://image.woshipm.com/wp-files/2015/05/6434b100eb29e331dc978a513ea72dae.jpeg" />

易企秀也是免费,有多种动态模板,能实现文本和图片带有滑动、隐现、放大缩小等动态效果。同时有ios移动客户端,在手机上也可创建场景应用,以及数据统计功能。大体上和maka差不多,但是表单和统计是免费也可用。

体验地址:http://eqxiu.com/#/home

Liveapp场景应用/云来

class="kwhl">class="highslide-image" href="http://image.woshipm.com/wp-files/2015/05/975f6ab6ca283bb8a67718c12a9637fd.jpeg">class="kwhl">class=" aligncenter" data-original="/app/get_remote_pic.php?file=http://image.woshipm.com/wp-files/2015/05/975f6ab6ca283bb8a67718c12a9637fd.jpeg" alt="" data-original="http://image.woshipm.com/wp-files/2015/05/975f6ab6ca283bb8a67718c12a9637fd.jpeg" />

云来Liveapp是面向企业方的移动场景APP云服务平台,许多企业都在使用,需购买场景应用。不过,现在云来场景应用正式免费开放,所有“认证企业”都可以申请获取。免费体验长达31天,体验结束后,也会永久保存并持续展示你的场景应用。

体验地址:http://www.yunlai.cn/

Vxplo

class="kwhl">class="highslide-image" href="http://image.woshipm.com/wp-files/2015/05/6e2b0c16094bf567b3b852578662969f.jpeg">class="kwhl">class=" aligncenter" data-original="/app/get_remote_pic.php?file=http://image.woshipm.com/wp-files/2015/05/6e2b0c16094bf567b3b852578662969f.jpeg" alt="" data-original="http://image.woshipm.com/wp-files/2015/05/6e2b0c16094bf567b3b852578662969f.jpeg" />

Vxplo也是专注在线交互设计,功能强大,同epub360一样适合专业设计师,可以零代码制作轻应用。使用上相对较为复杂,不过其甚至也可以用来制作响应式网站,有时间可以试试。

体验地址:http://www.vxplo.cn/

最酷网

class="kwhl">class="highslide-image" href="http://image.woshipm.com/wp-files/2015/05/8cdd450f3afc286233287f67061c4011.jpeg">class="kwhl">class=" aligncenter" data-original="/app/get_remote_pic.php?file=http://image.woshipm.com/wp-files/2015/05/8cdd450f3afc286233287f67061c4011.jpeg" alt="" data-original="http://image.woshipm.com/wp-files/2015/05/8cdd450f3afc286233287f67061c4011.jpeg" />

最酷网也是一个免费H5场景应用制作和发布平台。不用懂设计、不用会编程,1分钟上手制作,平台针对不同的应用场景和内容展现形式,提供海量的模板、丰富的控件、灵活的动画特效。用户可以简单快速的通过图片替换、内容编辑,就可以创建属于自己的、炫酷的云场景应用。

体验地址:http://www.zuiku.com/

FormFollowsFunction

class="kwhl">class="highslide-image" href="http://image.woshipm.com/wp-files/2015/05/ef53bfb5f3b972043c29c6724e4e4054.jpeg">class="kwhl">class=" aligncenter" data-original="/app/get_remote_pic.php?file=http://image.woshipm.com/wp-files/2015/05/ef53bfb5f3b972043c29c6724e4e4054.jpeg" alt="" data-original="http://image.woshipm.com/wp-files/2015/05/ef53bfb5f3b972043c29c6724e4e4054.jpeg" />

严格来说,FormFollowsFunction不属于H5制作平台,而是一个预览平台。H5页面到底能实现什么样的动画效果?这一个网站几乎能看到所有H5能够实现的动画效果,引爆你的灵感,并且让你心中有数。

体验地址:http://fff.cmiscm.com/#!/main

Weebly

class="kwhl">class="highslide-image" href="http://image.woshipm.com/wp-files/2015/05/6bdc0b160b2f21af45c7666367f9dc0e.jpeg">class="kwhl">class=" aligncenter" data-original="/app/get_remote_pic.php?file=http://image.woshipm.com/wp-files/2015/05/6bdc0b160b2f21af45c7666367f9dc0e.jpeg" alt="" data-original="http://image.woshipm.com/wp-files/2015/05/6bdc0b160b2f21af45c7666367f9dc0e.jpeg" />

Weebly和Wix也是一款HTML5拖放式智能创建器,支持中文,拥有多种优秀网页模板和交互效果,并且有IOS和Android客户端可以管理自己的网页、随时随地跟踪。

体验地址:http://www.weebly.com/about/index.php?lang=zh

Wix

class="kwhl">class="highslide-image" href="http://image.woshipm.com/wp-files/2015/05/840246300a138e0a25ad034daadbf0d0.jpeg">class="kwhl">class=" aligncenter" data-original="/app/get_remote_pic.php?file=http://image.woshipm.com/wp-files/2015/05/840246300a138e0a25ad034daadbf0d0.jpeg" alt="" data-original="http://image.woshipm.com/wp-files/2015/05/840246300a138e0a25ad034daadbf0d0.jpeg" />

Wix基于H5技术,向用户提供多种网页模板,操作简单无需代码,智能拖拽即可实现网页建设。Wix每个类目下有上百的HTML5模板可供使用,响应式设计,在手机端也有很好的展示。

体验地址:http://www.wix.com/

Ceilfire

class="kwhl">class="highslide-image" href="http://image.woshipm.com/wp-files/2015/05/ae8e19e0eb777ed8eaa199c778f15d68.jpeg">class="kwhl">class=" aligncenter" data-original="/app/get_remote_pic.php?file=http://image.woshipm.com/wp-files/2015/05/ae8e19e0eb777ed8eaa199c778f15d68.jpeg" alt="" data-original="http://image.woshipm.com/wp-files/2015/05/ae8e19e0eb777ed8eaa199c778f15d68.jpeg" />

Ceilfire是一个创建H5游戏并分享的平台,点击进入你就会看到很多的H5页面游戏。用户可以直接在浏览器中创建游戏、参与游戏、分享游戏,对于想做简单的H5游戏的朋友可以用这种方式试试手。就算不做也可以看看已有的H5游戏来找找感觉。

体验地址:http://ceilfire.com/browse/most-played

做一些H5特效的动态页面,以前需要专业技术团队和设计师才能制作。现在通过这些简单的平台,你几分钟就能免费创作自己的H5页面。甚至有的你需要做的只是仅仅换上几张图,敲几个字,选自己喜欢的音乐\视频…一个不错的H5页面就出来了。

那么,工具地址都给大家了,接下来就是轮到你动手的时候了,找一个自己喜欢的平台,开始吧!

来源:木木博客

原文链接:http://mt.sohu.com/20150326/n410379051.shtml

class="kwhl">class="fr-tag">本文来自微信公众号“给产品经理讲技术”(pm_teacher),欢迎关注。

class="kwhl">class="fr-tag">做为一名产品经理,你是否遇到过这样的窘境,“帮我把字体调成16号呗,颜色变成#FFFF00FF,老大说这里最好改一下”,作为一名app的开发只能无奈但心里窃喜的告诉你,“只能等下个版本了,必须要重新发布才能改”,如果你问为什么不能改了就生效啊,那说明你对技术的理解要么真的很差,要么你就是知道这项React-Native新技术所爆发出来的力量。

class="kwhl">class="fr-tag">React Native是Facebook推出的一个用JavaScript语言就能同时编写ios,android,以及后台的一项技术,今年9月发布了android版本,又在程序员里面掀起了一波小高潮,不断有喜欢尝鲜的程序员投入到这个领域。

class="kwhl">class="fr-tag">用大白话说,就是从此一名程序员自己就可以创业了,他只用这一门技术,就可以同时写出androidapp,ios app,以及后台应用程序,并且,请注意这里,它可以做到实时热更新(就像网页一样,改了一个字体,随时可上线),app也能做到随时都能更新了,第一段讲的那个需求可以分分钟秒杀解决,不用新发版本,只需在服务器改动一下代码即可,是不是很牛逼,是不是很牛逼,是不是很牛逼,真的很牛逼。

class="kwhl">class="fr-tag">到这里,你只需要理解一句话,就是Facebook提供了一套解决方案,它利用JavaScript作为开发语言,可以同时来编写前端,移动终端,后台应用程序。

class="kwhl">class="fr-tag">我们再来讲讲,为什么React Native受到了如此大的关注,以及它的优越性到底在什么地方。

class="kwhl">class="fr-tag">目前,一个成熟的互联网产品基本囊括了:移动终端和网页两种主要形态。在移动终端app和网页的开发历程中,涉及了很多技术角色:前端开发(俗名叫做网站的),移动终端开发(android和ios开发,现在满大街都是),后台开发(他们的程序大多没有界面,主要是为网页和app提供数据和保障服务的稳定性),每个角色各司其职,分别需要不同的技能,比如前端开发需要精通html,css,javascript这些基本的web语言知识。Android开发用Java(这个词读“扎瓦”,别读成了“加瓦”,读成这样很Low B的)语言编写,ios开发用Objective-c(把他想象成当年过计算机二级的那个C语言就可以了)编写。后台开发,有的公司用Java,有的公司用C++,用啥的都有,能满足性能需要就可以了。

class="kwhl">class="fr-tag">已经看崩溃了吧,对于一个非计算机专业的人,根本不会理解他妈的为什么要存在这么多语言,为什么这里要用C语言,那里要用C++,有的地方要用Python,而又有很大的一个人群对你高呼:“PHP才是世界最好的语言”。其实他们每种语言都有不同的使用场景,有的语言效率高,有的语言语法更简洁漂亮,有的是专为后台而生,有的是特定场景下的唯一选择。如果你还听不懂,我们就用大白话做个比喻,为什么避孕套有的是螺纹的,有的是颗粒的,有的是延时的,有的是超薄的,还有一个品牌号称一只手就可以打开的,它们也都是依据个人身体状态,以及不同场景分别发挥各自的强项。你随便类比,任何一个领域,都有很多不同的工具来满足不同的场景,是需求决定了当前状态。

class="kwhl">class="fr-tag">现在好了,React整套解决方案完成了江湖统一,FaceBook也号称这们技术是“Learn Once,Write AnyWhere”,学习成本只有一次,却完成了所有开发角色的统一。

class="kwhl">class="fr-tag">这意味着:

    class="kwhl">class="fr-tag">

  1. class="kwhl">class="fr-tag">app将来都是可像网页一样热更新,随时发布。
  2. class="kwhl">class="fr-tag">对于一名开发人员,将再也没有前端,终端,后台的区分,他所关注的就是做一整套应用程序,人力将得到最大幅度的整合与释放。
  3. class="kwhl">class="fr-tag">代码复用将会是主旋律,因为是一种语言,大家重复造轮子的成本会越来越节省。

class="kwhl">class="fr-tag">目前,React Native也还是有一些缺点的,比如他的sdk组件包size还比较大,crash还比较多,在ios上支持的内容已经相当不错,android还属于初级阶段,但是目前最新的版本也才是0.16,相信再过一年, 一定会牛逼闪闪。

class="kwhl">class="fr-tag">Attention !! 36 氪正在招募全职创业公司作者,如果你对报道互联网创业感兴趣,充满好奇心,善于发现新事物,又能沉心做行业研究,恰好又对教育、社交、农业、大公司其中一个方向了如指掌,那么你就是我们想要的人 !!快把简历投至:zhaopin@36kr.com

转:http://36kr.com/coop/toutiao/5041233.html

class="kwhl">class="article-detail">

class="kwhl">class="article-content">

jQuery EasyUI最新试用版免费下载>

jQuery EasyUI致力于帮助web开发者更轻松的打造出功能丰富并且美观的UI界面。jQuery EasyUI提供了基于当下流行的jQuery core和HTML5的控件,助您打造适合当今网络的应用程序。

基本面板

本示例主要介绍一些基本的面板,面板是其他组件或元件的容器。【另附源代码供大家参考】

面板工具

本示例主要介绍面板工具,点击右上角的按钮来执行面板操作。【另附源代码供大家参考】

自定义面板工具

本示例主要介绍如何自定义面板工具,点击右上角的按钮来执行面板操作。另附源代码供大家参考】

面板页脚

本示例主要介绍面板的页脚,面板页脚显示在面板的底部,同时它还可以包括其他任何组件。【另附源代码供大家参考】

加载面板内容

本示例主要介绍如何加载面板内容,点击面板右上角的刷新按钮来加载内容。【另附源代码供大家参考】

嵌套式面板

本示例主要介绍嵌套式面板,该面板可被放置在容器中,同时还可以包含其他组件。【另附源代码供大家参考】

流体面板

这个示例主要展示了如何将一个面板的宽度设置为其父容器的百分比。【另附源代码供大家参考】

购买最新正版授权!"咨询在线客服"

2015岁末扫尾之战!全球厂商携手放利!

本站文章除注明转载外,均为本站原创或翻译

class="kwhl">class="clearfix" data-groupid="6230837997342146817">

 

转:http://toutiao.com/i6230846543017017857/

class="kwhl">class="medium-insert-images">
class="kwhl">class="" data-original="http://dn-noman.qbox.me/FhhJHVUnJJE7ulrPGAkAavjGnAEF" alt="" />

class="kwhl">class="">作为互联网从业者尤其是开发者,如果不懂得善用「工具」,那将很容易导致事倍功半,从而一步慢步步慢、再到遭遇淘汰。「开发这样一款 APP 需要多长时间?」这个问题,使用 APICloud 平台可以大大缩短开发周期,节约开发成本。

APICloud 产品为移动开发者从「云」和「端」两个方向提供 API,简化移动应用开发技术,将 1 个月的工作量降低至 1 个周,大幅提升移动应用开发和管理的效率。APICloud 由「云 API」和「端 API」两部分组成,可以帮助开发者快速实现移动应用的开发、测试、发布、管理和运营的全生命周期管理。

现在,通过 APICloud 开发出的 APP 已超过 30 万款,目前已经与中科创达、中兴通讯、泸州老窖、神州数码等知名公司展开合作。

使用 APICloud 开发产品如同「搭积木」,将你需要的模块按需搭建就能完成一个原生 APP 的生成。除了基础的 APP 模块如列表、选择器、网络通信、多媒体等外,APICloud 的模块 store 不断在引入第三方服务商丰富模块功能如人脸识别身份验证工具、IM 即时通讯、客服系统、广告系统、支付通道等。第三方服务提供商包括「洋葱」、「Ping++」、「有米」、「智齿客服」、「广点通」、「融云」等专业团队开发的产品。

目前,模块 store 里的第三方服务绝大部分都可以免费使用。

class="kwhl">class="medium-insert-images">

APICloud 联合创始人邹达先生表示:「APICloud 在技术这条线上就是希望能使得 APP 运行的更流畅更安全,从商业上期望搭建一个 APP 开发的生态圈。」

与很多互联网产品一样,APICloud 的商业模式也是经过发展、尝试、摸索出来的。据邹达介绍,除了收取基础流量、存储费用外,APICloud 可提供的增值服务包括专家团队辅导、开发者培训和私有云服务。另外,平台在一年的发展中已经积累了优质开发者 20 万 +,对于 APICloud 来说搭建众包平台也是水到渠成的事情。

再往前两三年的时间里,一大波「APP 创业」造成了大家都在做 APP 的风潮,之后微信的崛起让很多创业公司开始从一个「微信公众号」开始运营,那么 APP 开发的风口是不是在变小?

邹达认为:「所有围绕 APP 开发的团队都会关心这个问题。我们也会做调查,2013 年的数据报告显示,世界范围内人们使用移动端产品所花费的时间中有 80% 花费在独立的 APP 中,到 2014 年的数据就达到了 85%。今年 6 月份的数据显示人们花在移动端 APP 上的时间还是不断增长的。APP 开发确实有成本,但是根据这些用户习惯,移动互联网创业者如果不做个 APP,而只有微信公号、一个 web 页面是无法真的验证产品和商业模式的,因为这些方式是不能给你准确数据的。」另一方面,邹达表示,APICloud 最大的特点就是「快」,可以把你的想法快速的落实、快速的出一个产品去运营,这个特性降低了 APP 开发成本也有助于创业者去做快速的验证。

本文由 TECH2IPO / 创见(tech2ipo.com)编辑 @Judy 撰写,转载或使用本文素材进行二次创作请参阅 版权信息 。

转:http://tech2ipo.com/10026470.html?site=toutiao

class="kwhl">class="article-detail">

class="kwhl">class="article-content">

Node.js是一个面向服务器的框架,立足于Chrome强大的V8 JS引擎。尽管它由C++编写而成,但是它及其应用是运行在JS上的。本文为开发者总结了4个Node.js要点。

1. 非阻塞(Non-blocking)或异步I/O

由于Node.js一个服务器端框架,所以它主要工作之一是处理浏览器请求。在传统的I/O系统中,每个请求的发出都是在上一请求到达之后才发出的。所以这被称为阻塞(blocking)I/O。服务器会阻挡其它的请求以处理当前请求,从而导致浏览器等待。

Node.js不以这种方式来进行I/O处理。如果一个请求需要长时间处理,Node.js会把该请求发送给一个事件循环(event loop),然后继续处理在调用堆栈(call stack)中的下一请求。当延后请求处理完毕时,它会告知Node.js同时浏览器会做出响应反馈。

以下使用一个事例来说明。

Blocking I/O

// take order for table 1 and wait...
var order1 = orderBlocking(['Coke', 'Iced Tea']);
// once order is ready, take order back to table.
serveOrder(order1);
// once order is delivered, move on to another table.
// take order for table 2 and wait...
var order2 = orderBlocking(['Coke', 'Water']);
// once order is ready, take order back to table.
serveOrder(order2);
// once order is delivered, move on to another table.
// take order for table 3 and wait...
var order3 = orderBlocking(['Iced Tea', 'Water']);
// once order is ready, take order back to table.
serveOrder(order3);
// once order is delivered, move on to another table.

在这个餐馆例子中,服务员接收了菜单指令,等待饭菜处理,然后在饭菜处理完成后把饭菜端到桌子上。在服务员等候饭菜处理期间,他会拒绝其它客人的菜单指令。

Non-blocking I/O

// take order for table 1 and move on...
orderNonBlocking(['Coke', 'Iced Tea'], function(drinks){
  return serveOrder(drinks);
});
// take order for table 2 and move on...
orderNonBlocking(['Beer', 'Whiskey'], function(drinks){
  return serveOrder(drinks);
});
// take order for table 3 and move on...
orderNonBlocking(['Hamburger', 'Pizza'], function(food){
  return serveOrder(food);
});

而在非阻塞模式下,服务员会告知厨师他接受到的菜单指令,然后去接收下一桌的指令。当第一桌饭菜处理完毕时,他会为那桌客人上菜,然后继续接收其它客人的指令。这样一来服务员不会由于阻塞指令而造成时间浪费。

2. 原型(Prototype)

原型在JS中是一个复杂的概念。在典型继承机制语言如Java或C++中,为了实现代码复用,你必须先创建一个类然后透过它来生成对象或透过类扩展来生成对象。但是在JS中没有类似的类概念。在JS中创建一个对象后,你需要透过它来扩展对象或创建新对象。这就叫做原型继承(prototypal inheritence)。

每个JS对象都连接着一个原型对象并对并继承该对象的属性。每个对象与预定义JS的Object.prototype相联系。如果你透过obj.propName或obj['propName'>方式来查找对象属性但查找失败时,这时可尝试通过obj.hasOwnProperty('propName')的方式进行查找,JS运行时会在在原型对象中查找属性。如果属性不存在于原型链中,那么将返回undefined值。

让我们用以下例子来进行说明:

if (typeof Object.create !== 'function') {
    Object.create = function (o) {
        var F = function  {};
        F.prototype = o;
        return new F;
    };
var otherPerson = Object.create(person);

当你创建了一个新对象,你必须选定一个以原型为基础的对象。在这里,我们为对象函数添加了一个create方法。create方法创建了一个以其它对象为原型的对象,并作为参数传入。

当我们变更新的对象时,它的原型是保持不变的。但是,当我们改动了原型对象,该变更会影响所有基于该原型的对象。

3. 模块(Modules)

如果你曾在Java中使用过包,那么Node.js的组件与之类似。如果没有,也不用担心;组件其实是简单的JS文件,用于实现特定的功能。组件模式的意义是让你工作得更加轻松。要使用组件,你必须像在JAVA中导入包一样进行JS文件导入。Node.js中有两种组件

核心组件(Core Modules)- 核心组件是结合Node.js库被预编译的。其目的是把程序员经常使用的功能开放出来,避免重复劳动。常见的核心组件有HTTP, URL, EVENTS, FILE SYSTEM等等。

用户自定义组件(UserDefined Modules)- 用户自定义组件是提供给用户使用以实现具体功能的组件。当核心组件不足以满足程序员需要的时候,自定义组件就可派上用场了。

组件是通过require函数被抽取的。如果这是一个核心组件,那么参数就是组件名。如果这是一个用户自定义组件,那么参数就是其在文件系统中的组件路径。例如:

// extract a core module like this
var http = require('http);
// extract a user defined module like this
var something = require('./folder1/folder2/folder3/something.js');

4. 回调(Callbacks)

在JS中,函数是第一类对象。也就是说你可以像对常规对象那样对函数进行所有操作。例如指派函数到一个变量,把这些作为参数传给方法,把它们声明为对象的属性,甚至是把它们从函数里返回。

回调在JS中是异步函数,可以作为参数传递给其它函数或从其它函数里执行或返回而后再执行。这是回调的基本概念。

当我们把一个回调函数作为参数传递给另外的函数时,我们传递的仅仅是函数的定义;换言之,我们不会知道回调函数的执行时间。这完全依赖于回调函数机制。它会在稍后某个时间点进行回调调用。这是Node.js的非阻塞或异步行为的基本概念,可用下例进行说明:

setTimeout(function {
    console.log("world");
}, 2000)
console.log("hello");

这是一个最简单的调用。我们把一个匿名函数作为参数进行传递,作用是为setTimeout函数进行控制台的输出记录登记。因为这仅仅是个函数定义,我们不知道函数何时会被执行。这取决于setTimeout函数的second参数,即2S后。

首先,second记录语句记录了对控制台的输出,2S后,在回调函数中的记录语句记录了输出的内容。

// output
hello
world

写在最后

以上4点对Node.js开发者来说是要彻底理解和掌握的,建议多动手来好好体会这4个要点的含义。

原文出自: Dzone

(责编/夏梦竹)

class="kwhl">class="clearfix" data-groupid="6228302261916188930">

 

转:http://toutiao.com/news/6228307537867833858/