首页 文章 精选 留言 我的

精选列表

搜索[加密工具],共10000篇文章
优秀的个人博客,低调大师

web3j通过命令行工具新建钱包、更新钱包密码及转账

生成一个新的以太坊钱包: $ web3j wallet create 更新现有钱包的密码: $ web3j wallet update <walletfile> 将以太币发送到另一个地址: $ web3j wallet send <walletfile> 0x<address>|<ensName> 当把以太币Ether发送到另一个地址时,在交易发生之前,你会被问到一系列问题。见下面的完整示例: 下面的例子演示如何使用web3j发送以太币Ether到另一个钱包。 $ ./web3j-<version>/bin/web3j wallet send <walletfile> 0x<address>|<ensName> _ _____ _ _ | | |____ (_) (_) __ _____| |__ / /_ _ ___ \ \ /\ / / _ \ '_ \ \ \ | | | / _ \ \ V V / __/ |_) |.___/ / | _ | || (_) | \_/\_/ \___|_.__/ \____/| |(_)|_| \___/ _/ | |__/ Please enter your existing wallet file password: Wallet for address 0x19e03255f667bdfd50a32722df860b1eeaf4d635 loaded Please confirm address of running Ethereum client you wish to send the transfer request to [http://localhost:8545/]: Connected successfully to client: Geth/v1.4.18-stable-c72f5459/darwin/go1.7.3 What amound would you like to transfer (please enter a numeric value): 0.000001 Please specify the unit (ether, wei, ...) [ether]: Please confim that you wish to transfer 0.000001 ether (1000000000000 wei) to address 0x9c98e381edc5fe1ac514935f3cc3edaa764cf004 Please type 'yes' to proceed: yes Commencing transfer (this may take a few minutes)...................................................................................................................$ Funds have been successfully transferred from 0x19e03255f667bdfd50a32722df860b1eeaf4d635 to 0x9c98e381edc5fe1ac514935f3cc3edaa764cf004 Transaction hash: 0xb00afc5c2bb92a76d03e17bd3a0175b80609e877cb124c02d19000d529390530 Mined block number: 1849039 原文《Java以太坊类库web3j官网中文翻译》中的: http://cw.hubwiz.com/card/c/web3j/1/8/2/ 另外推荐几个很受欢迎全网稀缺的互动教程: web3j,主要是针对java和android程序员围绕web3j库进行区块链以太坊开发的讲解。 python以太坊,主要是针对python围绕web3.py进行区块链以太坊应用开发的讲解。 php以太坊,主要是介绍使用php进行智能合约开发交互,进行账号创建、交易、转账、代币开发以及过滤器和事件等内容。 以太坊开发,主要是介绍使用node.js、mongodb、区块链、ipfs实现去中心化电商DApp实战,适合进阶。 以太坊教程,主要介绍智能合约与dapp应用开发,适合入门。

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

易鲸捷首架刘明:Trafodion值得放入工具箱,因为有以下优点

Trafodion是Apache基金会的一个开源项目,提供了一个成熟的企业级SQL-on-HBase解决方案。Trafodion的主要设计思想是处理operational类型的工作负载,或者是传统的OLTP应用。此外,对于需要保证数据一致性、需要标准SQL开发接口,或者需要实时数据读写分析的应用,Trafodion也是一个十分合适的解决方案。 Trafodion的前世今生 Trafodion的渊源可以追溯到数据库技术的“史前时代”。 Trafodion的鼻祖是天腾 (Tandem) 公司的NonStop SQL。之后在1989年,天腾推出了NonStop SQL/MP,它是第一个MPP分布式数据库,实现海量并发SQL执行。在当时的历史条件下,NonStop SQL/MP开创性地提供了线性横向扩展能力(我们如今耳熟能详的scale out

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

开发工具总结(9)之开源项目的README文档的最全最规范写法

版权声明:本文为博主原创文章,未经博主允许不得转载。https://www.jianshu.com/p/813b70d5b0de 转载请标明出处:https://www.jianshu.com/p/813b70d5b0de 本文出自 AWeiLoveAndroid的博客 【好消息】我的微信公众号正式开通了,关注一下吧! 关注一下我的公众号吧 看过很多开源库,发现有些库的文档写的一团糟,有的甚至就是一个标题,让你自己下载之后运行,自己摸索,看的很头疼。而那些使用量大的库的文档写的很标准,很详细,看的很舒服。 README文档写的好的话能减少很多使用成本,能帮助这个库让更多人了解,更多的人用,可以说好的文档就是一个门面。有好的 README 文档的项目不一定是一个好开源项目,但一个好开源项目一定有一个好的 README。 下面就简单的总结一下README文档规范写法。(这只是我个人根据github上几百个大型开源库总结出来的,如你有更好的意见,欢迎留言。) 一、README文档的组成部分 看过很多开源框架的README文档,综合一下,大概有以下几部分组成: (一)国际化 (二)项目工程介绍 (三)项目的使用效果图 (四)项目特点 (五)项目的基本结构(架构) (六)集成方式 (七)使用方法 (八)混淆 (九)关于作者/组织及交流方式等信息。 (十)贡献者/贡献组织 (十一)鸣谢 (十二)版权信息 二、下面就每个部分简单的分析一下: (一)国际化 github是面向全球的一个开源网站,所以不要局限于中文文档,建议写一个英文的README,让来自全球的人都能更方便的了解你的项目。推荐写法,在REAMDE开头写上国际化引用地址: 比如: 国际化 (二)项目工程介绍 项目介绍是必不可少的,它能让别人快速了解项目。项目介绍主要包括: 项目名称、logo(没有logo就不写) 这个开源项目是做什么的? 这个项目是什么语言编写的? 这个项目目前被多少人用到了,有多少好评等? 项目维护、依赖更新状态(如果有的话,这也可以用)等 项目可用版本及其他版本,以及每个版本的更新信息记录 Demo 或官网地址(如果有) 效果图如下所示: 英文版: 英文版项目介绍 中文版: 中文版项目介绍 上述案例里面那些图标,请参考这个网站 Shields.io,打开之后想用哪个直接复制就可以了,同时它也支持自定义样式。 (三) 项目的使用效果图 如果是一些自定义控件或者项目的演示效果的,基本都会放上演示效果图,可以是图片,也可以是gif图。 建议:静态的页面的放截图,交互很复杂的建议放gif图。 如果功能比较多,建议每个功能一张效果图。 示例如下: LoveHeartView使用示意图如下图所示: (四)项目特点 主要是介绍项目的特点,方便别人查看和了解该项目。 比如 360的RePlugin框架的特点就写的很详细: 360的RePlugin的项目特点 (五)项目的基本结构(架构) 这里主要介绍项目的各个组成部分,如果是框架,可以附带架构图解;如果是其他的,可以提供一些UML分析图,顺便分析一下源码也行的。 比如 360的RePlugin架构图解 如下所示: 360的RePlugin架构图解 关于RePlugin架构的相关说明 (六)集成方式 一般的项目传到jcenter上面或者AS插件传到jetbrains的话 一般会附带相关的集成方式的说明。(如果没有这些措施的话,这一步可以略过不看。) 比如 okhttp 就有详细的3种集成方式: 一个是下载Jar包;一个是引用Maven库;第三个是添加Gradle依赖: okhttp的集成方式 (七)使用方法 一般的README必不可少的,最重要的就是用法,主要包括:安装,运行,编译,部署,debug,该github上的这个库如何在自己的项目中使用,以及需要注意的问题,版本更新适配问题等等。 这里就拿 Glide 举例说明,Glide里面有一个详细的wiki使用文档的,首页的README里面也写了一个简单的基本用法,如下图所示: Glide的基本用法 (八)混淆 一般来说,开源库都会设置一些混淆规则的,部分项目由于项目类型特殊之处,所以就没有混淆这一项,具体的看开源项目来定。 例如LitePal这个开源库的混淆 如下图所示: LitePal混淆规则 (九)关于作者/组织及交流方式等信息。 这个就很灵活了,不是每一个必备,当然写出来方便大家联系作者,也是很好的。可以写一下作者或者组织的联系方式,微信,邮箱,博客,微博,甚至支付宝转账二维码等都是可以放上去的。 例如 blankj的AndroidUtilCode这个库为例,为了避免打广告嫌疑,我做了打码处理: (十)贡献者/贡献组织 比如 谷歌推出的 sample 里面就有贡献者/贡献组织信息,如下图所示: 谷歌推出的sample的贡献者/贡献组织信息 (十一)鸣谢 这个主要是引用了哪些开源技术,这里可以做一些鸣谢,表示对别人的尊重,其实也是一个引用声明,避免因为版权而引起不必要的纠纷。 例如:我写的这个库 https://github.com/AweiLoveAndroid/CommonDevKnowledge/blob/master/interview/summary.md 里面就写了鸣谢。 https://github.com/AweiLoveAndroid/CommonDevKnowledge里面的鸣谢 (十二)版权信息 版本很重要,开源许可证很重要,如果没有生命版权,可能会因为一些侵权行为而无法很好的维权,版权信息可以保护作者的权益(个人理解)。 世界上的开源许可证,大概有上百种。很少有人搞得清楚它们的区别。最流行的有六种:GPL、BSD、MIT、Mozilla、Apache、LGPL 乌克兰程序员Paul Bagwell,画了一张分析图,说明应该怎么选择。这是我见过的最简单的讲解,只用两分钟,你就能搞清楚这 六种许可证之间的最大区别。 六种开源许可证之间的区别 比如 Picasso 里面的版权信息,如下图所示: Picasso 里面的版权信息

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

开发工具总结(6)之Android Studio模板配置详解(提高开发效率必备技能)

版权声明:本文为博主原创文章(部分引用他人博文,已加上引用说明),未经博主允许不得转载。https://www.jianshu.com/p/1fe87050c1ff 转载请标明出处:https://www.jianshu.com/p/1fe87050c1ff 本文出自 AWeiLoveAndroid的博客 2017年最后一天了,首先祝贺大家元旦快乐,2018工作顺利,天天开心。 本文同步发表在github,欢迎观看,guithub地址:https://github.com/AweiLoveAndroid/The-pit-of-the-Android-Studio 【前言】Android Studio模板相信大家应该多少都有接触过吧,如果用的少也没关系,花30分钟看看这篇博客就会用了,我会带领大家快速入门。使用了模板之后能大大的提高开发效率,建议大家收藏本文,忘记的时候再回来看看。 目录 一、工程目录模板二、Live Templates (活动模板)三、File and Code Templates(文件和代码模板),这里讲一下自定义注释模板四、自定义UI模板,新建project或者module的时候,右键可以快速生成模板,比如点击新建Activity,可以选择EmptyActivity等。。 一、工程目录模板 Android Studio 新建一个 project 时并没有将 Android 开发中常用的文件目录全部生成,比如默认只生成了一个 drawable文件夹,常用的 drawable-hdpi等文件夹需要我们自己去创建。再比如values目录下的dimens.xml,res目录下的anim文件夹都是没有的,需要我们手动去创建。这样一来,自己创建浪费时间,同时创建的目录名字错了,编译肯定会报错。所以为了效率和安全起见,我们需要把工程目录模板进行修改,达到创建 project 时就可以生成完整的目录结构,不再手动去创建的目的。 (一)新建module的时候自动生成dimens.xml. 操作方式:进入 Android Studio 安装目录,依次进入 plugins --> android --> lib --> templates --> gradle-projects --> NewAndroidModule --> root --> res --> values,在values文件夹下创建 dimens.xml 文件夹,写入以下内容,保存: <?xml version="1.0" encoding="utf-8"?> <resources> </resources> (二)这里有3个需要变更的地方。 (1)新建module时,自动添加v4依赖,并且指定v4,v7包依赖版本。 (2)新建module时自动生成不同分辨率的drawable文件夹。 (3)指定dimens.xml的路径。 操作方式:进入 Android Studio 安装目录,依次进入 plugins --> android --> lib --> templates --> gradle-projects --> NewAndroidModule,然后用编辑器打开 recipe.xml.ftl文件,并加入以下配置,如下图红色框框所示 说明: (1)dependency 这个意思是配置依赖库的url,默认的只有一个v7包,我这里新增了一个v4包的依赖。 (2)v7或者v4后面的25.3.1是对应的版本号,比如你想用24的版本,你可以替换成你的sdk里面对应的版本号(不知道sdk版本号的可以查看 Android studio常用设置和快捷键)。 (3)mkdir 意思是创建目录 (4)解释一下以下这段代码的意思: <instantiate from="root/res/values/dimens.xml" to="${escapeXmlAttribute(resOut)}/values/dimens.xml" /> //意思是把 模板的root/res/values/demins.xml 这个路径里面的dimens.xml拷贝到创建的项目资源目录下面的values/dimens.xml (三)新建module的时候想让module的build.gradle里面的编译指定某一个版本。比如我想要的结果是这样的: android { compileSdkVersion 25 buildToolsVersion "25.0.3" defaultConfig { minSdkVersion 25 targetSdkVersion 25 ... } ... } 重点要设置的有4个:compileSdkVersion、buildToolsVersion、minSdkVersion、targetSdkVersion,下面讲一下操作方法: 操作方式:进入 Android Studio 安装目录,依次进入 plugins --> android --> lib --> templates --> gradle-projects --> NewAndroidModule --> root,然后用编辑器打开build.gradle.ftl,修改配置如下图所示: 说明:先把这个文件备份,再去做修改。免费出问题了还可以还原回来。 4. 新建一个project看看效果如何: 二、Live Templates 活动模板(暂且翻译为 灵活的模板 比较好) (一)打开方法: 点击菜单File --> 点击Settings --> 选择Editor --> Code Style --> Live Templates,这里面配置了常用代码,比如log,System.out.println,for循环等 由于太多,下面只列举开发中经常用到的:(后面写注释“//修改了快捷键名称” 表示修改了快捷键名称,不再使用默认的快捷键,没修改的是默认的快捷键) (1)Android 安卓有关的 const 常量 fbc findViewById fore 创建foreach循环 //修改了快捷键名称 gone 设置View为gone //修改了快捷键名称 IntentView 用ACTION_VIEW创建一个Intent key 结果是 private static final String KEY_$value$ = "$value$"; newInstance 使用参数创建一个新的Fragment实例 co 生成构造方法 //修改了快捷键名称 cop 私有构造方法 //修改了快捷键名称 rgS 从资源文件getString(R.string.XXX) rouiT 生成runOnUIThread sbc 生成方格状注释代码块 Sfmt 格式化String String.format(XXX) starter 创建一个静态的start(...)方法来启动一个Activity toal 创建一个长时间的Toast //新增 toas 创建一个Toast //修改了快捷键名称 vi 设置View为visible //修改了快捷键名称 (2)AndroidComments 安卓组件 fix 添加 // FIXME //修改了快捷键名称 do 添加 // TODO //修改了快捷键名称 (3)AndroidLog 安卓打log有关的 logd Log.d(TAG, String) loge Log.e(TAG, String) logi Log.i(TAG, String) logm 打印方法名称及其参数,Log.d(TAG,XXX) logr 打印方法的结果 tag 根据当前的类名生成一个静态logtag //修改了快捷键名称,修改了内容,描述改为“根据当前类生成一个TAG” private static final String TAG = $className$.class.getSimpleName(); logw Log.w(TAG,String,Exception) logf Log.wtf(TAG, String, Exception) //修改了快捷键名称 (4)iterations 快速生成循环和迭代器代码块 for 示例:for (int i = 0; i < ; i++) {} //修改了快捷键名称 fora 示例:遍历数组 //修改了快捷键名称 for (int i = 0; i < Array.length; i++) { int i1 = Array[i]; } forc 示例:使用iterator遍历一个容器变量 //修改了快捷键名称 for (Iterator iterator = collection.iterator(); iterator.hasNext(); ) { Object next = iterator.next(); }//这个是遍历一个容器变量的,直接让容器返回一个iterator进行遍历 whe 示例:while循环遍历枚举内容 //修改了快捷键名称 while (枚举类.hasMoreElements()) { Object nextElement = 枚举类.nextElement(); } iter 示例:遍历选中状态下的set //修改了快捷键名称 for (int i : FOCUSED_STATE_SET) {...} whi 示例:while循环使用iterator进行遍历 //修改了快捷键名称 while (iterator.hasNext()) { Object next = iterator.next(); }//获取到了迭代器对象后,对迭代器进行遍历操作 forl 示例:遍历list对象里面的内容 //修改了快捷键名称 for (int i = 0; i < list.size(); i++) { Object o = list.get(i); } foraa 示例:倒叙遍历数组 //修改了快捷键名称 for (int i = Array.length - 1; i >= 0; i--) { int i1 = FOCUSED_STATE_SET[i]; } //以下这两个用的少,只是把快捷键改了一下,方便使用 fors 对StringTokenizer遍历 //修改了快捷键名称 forv 对Vector遍历 //修改了快捷键名称 (5)Other 其他的 geti 获取到当前的实例 示例: public static MainActivity getInstance() { return ; } ifn 生成if null代码块 示例: if (某变量 == null) {....} inn 生成if not null代码块 示例:if (某变量 != null) {....} inst 判断某变量是不是某个类的实例对象 示例: if ($EXPR$ instanceof $TYPE$) { $TYPE$ $VAR1$ = ($TYPE$)$EXPR$; $END$ } lazy 执行延迟初始化,就是对象直到用的时候才进行初始化操作 示例: if (savedInstanceState == null) { savedInstanceState = new Bundle(); } st 获取数组最后一个元素 示例: arr[arr.length - 1] mn 比较两个变量较小值 Math.min(var2,var3); mx 比较两个变量较大值 Math.max(var2,var3); main 生成一个main()函数的代码块 public static void main(String[] args){ 。。。。 } //修改了快捷键名称 toar 把collection的对象存储到一个数组里面 示例:something.toArray(new collection[something.size()]) (6)plain 关于修饰符 psf public static final psfi public static final int psfs public static final String St String thr throw new (7)surround 代码块被什么包裹。。 I 被迭代器包裹 默认的是: for (Object o :) { } (8)output(我改成了SystemOut) //修改了组的名称 sysr 示例: System.err.println("example") //修改了快捷键名称 sysf 示例: System.out.printf("example") //修改了快捷键名称 syso 示例: System.out.println("example") //修改了快捷键名称 sysom 打印当前类的当前方法名, 示例:System.out.println("MainActivity.onCreate"); //修改了快捷键名称 sysop 打印当前方法的所有参数列表及其值, 示例: System.out.println("savedInstanceState = [" + savedInstanceState + "]"); //修改了快捷键名称 sysov 打印一个变量值, 示例:System.out.println("arr = "+ arr); //修改了快捷键名称 (二)自定义活动模板 我自定义了几个常用功能,放在lzw组下面,如图所示: han: 自动生成一个类继承Handler swi 自定义switch/case选择语句 toli 把数组转成集合(自定义的,后面会讲解怎么自定义的) zs:注释模板 具体操作方式如下: (1)点击右边的“+” 加号,选择 Template Group,创建一个组,输入一个组名,点OK (2)找到刚创建的组,点击右边的“+” 加号,选择 Live Template,创建一个模板 (3)Abbreviation后面的输入框输入一个快捷键名称,Description后面的输入框输入描述 (4)点击下方的Define,勾选java前面的复选框 (5)Template text 输入自定义模板的代码内容 (6)点击右边的Edit variables,编辑指定的变量名 具体如下图所示: 三、File and Code Templates 文件和代码模板,这里讲一下自定义注释模板 (一) 类注释 从编程规范来讲:编写完成每个类都要有一个头部注释,标注类的功能描述,作者,联系方式和修改日期等。对自己的代码负责。 头部注释的添加有以下两种方式: (1)第一种方式,可以在AS中,Settings → Editor → File and Code Templates → Includes → File Header,输入: /** * 描述:添加类的描述 * @author yourName * @e-mail XXX@XX.com * @time ${DATE} */ 这样便可在每次新建类的时候自动加上该头注释,如下图所示: (2)第二种方式,在Settings → Editor → Live Templates中配置,如下图所示: 关于这里的 ,点击右边的Edit variables,属性配置成date() 这种方式是配置模板和对应的快捷键,比如我的配置完成后在类的开头输入 lzw 回车就会自动生成对应的注释模板: (二) 方法注释 每一个成员方法(包括自定义成员方法、覆盖方法、属性方法)的方法头都必须做方法头注释。 操作方式:在方法前一行输入 /** + 回车 或者设置 Fix doc comment(Settings → Keymap → Fix doc comment) 快捷键,AS便会帮你生成模板,我们只需要补全参数即可。 四、自定义UI模板,新建project或者module的时候,右键可以快速生成模板,比如点击新建Activity,可以选择EmptyActivity等。。 【说明】这个我也没做太多研究,以后有时间我研究一下,把它写到这篇博客里面来。有兴趣的的可以参考这篇文章 AndroidStudioTemplate。该文章对应的github地址是: AndroidStudioTemplate 另外:我看简书里面也有前辈写了相关文章,也可以去看看。 《android studio的自定义工程模板详解》 https://www.jianshu.com/p/c76facb61d69 《网易 Android 工程模板化实践》https://www.jianshu.com/p/4076b71f18a4 本文同步发表在github,欢迎观看,guithub地址:https://github.com/AweiLoveAndroid/The-pit-of-the-Android-Studio 到此为止,Android Studio的模板配置基本讲完了,有疑问的欢迎在下面留言。 【好消息】我的微信公众号正式开通了,关注一下吧! 关注一下我的公众号吧

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

MaxCompute Studio使用心得系列6——一个工具完成整个Python UDF开发

2017/12/20 北京云栖大会上阿里云MaxCompute发布了最新的功能Python UDF,万众期待的功能终于支持啦,我怎么能不一试为快,今天就分享如何通过Studio进行Python udf开发。 前置条件 了解到,虽然功能发布,不过还在公测阶段,如果想要使用,还得申请开通:https://page.aliyun.com/form/odps_py/pc/index.htm。这里我就不介绍申请开通具体流程了。 环境准备 MaxCompute Studio支持Python UDF开发,前提需要安装python, pyodps和idea的python插件。 安装Python:可以Google或者百度搜索下如何安装。 安装pyodps:可以参考python sdk文档的安装步骤。即,在 Python 2.6 以上(包括 Python 3),

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

用啥工具?往哪里去?

今天我主要是从两个方面去探讨DevOps,由于大部分的同学可能更多的是看到了运维这个层面,所以我更多侧重的是Dev这个层面,也就是从Dev到运维,因为正好是整个全流程走到这里,我们看到了一些实践,也看到了将来的一些机会和趋势,所以今天会谈一谈我们公司近两年做的过程,也就是我们怎么做DevOps。 一、从业务、系统发展看问题 从业务和系统的发展,我们来看当时面临的问题和解决的措施,有一些总结性和思考性的东西。就像程永新老师在企业级运维三板斧所说的,未来不是DevOps,关注方向的可能是AIOps这个层面,也就是说DevOps更要关注的是ADPaas平台,而在运维侧则更多的是AIOps,就像谷歌的系统是自治的,不需要人为介入,所以运维侧是要受到很大挑战的。 这是我当时加入公司时的一个基础组织架构,跟所有互联网公司,或者一些创业已经过了风险期

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

新书内容连载(3):Android SDK中常用命令行工具(一)

本文为原创,如需转载,请注明作者和出处,谢谢! 本文为新书《Android/OPhone 开发完全讲义》的内容连载。《Android/OPhone开发完全讲义》一书现已出版,敬请关注。 购买: 互动网 (china-pub) 《Android/OPhone 开发完全讲义》目录 源代码下载 上一篇: 新书内容连载(2):Android Activity的生命周期 1.启动和关闭ADB服务(adb start-server和adb kill-server) 经作者测试,模拟器在运行一段时间后,adb服务有可能(在Windows进程中可找到这个服务,该服务用来为模拟器或通过USB数据线连接的真机服务)会出现异常。这时需要重新对adb服务关闭和重启。当然,重启Eclipse可能会解决问题。但那比较麻烦。如果想手工关闭adb服务,可以使用下面的命令。 adb kill-server 在关闭adb服务后,要使用如下的命令启动adb服务。 adb start-server 2查询当前模拟器/设备的实例(adb devices) 有时需要启动多个模拟器实例,或启动模拟器的同时通过USB数据线连接了真机。在这种情况下就需要使用如下的命令查询当前有多少模拟器或真机在线。 adb devices 执行上面的命令后,会输出如图1所示的信息。 图1 其中第1列的信息(emulator-5554、HT9BYL904399)表示模拟器或真机的标识。emulator-5554表示模拟器,其中5554表示adb服务为该模拟器实例服务的端口号。每启动一个新的模拟器实例,该端口号都不同。HT9BYL904399表示通过USB数据线连接的真机。如果在运行Android程序时有多个模拟器或真机在线,那么会出现一个选择对话框。如果选择在真机运行,ADT会直接将程序安装在手机上。输出信息的第2列都是device,表示当前设备都在线。如果该列的值是offline,表示该实例没有被连接到adb上,或实例没有响应。3. 安装、卸载和运行程序(adb install、adb uninstall和am) 在Eclipse中运行Android程序必须得有Android源码工程。那如果只有apk文件(Android应用程序的发行包,相当于Windows中的exe文件)该如何安装和运行呢?答案就是adb命令。假设我们要安装一个ebook.apk文件,可以使用如下的命令。 adb install ebook.apk 假设ebook.apk中的package是net.blogjava.mobile.ebook,可以使用如下的命令卸载这个应用程序。 adb uninstall net.blogjava.mobile.ebook 关于package的概念在以后的学习中会逐渐体会到。现在只要知道package是Android应用程序的唯一标识即可。如果在安装程序之前,该程序已经在模拟器或真机上存在了,需要先使用上面的命令卸载这个应用程序,然后再安装。或使用下面的命令重新安装。 adb install -r ebook.apk 在卸载应用程序时可以加上-k命令行参数保留数据和缓冲目录,只卸载应用程序。命令如下所示。 adb uninstall -k net.blogjava.mobile.ebook 如果机器上有多个模拟器或真机实例,需要使用-s命令行参数指定具体的模拟器或真机。例如,下面的命令分别在模拟器和真机上安装、重新安装和卸载应用程序。 在emulator-5554模拟器上安装ebook.apk adb -s emulator-5554 install ebook.apk 在真机上安装ebook.apk adb -s HT9BYL904399 install ebook.apk 在emulator-5554模拟器上重新安装ebook.apk adb -s emulator-5554 install -r ebook.apk 在真机上重新安装ebook.apk adb -s HT9BYL904399 install -r ebook.apk 在emulator-5554模拟器上卸载ebook.apk(不保留数据和缓冲目录) adb -s emulator-5554 uninstall net.blogjava.mobile.ebook 在真机上卸载ebook.apk(保留数据和缓冲目录) adb -s HT9BYL904399 uninstall -k net.blogjava.mobile.ebook 如果在模拟器和真机上成功安装ebook.apk,将会分别输出如图2和图3所示的信息。 图2 图 3 如果想在模拟器或真机上运行已安装的应用程序,除了直接在模拟器或真机上操作外,还可以使用如下的命令直接运行程序。 在emulator-5554模拟器上运行ebook.apk adb -s emulator-5554 shell am start -n net.blogjava.mobile.ebook/net.blogjava.mobile.ebook.Main 在真机上运行ebook.apk adb -s HT9BYL904399 shell am start -n net.blogjava.mobile.ebook/net.blogjava.mobile.ebook.Main 其中Main是ebook.apk的主Activity。相当于Windows应用程序的主窗体或Web应用程序的主页面。am是shell命令。关于shell命令将在后成的部分详细介绍。 本文转自银河使者博客园博客,原文链接http://www.cnblogs.com/nokiaguy/archive/2010/07/05/1771125.html如需转载请自行联系原作者 银河使者

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

移动平台自动化测试从零开始-MonkeyRunner工具使用 (第二节)

选自:http://yuedu.baidu.com/ebook/d4d8b6121eb91a37f0115c1d 第2节 MonkeyRunner 安装部署 如果您已经正确的安装部署了Android环境,那么在您的Android SDK 的“tools”目录下将会有一个名称为“monkeyrunner.bat”的批处理文件, 如:这个文件在我机器的位置是“E:\android-sdk\tools”目录下,如图1所示。 图1 “monkeyrunner.bat”文件位置相关信息 双击图1中“monkeyrunner.bat”文件,将出现图2所示界面信息。 图2 “monkeyrunner.bat”运行后的显示信息 如果没有出现图2所示的界面,则说明您之前的安装配置可能有一些问题,需要检查以下相关内容是否成功部署: 1.JDK是否正确安装并设置了对应的环境变量; 2.Android SDK是否正确安装部署,并将Android SDK的“platform-tools”和“tools”路径添加到了“PATH”环境变量中; 3.为了更好的对脚本进行调试,建议大家下载Python,您可以到“https://www.python.org/downloads/”下载相应的软件版本,这里我们下载其对应的Windows版本,这里我们下载目前的最新64位版本,因为我本机用的是64位的Win7操作系统,如图3所示,下载完成以后进行安装,并将“python.exe”所在路径添加到PATH环境变量中,这部分内容比较简单,请读者朋友自行完成。 图3 Python Windows相关版本下载信息 Python安装并设置了环境变量后,您可以运行控制台命令,输入“python”后,若出现图4所示界面,代表python成功已经安装并设置,您可以通过输入“quit()”或者按“CTRL+Z”退出python,回到命令行提示符。 图4 Python运行相关的显示信息 关于这部分环境部署的内容,网上也有大量的安装部署这部分内容的资料,这里不再赘述。 本文转自 fish_yy 51CTO博客,原文链接:http://blog.51cto.com/tester2test/1650276,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

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

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

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

用户登录
用户注册