首页 文章 精选 留言 我的

精选列表

搜索[图数据库],共10000篇文章
优秀的个人博客,低调大师

网络直播被严查,机器如何帮助鉴别小黄图?

近日,文化部将19家不合规定的直播平台列入查处名单。 作为新型的社交互动平台,网络直播与传统的视频网站不同,当用户上传内容后,传统的视频网站会进行审核,符合标准后才可上传成功,而网络直播都是实时播出的,如果有人在网上传播不良信息或者发布违规内容,即使被查处,也是播出之后的事情。 虽然,大多数直播企业会选择人工审核的方式对直播内容进行实时监管,但是在过去的一年多里,“直播造人门”、“直播脱衣门”等事件仍然频繁发生。某直播平台负责人曾表示,视频直播从技术不需要“上传”这个步骤,当手机按下摄影功能键,云端会同步抓取、同步存储、同步传递,“延迟不会超过2秒”。在这个过程中,平台面临的困惑是“无法掌控直播下一秒会发生什么”,所以只能依靠人力进行24小时轮班审核,但是人工审核存在的问题较多,直播内容监管风险依旧存在。 ◆◆◆ 直播内容监管存在哪

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

基于MaxCompute的图计算实践分享-Aggregator机制介绍

更多精彩内容参见云栖社区大数据频道https://yq.aliyun.com/big-data,此外,通过Maxcompute及其配套产品,大数据分析仅需几步,详情访问https://www.aliyun.com/product/odps。 Aggregator是MaxCompute-GRAPH作业中常用的feature之一,特别是解决机器学习问题时。MaxCompute-GRAPH中Aggregator用于汇总并处理全局信息。本文将详细介绍的Aggregator的执行机制、相关API,并以Kmeans Clustering为例子说明Aggregator的具体用法。 Aggregator机制 如图1所示,Aggregator的逻辑分两部分,一部分在所有Worker上执行,即分布式执行,另一部分只在AggregatorOwner所在Wor

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

Robotium自动化测试框架实用教程(图)

一、简介 Robotium是一款国外的Android自动化测试框架,主要针对Android平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作(点击、长按、滑动等)、查找和断言机制的API,能够对各种控件进行操作。Robotium结合Android官方提供的测试框架达到对应用程序进行自动化的测试。另外,Robotium4.0版本已经支持对WebView的操作。Robotium对Activity,Dialog,Toast,Menu都是支持的。 二、相关下载 源码获取:http://code.google.com/p/robotium/ 源API文档:http://robotium.googlecode.com/svn/doc/index.html robotium5.1下载和最新API文档:http://pan.baidu.com/s/1bnlO8MF 官方例子记事本:http://pan.baidu.com/s/1qWLVL72 重签名工具:http://pan.baidu.com/s/1i3H0tKD 三、常用语法 1.等待timeout毫秒一个名字为name的Activity启动: waitForActivity(String name, int timeout) 实例:assertTrue("无法启动启动类", solo.waitForActivity ("MainActivity", 30000)); 2.Robotium将睡眠设置的毫秒数:sleep(int time) 实例:solo.sleep(5000) 3.清空EditText的内容:clearEditText(android.widget.EditText editText) 实例:solo.clearEditText((EditText)solo.getView ("edtInsertName")) 4.根据按钮上的文字点击按钮:clickOnButton(String text) 实例:solo.clickOnButton("^绿色$"); 5.根据文字点击控件:clickOnText(String text) 实例:solo.clickOnText("控件上显示文字"); 6.输入内容:enterText(android.widget.EditText editText, String text) solo.enterText((EditText)solo.getView("edtInsertName"), "说些什么好呢?"); 7.返回:goBack() 8.截屏并保存为设置的名字:takeScreenshot(String name) 默认保存在: /sdcard/Robotium-Screenshots/ 9.解锁屏幕:unlockScreen() 四、实战-针对APK进行的测试 被测试项目为demo1,下面是实战的具体步骤 1. 配置ANDROID_HOME为android sdk的安卓目录,例如:D:\android-sdk 2. 在path下添加这两个:%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools; 3. 需要把APK重新签名,因为robotium要求被测应用和测试代码要有一致的签名, 所以我们需要把下载到的apk,通过re-sign.jar来产生debug key的apk,这个重新生成的apk就会跟测试项目签名一致了 4. 下载完后,需要配置ANDROID_HOME,就是安卓SDK的位置,然后把APK拉到图标上,就会自动生成一个debug key的apk,如果无法直接单击re-sign.jar运行,需要切换到放置该jar文件的目录,cmd执行java -jar re-sign.jar产生新apk的过程中会弹出一个信息框,记得截下图,因为里面有两个信息我们等会的代码中需要用到 5. 安装产生的apk。然后打开模拟器(模拟器器一定要打开才能安装成功),然后打开命令行 adb install mitalk_debug.apk(新生成apk的名称) , 或者双击apk文件也可以安装 安装成功就可以再模拟器里看到该应用的图标了 6. 打开Eclipse,点击File->New一个Android Test ProjectTestDemo1,然后点击下一步的时候选择This project(因为我们测试的是APK),然后选择要在哪个android版本上测试 7. 在该项目下创建一个包,com.example.demo1.test,在该包下创建TestDemo1Apk类,如下 package com.example.demo1.test; import com.robotium.solo.Solo; import android.test.ActivityInstrumentationTestCase2; import android.widget.EditText; @SuppressWarnings("rawtypes") public class TestDemo1Apk extends ActivityInstrumentationTestCase2 { private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME = "com.example.demo1.MainActivity";//启动类 private static Class<?> launcherActivityClass; static{ try { launcherActivityClass = Class.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME); } catch (ClassNotFoundException e) { throw new RuntimeException(e); } } @SuppressWarnings("unchecked") public TestDemo1Apk() throws ClassNotFoundException { super(launcherActivityClass); } private Solo solo; @Override protected void setUp() throws Exception { solo = new Solo(getInstrumentation(), getActivity()); } public void testcase001() throws Exception { //等待 Activity "MainActivity" 启动 assertTrue("无法启动启动类", solo.waitForActivity("MainActivity", 30000)); solo.sleep(5000); //输入文字:"131243" solo.enterText((EditText)solo.getView("edtInsertName"), "说些什么好呢?"); solo.sleep(2000); //清空输入框的内容 solo.clearEditText((EditText)solo.getView("edtInsertName")); //按下 按钮 "绿色" solo.clickOnButton("^绿色$"); solo.sleep(2000); //按下 按钮 "黄色" solo.clickOnButton("^黄色$"); solo.sleep(2000); //按下 按钮 "蓝色" solo.clickOnButton("^蓝色$"); solo.sleep(2000); //按下 TextView "看我变变变~~~" solo.clickOnText("^看我变变变~~~$"); solo.sleep(5000); } @Override public void tearDown() throws Exception { solo.finishOpenedActivities(); } } 8.右键该项目,选择property然后选择java build path, 选择 Add JARs,选择下到的robotium.jar Add Library,点击Junit,选择Junit4 9.在跑测试用例之前,还需要修改下AndroidManifest.xml文件的android:targetPackage为被测应用的根的包名 <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.example.demo1" /> 10.最后: run as android junit test,就可以进行测试了 源码下载:http://pan.baidu.com/s/1ybPUI 五、实战-针对工作目录下的项目 被测试项目为demo1,下面是实战的具体步骤 1.新建一个测试项目名为demo1Test Eclipse-File-Project-Android Test Project 测试项目名为demo1Test,测试目标项目选择demo1 2.添加必要类库,robotium和junit (1)在项目中新建lib目录,把robotium-solo-5.1.jar和robotium-solo-5.1-javadoc.jar拉进该目录。 (2)添加junit4 3.添加robotium 4.创建测试用例 右键点击包-New-JUnit Test Case 最基础的测试用例框架类 package com.example.demo1.test; import com.example.demo1.MainActivity;//导入目标项目的启动类 import android.test.ActivityInstrumentationTestCase2; import com.robotium.solo.Solo; public class TestDemo1 extends ActivityInstrumentationTestCase2<MainActivity>{//继承目标项目的启动类 private Solo solo;//初始化一个solo对象 public TestDemo1() {//在构造函数处标明继承自目标项目的启动类 super(MainActivity.class); } @Override public void setUp() throws Exception {//在测试开始之前会调用这个方法,这里来创建一个Solo对象 solo = new Solo(getInstrumentation(), getActivity()); } @Override public void tearDown() throws Exception {//一个测试用例结束的时候会调用这个方法 solo.finishOpenedActivities();//这个方法将结束掉所有在测试执行过程中打开的activity } } 在基础测试类里面添加相关的测试方法,也就是真正在执行的测试用例 package com.example.demo1.test; import com.example.demo1.MainActivity;//导入目标项目的启动类 import android.test.ActivityInstrumentationTestCase2; import android.widget.EditText; import com.robotium.solo.Solo; public class TestDemo1 extends ActivityInstrumentationTestCase2<MainActivity>{//继承目标项目的启动类 private Solo solo;//初始化一个solo对象 public TestDemo1() {//在构造函数处标明继承自目标项目的启动类 super(MainActivity.class); } @Override public void setUp() throws Exception {//在测试开始之前会调用这个方法,这里来创建一个Solo对象 solo = new Solo(getInstrumentation(), getActivity()); } public void testcase001() throws Exception { //等待 Activity "MainActivity" 启动 assertTrue("无法启动启动类", solo.waitForActivity("MainActivity", 30000)); solo.sleep(5000); //输入文字:"131243" solo.enterText((EditText)solo.getView("edtInsertName"), "说些什么好呢?"); solo.sleep(2000); //清空输入框的内容 solo.clearEditText((EditText)solo.getView("edtInsertName")); //按下 按钮 "绿色" solo.clickOnButton("^绿色$"); solo.sleep(2000); //按下 按钮 "黄色" solo.clickOnButton("^黄色$"); solo.sleep(2000); //按下 按钮 "蓝色" solo.clickOnButton("^蓝色$"); solo.sleep(2000); //按下 TextView "看我变变变~~~" solo.clickOnText("^看我变变变~~~$"); solo.sleep(5000); } @Override public void tearDown() throws Exception {//一个测试用例结束的时候会调用这个方法 solo.finishOpenedActivities();//这个方法将结束掉所有在测试执行过程中打开的activity } } 源码共享:http://pan.baidu.com/s/1mgKcgju 六、一些特殊设置的说明 1.添加到库内需要先新建Lib目录,再把robotium-solo-5.2.1.jar放到里面,这样移动项目就不会找不到 2.测试项目的AndroidManifest.xml里面 <uses-sdk android:minSdkVersion="10" />需要在8以上,而且要跟被测试的项目一样大 3.需要勾选 4.最细节的就是:构造方法必须是无参数的,新建的测试用例一般都是有参数的: publicTestHelloWorldCase(){ super(HerlloActivity.class); } 5.测试APK的时候需要重签名,然后再安装进去,才可以正常测试 6.如何配置Robotium的帮助提示 右键点击项目-Build Path-configureBuild Path 7.robotium不同版本的方法不同 robotium的getCurrentListViews 1.版本3.6版本和4.1以上版本的表达方式 3.6版本:ArrayList<ListView> lw = solo.getCurrentListViews(); 4.1版本以上:ArrayList<ListView> lw = solo.getCurrentViews(ListView.class); 还有如: ArrayList<ImageView> imageList=solo.getCurrentViews(ImageView.class);得到的即是ImageView ArrayList<ImageView> imageList=solo.getCurrentViews(ImageView.class,parentView); 8.如何获取控件ID-两种方法 (1)Android 实用工具Hierarchy Viewer实战 是随AndroidSDK发布的工具,位置在tools文件夹下,名为hierarchyviewer.bat 需要运行测试项目,在调试环境下才可以检测到模拟器的 (2)运行命令行记录log,然后点击对应Activity,接着可以在logcat看到

资源下载

更多资源
Nacos

Nacos

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

Spring

Spring

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

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

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

用户登录
用户注册