首页 文章 精选 留言 我的

精选列表

搜索[webpack入门],共10000篇文章
优秀的个人博客,低调大师

Android2.2快速入门

正文 一、环境配置和安装(Android2.2) 参考文章:这里 1.1JDK 1.2SDK 下载地址:http://dl.google.com/android/android-sdk_r06-windows.zip 1.3Eclipse 3.5 (Galileo) 下载地址: http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/galileo/R/eclipse-java-galileo-win32.zip 1.4ADT 0.9.7 下载地址:http://dl.google.com/android/ADT-0.9.7.zip 1.5安装 依次下载,按照文章步骤安装即可,注意安装SDK时,需要如下设置下: 不然更新不下来,那个链接地址被墙了。 二、Android系统架构 2.1 Linux内核(Linux Kernel) * Android运行在linux kernel 2.6之上,但是把linux内受GNU协议约束的部分做了取代,这样在Android的程序可以用于商业目的。 * Linux内核是硬件和软件层之间的抽象层。 2.2中间件 *中间件包括两部分:核心库和运行时(libraries & Android runtime) *核心库包括,SurfaceManager显示系统管理库,负责把2D或3D内容显示到屏幕;Media Framework媒体库,负责支持图像,支持多种视频和音频的录制和回放;SQlite数据库,一个功能强大的轻量级嵌入式关系数据库;WebKit浏览器引擎等。 * Dalvik虚拟机:区别于Java虚拟机的是,每一个Android应用程序都在它自己的进程中运行,都有一个属于自己的Dalvik虚拟机,这一点可以让系统在运行时可以达到优化,程序间的影响大大降低。Dalvik虚拟机并非运行Java字节码,而是运行自己的字节码。 2.3应用程序框架(Application Framework) *丰富而又可扩展性的视图(Views),可以用来构建应用程序,它包括列表(lists),网格(grids),文本框(text boxes),按钮(buttons),可嵌入的web浏览器。 *内容提供者(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据。 *资源管理器(Resource Manager)提供非代码资源的访问,如本地字符串,图形,和布局文件(layoutfiles)。 *通知管理器(Notification Manager)使得应用程序可以在状态栏中显示自定义的提示信息。 *活动管理器(Activity Manager)用来管理应用程序生命周期并提供常用的导航回退功能。 2.4应用程序(Applications) * Android系统会内置一些应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA语言编写的。 三、Android系统包说明 android.app :提供高层的程序模型、提供基本的运行环境 android.content :包含各种的对设备上的数据进行访问和发布的类 android.database :通过内容提供者浏览和操作数据库 android.graphics :底层的图形库,包含画布,颜色过滤,点,矩形,可以将他们直接绘制到屏幕上. android.location :定位和相关服务的类 android.media :提供一些类管理多种音频、视频的媒体接口 android.net :提供帮助网络访问的类,超过通常的Java.net.* 接口 android.os :提供了系统服务、消息传输、IPC 机制 android.opengl :提供OpenGL 的工具 android.provider :提供类访问Android 的内容提供者 android.telephony :提供与拨打电话相关的API 交互 android.view :提供基础的用户界面接口框架 android.util :涉及工具性的方法,例如时间日期的操作 android.webkit :默认浏览器操作接口 android.widget :包含各种UI 元素(大部分是可见的)在应用程序的屏幕中使用 四、Android项目工程说明 src:存放java源代码。 gen:存放编译器自动生成的java代码,这个目录下的文件是系统自动维护的。 assets:存放在这个目录下的文件,无论是mp3还是图片,都会被打包到发布包中。 res:资源文件目录,添加到这个目录下的文件都会在gen下的R.ava文件中显示出来;如果res下存放的资源在应用中没有使用到,那么在gen下的R.java的文件中就不会显示,那么打包的时候就不会将这部分资源打包,减少了应用的发布文件大小。 drawable:存放图片文件,注意图片名称必须是[a-z0-9_.]组成;drawable目录下不能分子级目录,只能通过命名方法来加以区分。 layout:存放与UI相关的布局文件,都是xml文件。 raw:直接复制到设备中的任意文件,不会被编译,可以放数据库文件。 values:存放字符串,颜色,数组等常量数据。可以任意命名,但是通常命名:color.xml、strings.xml、array.xml、styles.xml、dimens.xml(定义尺寸值:dimension value) xml:任意的XML文件,在运行时可以通过调用Resources.getXML()读取。 参见http://www.inandroid.cn/bbs/thread-1401-1-1.html。 五、基本控件 5.1文本框(TextView)、自动完成(AutoCompleteTextView) 自动完成的效果和代码:http://android.yaohuiji.com/archives/390 AutoCompleteTextView : 5.2编辑框(EditText) android:hint内容为空时提醒的信息,如“请输入” 5.3下拉列表(Spinner) android:entries可以通过在strings.xml中指定string-array来设置选项。 5.4进度条(ProgressBar) 效果和代码:http://www.eoeandroid.com/viewthread.php?tid=1081 5.5拖动条(SeekBar) 5.6评分条(RatingBar) 5.7按钮(Button)、图片按钮(ImageButton) Button: ImageButton: 5.8图片框(ImageView)、画廊(Gallery) ImageView Gallery 画廊效果:http://android.yaohuiji.com/archives/565 5.9日期和时间(DatePicker、TimePicker) AnalogClock DigitalClock Chronometer(计时器) DatePicker DatePickerDialog TimePicker TimePickerDialog 5.10单项选择(RadioGroup、RadioButton)、多项选择(CheckBox) CheckBox RadioButton ToggleButton 5.11表格(GridView)、列表(ListView) GridView ListView GridView:http://blog.csdn.net/hellogv/archive/2009/09/18/4567095.aspx ListView:http://www.cnblogs.com/allin/archive/2010/05/11/1732200.html 5.12对话框(AlertDialog)、对话框中的进度条(ProgressDialog) AlertDialog AlertDialog:http://android.yaohuiji.com/archives/655 ProgressDialog:http://aina-hk55hk.javaeye.com/blog/679134 5.13菜单(Menu) 5.14提示(Toast) 类似于MessageBox,非模式窗口。如: Toast.makeText(this, "信息", Toast.LENGTH_SHORT).show(); 5.15GestureOverLayView 文章1、文章2 5.16HorizontalScrollView 5.17MapView 5.18VideoView 5.19WebView 5.20ZoomControls 六、布局和容器 6.1帧布局(FrameLayout) 放入其中的所有元素都被放置最左上的区域,无法为这些元素指定一个确切的位置。如果有多个子元素,那么后边的子元素的显示会重叠在前一个元素上。 6.2线性布局(LinearLayout) 常用布局,子元素按行或列依次排列。 android:layout_gravity是本元素对父元素的重力方向。 android:gravity是本元素所有子元素的重力方向。 6.3绝对布局(AbsoluteLayout) 可以让子元素指定准确的x/y坐标值,(0, 0)为左上角,没有页边框,允许元素之间互相重叠。 6.4相对布局(RelativeLayout) 允许子元素指定他们相对于其它元素或父元素的位置(通过ID指定) 6.5表格布局(TableLayout) 将子元素的位置分配到行(TableRow)中,注意不会显示边框线也不能够跨行合并单元格。 例子:http://hi.baidu.com/hoyah/blog/item/d9db34275d6f361a8b82a171.html 6.6选项卡(TabWidget) 例子:http://fatkun.com/2010/06/android-tabwidget.html 七、常用代码 7.1在当前Activity中启动另外一个Activity startActivity(new Intent(this,目标Activity.class)); 7.2从当前ContentView从查找控件 (Button)findViewById(R.id.btnAbout) R.id.btnAbout指控件id。 7.3获取屏幕宽高 DisplayMetrics dm = new DisplayMetrics(); //获取窗口属性 getWindowManager().getDefaultDisplay().getMetrics(dm); int screenWidth =dm.widthPixels;//320 int screenHeight = dm.heightPixels;//480 7.4无标题栏、全屏 //无标题栏 requestWindowFeature(Window.FEATURE_NO_TITLE); //全屏模式 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 注意在setContentView()之前调用,否则无效。 7.5注册activity 所有用到的Activity都必须在AndroidManifest.xml中注册,否则会报空指针错误。如:<activity android:name="com.common.TestView">,注意是包名+类名。 八、Adb命令行 8.1 DOS进入android-sdk-windows\tools目录 8.2 Linux 登录linux命令:adb shell 列出当前文件:ls 删除文件:rm文件名 8.3 Sqlite 登录sqlite命令:sqlite3 8.4 Adb命令 列出当前有哪些活动的模拟器:adb devices 上传文件:adb push 安装apk文件:adb install android123.apk 九、Apk文件破解 9.1获取apk的资源图片 直接用WinRAR打开,res/drawable直接拖拽出来即可。 9.2获取xml文件信息 虽然能用WinRAR看到里面的xml文件,但是xml是经过优化的,无法直接查看,需要使用apktool工具,下载地址:https://code.google.com/p/android-apktool/。 下载apktool-1.3.1.tar.bz2和apktool-install-windows-2.2_r01-2.tar.bz2解压到同一个目录,然后把待破解的apk文件拷贝到同一目录,DOS进入该目录,输入:aapt d 91callinfo.apk 91callinfo,这里第四个参数为破解完存放的路径。 9.3反编译dex获取Java源代码 Apktool工具只能反编译成smali的中间代码文件,这里需要借助另外一个开源工具:dex2jar,下载地址:http://code.google.com/p/dex2jar/。这个工具不能直接翻译成java文件,但是可以把dex文件转换成jar文件,然后可以通过jad工具把jar文件反编译成Java源文件,如果只是看看源码的话可以用jd-gui,下载地址: http://java.decompiler.free.fr/jd-gui/downloads/jd-gui-0.3.3.windows.zip。 dex文件(classes.dex)可以用WinRAR从apk文件中解压出来。 十、小技巧 10.1使用系统的图标 例如调用系统打电话的图标: <ImageView android:src="@android:drawable/ic_menu_call" 图标名称和效果(Android1.5和1.6): http://since2006.com/android/1.5-drawables.php http://since2006.com/android/1.6-drawables.php 10.2让控件透明,如ImageButton 设置android:background="@null" 10.3在layout中直接指定onclick方法 不用手动绑定,在layout中设置android:onClick=”methodName”,methodName为对应Activity中的方法,如下格式:public voidmethodName(View view){}(适应1.6以上版本) 10.4用PC键盘控制模拟器 PC键盘 模拟器按键 说明 Home Home 主页 F2 Menu 菜单 Esc Back 后退 F3 Call 打电话 F4 Hangup 挂断 F5 Search 搜索 Ctrl+F12 横竖屏切换 10.5进入界面就显示/隐藏软键盘 在AndroidManifest.xml中设置activity的 android:windowSoftInputMode="stateHidden" 10.6界面可视化布局工具 系统提供可视化布局并不好用,这里推荐一款,布局完后点生成代码即可: DroidDraw:http://www.droiddraw.org/ 10.7在Eclipse中看Android的源码 将源代码拷贝至android-sdk-windows\platforms\android-4\sources下即可。注意源码版本对应android-4文件夹,这里指Android1.6的源码。 十一、Q & A 11.1用模拟器调试频繁连不上,或者报emulator-5554 disconnected的错误? Window(窗口) -> Show Views(显示视图) -> device -> view menu(视图菜单) -> Reset adb 11.2匿名类中如何使用this? classname(类名).this 11.3程序出错后模拟器上仅显示应用程序遇到问题将关闭怎么办? 可以从LogCat中检查错误,默认LogCat在DDMS视图中,可以通过以下方法调整到Java视图与控制台并列显示:点击Eclipse左下角,点开后在其他里面找到Android目录下的LogCat拖拽出来即可。 十二、后期维护 12.1 2010-10-1 补充了许多控件的截图,导出PDF下载:http://download.csdn.net/source/2729442 12.2 2010-10-18 补充了GestureOverLayView的文章链接,文章1是英语的,文章2为中文的。 本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582221,如需转载请自行联系原作者

优秀的个人博客,低调大师

Spark入门:Spark Streaming 概览

概览 Spark Streaming是Spark API的一个可横向扩容,高吞吐量,容错的实时数据流处理引擎,Spark能够从Kafka、Flume、Kinesis或者TCP等等输入获取数据,然后能够使用复杂的计算表达式如map,reduce,join和window对数据进行计算。计算完后的数据能够被推送到文件系统,数据库,和实时的仪表盘。另外,你也可以使用Spark ML和图计算处理实时数据流。 Spark Streaming接受到了实时数据后,把它们分批进行切割,然后再交给Spark进行数据的批量处理。 Spark Streaming对离散化的数据流提供了高级别的抽象DStream,所有进入的数据流都会被处理为DStreams,在内部,DStream是一个顺序排列的RDD。 快速起步 第一个实例是如何从TCP输入中计算单词出现的次数 首先,我们创建一个JavaStreamingContext对象,它是所有Streaming函数的主入口,再创建一个带有2个线程的StreamingContext对象,每1秒进行一次批处理。 importorg.apache.spark.*; importorg.apache.spark.api.java.function.*; importorg.apache.spark.streaming.*; importorg.apache.spark.streaming.api.java.*; importscala.Tuple2; SparkConfconf=newSparkConf().setMaster("local[2]").setAppName("NetworkWordCount"); JavaStreamingContextjssc=newJavaStreamingContext(conf,Durations.seconds(1)); 创建一个侦听本地9999的TCP数据源 JavaReceiverInputDStream<String>lines=jssc.socketTextStream("localhost",9999); 我们把接受到的数据按照空格进行切割 JavaDStream<String>words=lines.flatMap(x->Arrays.asList(x.split("")).iterator()); 对单词进行统计 JavaPairDStream<String,Integer>pairs=words.mapToPair(s->newTuple2<>(s,1)); JavaPairDStream<String,Integer>wordCounts=pairs.reduceByKey((i1,i2)->i1+i2); wordCounts.print(); 把字符串拍扁->映射->进行去重统计,最后调用print函数把数据打印到控制台中 jssc.start();//Startthecomputation jssc.awaitTermination();//Waitforthecomputationtoterminate 最后,启动整个计算过程 为了完成这次实验,还需要使用nc作为Server进行配合 nc-lk9999 Spark提供了示例,可以使用 ./bin/run-example streaming.JavaNetworkWordCount localhost 9999 来体验WordCount 本文作者:小埋酱 来源:51CTO

优秀的个人博客,低调大师

Maven入门简明教程

自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onLayout源码详尽分析 自定义View系列教程04–Draw源码分析及其实践 自定义View系列教程05–示例分析 自定义View系列教程06–详解View的Touch事件处理 自定义View系列教程07–详解ViewGroup分发Touch事件 自定义View系列教程08–滑动冲突的产生及其处理 探索Android软键盘的疑难杂症 深入探讨Android异步精髓Handler 详解Android主流框架不可或缺的基石 站在源码的肩膀上全解Scroller工作机制 Android多分辨率适配框架(1)— 核心基础 Android多分辨率适配框架(2)— 原理剖析 Android多分辨率适配框架(3)— 使用指南 Maven简介 Maven是一个项目管理工具 Maven主要功能:管理依赖、项目构建 Maven的使用需要依赖JDK Maven工程项目结构如下图所示: 安装Maven 第一步 在官网http://maven.apache.org下载Maven;将安装包解压至本地,如:D:\apache-maven-3.0.5 第二步 配置Maven环境变量MAVEN_HOME,值为D:\apache-maven-3.0.5 配置Maven环境变量PATH,值为;%MAVEN_HOME%\bin; 第三步 测试Maven是否安装成功。在命令行中输入:mvn -v 再回车 第四步 初始化Maven本地仓库。在命令行窗口中输入命令mvn help:system 待命令执行完毕后会在~/.m2文件夹下(~ 代表当前用户目录)生成本地仓库repository,例如: 为了方便开发和管理,在D盘建立文件夹apache-maven-setting用于存放用户的Maven配置信息。 将C:\Users\lf.m2下的repository拷贝至D:\apache-maven-setting 将D:\apache-maven-3.0.5\conf下的settings.xml拷贝至D:\apache-maven-setting文件夹中。 在D:\apache-maven-setting的settings.xml中添加一行代码用于指定新的本地仓库的地址 <localRepository>D:\apache-maven-setting\repository</localRepository> 详情请参见下图: 在完成如上操作后,D:\apache-maven-setting的目录结构如下: Eclipse整合Maven 安装Maven插件 新版的eclipse中已经集成好了Maven,无需再另行安装插件。如果是低版eclipse请自行在线或者离线安装。安装成功后在eclipse中可以看到: 设置Maven安装路径 将路径设置为磁盘本地Maven的安装路径。 设置Maven的用户配置 在此修改全局配置和用户配置,请注意路径;配置后本地仓库Local Repository也会自动变更为本地仓库的目录。 创建Java Web项目 第一步 File —–> new —–> Maven Project 第二步 第三步 点击 Finish 即可看到我们创建的工程,如下图所示: 看到此处,有些疑惑了:工程中不但有一个Java Resources还有一个src;这两者基本上是一模一样的,这两个有什么区别么? 其实,Java Resources中的内容和src文件夹里代码是一样的,为了方便开发人员更快地阅读Java代码,它以包的形式展现了我们的项目的Java代码。但是细心的人发现了:src下比Java Resources还多了一个webapp的文件夹,该文件夹用于放置前端页面以及脚本等等内容;目前该文件夹是空的,我们现为其添加WEB-INF文件夹和index.jsp文件从而与以往的dynamic web project保持一致。 嗯哼,文件夹和index.jsp都有了,但是报错了…….没事,我们来简单地配置一下即可: Java Build Path —–> Libraries —–> Add Library… —–> Server Runtime 添加Tomcat即可 第四步 在pom.xml中配置Tomcat <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>cn.com</groupId> <artifactId>Maven01</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <build> <plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <configuration> <port>8082</port> <path>/Maven01</path> </configuration> </plugin> </plugins> </build> </project> 第五步 部署运行,Run As —–> Maven build 输入tomcat7:run再点击Run部署至服务端;浏览器中输入:http://localhost:8082/Maven01/index.jsp即可访问 Maven添加Jar包 一起来瞅瞅在Maven中如何添加第三方jar;比如,现在需要JUnit测试需要对应的Jar包。 第一步 在http://mvnrepository.com中找到需要的jar包 第二步 依据官网文档将其配置至pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>cn.com</groupId> <artifactId>Maven01</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <build> <plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <configuration> <port>8082</port> <path>/Maven01</path> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.7</version> </dependency> </dependencies> </project> groupId:定义当前Maven组织名称 artifactId:定义实际项目名称 version:定义当前项目的当前版本号 在Maven中每个工程都有它唯一的组织名、项目名、版本 ,三者可构成Maven坐标 第三步 好了,现在已经通过maven的方式导入了jar包,简单地测试一下: /** * @author 原创作者:谷哥的小弟 * @blog 博客地址:http://blog.csdn.net/lfdfhl * @time 创建时间:2017年8月9日 下午2:43:40 * @info 描述信息:测试代码 */ package cn.com.test; public class TestJar { @org.junit.Test public void test(){ System.out.println("hello maven"); } } OK!

优秀的个人博客,低调大师

Storm入门之附录C

本文翻译自《Getting Started With Storm》译者:吴京润 编辑:郭蕾 方腾飞 安装实际的例子 译者注:有些软件的最新版本已有变化,译文不会完全按照原文翻译,而是列出当前最新版本的软件。 首先,从下述GitHub的URL克隆这个例子: > git clone git://github.com/storm-book/examples-ch06-real-life-app.git src/main 包含拓扑的源码 src/test 包含拓扑的测试用例 webapps目录 包含Node.js Web可以执行拓扑应用 . ├── pom.xml ├── src │ ├── main │ │ └── java │ └── test │ └── groovy └── webapp 安装Redis Redis的安装是相当简单的: 从Redis站点下载最新的稳定版(译者注:翻译本章时最新版本是2.8.9。) 解压缩 运行make,和make install。 上述命令会编译Redis并在PATH目录(译者注:/usr/local/bin)创建可执行文件。 可以从Redis网站上获取更多信息,包括相关命令文档及设计理念。 安装Node.js 安装Node.js也很简单。从http://www.nodejs.org/#download下载最新版本的Node.js源码。 当前最新版本是v0.10.28 下载完成,解压缩,执行 <b>./configure</b> <b>make</b> <b>make install</b> 可以从官方站点得到更多信息,包括在不同平台上安装Node.js的方法。 构建与测试 为了构建这个例子,需要先启动redis-server >nohup redis-server & 然后执行mvn命令编译并测试这个应用。 >mvn package … [INFO] ———————————————————————— [INFO] BUILD SUCCESS [INFO] ———————————————————————— [INFO] Total time: 32.163s [INFO] Finished at: Sun Jun 17 18:55:10 GMT-03:00 2012 [INFO] Final Memory: 9M/81M [INFO] 运行拓扑 启动了redis-service并成功构建之后,在LocalCluster启动拓扑。 >java -jar target/storm-analytics-0.0.1-jar-with-dependencies.jar 启动拓扑之后,用以下命令启动Node.js Web应用: >node webapp/app.js NOTE:拓扑和Node.js命令会互相阻塞。尝试在不同的终端运行它们。 演示这个例子 在浏览器输入http://localhost:3000/开始演示这个例子! 关于作者 Jonathan Leibiusky,MercadoLibre的主要研究与开发人员,已在软件开发领域工作逾10年之久。他已为诸多开源项目贡献过源码,包括“Jedis”,它在VMware和SpringSource得到广泛使用。 Gabriel Eisbruch一位计算机科学学生,从2007年开始在Mercadolibre(NASDAQ MELI)任架构师。主要负责研究与开发软件项目。去年,他专门负责大数据分析,为MercadoLibre实现了Hadoop集群。 Dario Simonassi在软件开发领域有10年以上工作经验。从2004年开,他专门负责大型站点的操作与性能。现在他是MercadoLibre(NASDAQ MELI)的首席架构师,领导着该公司的架构师团队。 文章转自并发编程网-ifeve.com

优秀的个人博客,低调大师

Storm入门之附录B

本文翻译自《Getting Started With Storm》译者:吴京润 编辑:郭蕾 方腾飞 安装Storm集群 译者注:本附录的内容已经有些陈旧了。最新的Storm已不再必须依赖ZeroMQ,各种依赖的库和软件也已经有更新的版本。 有以下两种方式创建Storm集群: 使用Storm部署在亚马逊EC2上面创建一个集群,就像你在第6章看到的。 手工安装(详见本附录) 要手工安装Storm,需要先安装以下软件 Zookeeper集群(安装方法详见管理向导) Java6.0 Python2.6.6 Unzip命令 NOTE:Nimbus和管理进程将要依赖Java、Python和unzip命令 安装本地库: 安装ZeroMQ: 01 wgethttp://download.zeromq.org/historic/zeromq-2.1.7.tar.gz 02 03 tar-xzf zeromq-2.1.7.tar.gz 04 05 cdzeromq-2.1.7 06 07 ./configure 08 09 make 10 11 sudomakeinstall 安装JZMQ: 1 git clonehttps://github.com/nathanmarz/jzmq.git 2 cdjzmq 3 ./autogen.sh 4 ./configure 5 make 6 sudomakeinstall 本地库安装完了,下载最新的Storm稳定版(写作本书时是Storm0.7.1。译者注:翻译本章时已是v0.9.1,可从http://storm.incubator.apache.org/或https://github.com/apache/incubator-storm/releases下载),并解压缩。 编辑配置文件,增加Storm集群配置(可以从Storm仓库的defaults.yaml看到所有的默认配置)。 编辑Storm目录下的conf/storm.yaml,添加以下参数,增加集群配置: storm.zookeeper.servers: – "zookeeper addres 1" – "zookeeper addres 2" – "zookeeper addres N" storm.local.dir: "a local directory" nimbus.host: "Nimbus host addres" supervisor.slots.ports: – supervisor slot port 1 – supervisor slot port 2 – supervisor slot port N 参数解释:storm.zookeeper.servers 你的zookeeper服务器地址。 storm.local.dir: Storm进程保存内部数据的本地目录。(务必保证运行Storm进程的用户拥有这个目录的写权限。) nimbus.host Nimbus运行的机器的地址 supervisor.slots.ports 接收消息的工人进程监听的端口号(通常从6700开始);管理进程为这个属性指定的每个端口号运行一个工人进程。 当你完成了这些配置,就可以运行所有的Storm进程了。如果你想运行一个本地进程测试一下,就把nimbus.host配置成localhost。 启动一个Storm进程,在Storm目录下执行:./bin/storm 进程名。 NOTE:Storm提供了一个出色的叫做Storm UI的工具,用来辅助监控拓扑。 文章转自 并发编程网-ifeve.com

优秀的个人博客,低调大师

ios入门之界面基础

学习移动app开发,我们常常从讲解基本的控件开始,如UILabel、UISearchBar、UIButton、UITextField等等。在实现一个简单的ios 应用之前,我们首先来看ios开发中一些基本的概念。 视图控制器(View Controllers) 视图控制器是MVC(Modl-View-Controller)模式的逻辑部分。按照字面意思,这个控制器能够控制某个视图。 UIViewController 苹果极力推崇MVC这种开发模式,并且帮我们实现了一个叫做UIViewController的控制器,它是UIKit的一部分。UIKit是众多能够制作交互界面元素的类,如果你在某个类的开头是UI,那么这个类属于UIkit。UIViewController视图属性被连接到一个视图文件,大多数情况下,是一个storyboard文件。 UIViewController提供一些需要的方法和属性,通常我们在使用的时候只需要将UIViewController子类化即可。如: class mySubController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any addition setup after loading the view } } 在这个例子中,父类就是UIViewController。viewDidLoad()是UIViewcontroller默认的方法。 UINavigationController 我们在编写一个ios软件的时候,往往不只一个界面,界面之前跳转我们常常会用到navigation controller这么一个东西。一个UINavigationController可以在数组中支持多个UIViewController,导航控制器(navigation controller)按照先进后出的堆栈管理原则对我们创建的UIViewController进行管理。通过self.title属性来设置导航栏的标题。如: self.title =@"登录"; Table View Table views是用来显示滚动视图的控件,滚动视图是iOS Apps中最常见的用户界面。滚动视图中的每一行叫做cell,cell是用了展示table view中每行的内容。table view可以有很多个cell,多个cell组成section(组)。在iPhone的设置界面,就是用不同的section把界面分开,像通知中心,控制中心,个人隐私,每个table view都有header和footer,header是在cell上面,footer在cell下面。 Delegation 在很多的OA软件中,往往都有定时提醒这么一个功能。在App内部发生某个事件时,就会发出提醒,为某个事件订阅或者接收提醒的过程叫做delegation(委托)。例如,我们使用delegate创建table view,并告知要绘制10行。 override func tableView ( tableView: UITableView, numberOfRowsInSection section: Int ) -> Int { //Return the number of rows in the section return 10 } UITableViewController UITableViewController会自动创建一个table view,然后设置tableView属性,同时也需要委托自己获取所有需要的delegate方法。 UITableViewDataSource UITableView的delegate协议有三个必须要写的方法,叫做UITableViewDataSource。这个协议包括组的数量,美组中行的数量,以及cell如何展现。 第一个方法是numberOfSectionsInTableView(_:),如: override func numberOfSectionsInTableView(tableView: UITableView) -> Int { //#warning Potentially incomplete method implementation. //return the number of sections. return 0 } 注:注意到return那行目前是零,这意味着这个table view中没有组。苹果公司增加了一个警告注释,说如果组的个数是零,那么就不会显示行,组包含行cell,没有了组section,行cell也就不会被显示出来。 第二个方法是tableView(_:numberOfRowsInSection:),这个方法决定了某个组里具体有多少行,当然这里也不能为0: override func tableView(tableView: UITableView,numberOfRowsInSection section: Int) -> Int { //#warning Incomplete method implementation // Return the number of rows in the section return 5 } 第三个方法是tableView(:cellForRowAtIndexPath:),这个方法里有个参数值叫indexPath,是一个NSIndexPath。section组属性的索引是当前组,cell行属性的索引是当前行: 第一组第一行的索引NSIndexPath是0,0。 第一组第四行的索引NSIndexPath是0,3。 第三组第一行的索引NSIndexPath是2,0。可以用点语法调用section和row属性: var currentRow = indexPath.row var currentSection = indexPath.section tableView代码: override func tableView(tableView: UITableView,cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell =tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as UITableViewCell return cell } ios跳转实例 为了方便大家的理解,我们先来一个简单的跳转的实例。1)打开Xcode,点击顶部菜单栏的File -> New -> Project,从模板中选择Single View Application,点击Next。如图: 2)输入项目名称等属性,点击Next。 3)打开Main.storyboard,点击Inspector上工具栏中第一个图标File Inspector,鼠标移动到到中间部分,不勾选Use Auto Layout选项。这时会出现一个对话框,选择iPhone。 4)选中这个界面,然后点击顶部菜单栏的Editor -> Embed In -> Navigation Controller。一个新的scene会增加到Storyboard中,一个scene表示App一屏或者一个界面。Navigation Controller Scene和之前的View Controller Scene是连接在一起的,这连接说明View Controller Scene是Navigation Controller Scene里第一个出现视图,点击Storyboard Editor左下角的盒子按钮打开Document Outline,Document Outline显示了storyboard文件中所有的控件以及控件所处的层次等级。 5)接下来我们在ViewController.m中新建一个按钮,用来跳转到第二个界面。先创建一个按钮,代码如下: UIButton * button=[UIButton buttonWithType:UIButtonTypeSystem]; button.frame=CGRectMake(130, 220, 100, 30); [button addTarget:self action:@selector(toNext) forControlEvents:UIControlEventTouchUpInside]; [button setTitle:@"跳转登录" forState:UIControlStateNormal]; [self.view addSubview:button]; 然后通过action添加跳转方法: //跳转到登录界面 -(void)toNext{ UIBarButtonItem * back=[[UIBarButtonItem alloc]init]; back.title = @"返回"; self.navigationItem.backBarButtonItem = back; SecondViewController * second = [[SecondViewController alloc]init]; [self.navigationController pushViewController:second animated:YES]; } 整体的代码结构如下:

优秀的个人博客,低调大师

GreenDAO系列之(1)入门

关于greenDao 简介 greenDAO 是一个开源的ORM数据库框架。它帮助开发者从日常的数据库的读写sql语句中解放出来,开发者只需要关注具体的Java对象,就能够进行数据库的访问操作。 greenDao features 1.强大的性能,可能是ORM数据库中性能最好的。官方把greenDao和OrmLite、ActiveAndroid做的性能对比,数据如下: 易于使用的API 低内存消耗 包size比较小,如果不包含加密,大概proguard后的包size为8k。 支持数据库加密: 支持SQLCipher。SQLCipher对个人开发者来说倒不错,不过对于公司来说吸引力不大。 greenDao 核心类说明 如上图所示,greenDao有几个核心类: DaoMaster : db的管理类,是db的总入口,总管的角色,管理着database创建、

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册