首页 文章 精选 留言 我的

精选列表

搜索[SSR调试],共10002篇文章
优秀的个人博客,低调大师

通过Stetho在Chrome上调试Android App

引 入依赖包 compile 'com.facebook.stetho:stetho:1.3.1' 初始化一下 public class MyApplication extends Application { public void onCreate() { super.onCreate(); Stetho.initializeWithDefaults(this); } } 运行App, 打开Chrome输入chrome://inspect/#devices(别忘了用数据线把手机和电脑连起来哦) 注:使用必须得FQ 本文转自 netcorner 博客园博客,原文链接:http://www.cnblogs.com/netcorner/p/6732979.html ,如需转载请自行联系原作者

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

为什么HierachyViewer无法连接真机调试

关于什么是Hierarchy Viewer,请查看官方文档: http://developer.android.com/tools/debugging/debugging-ui.html。个人理解:Hierarchy Viewer能获得当前手机实时的UI信息,给界面设计人员和自动化测试人员带来极大的便利。 在Android的官方文档中提到: To preserve security, Hierarchy Viewer can only connect to devices running a developer version of the Android system. 即:出于安全考虑,Hierarchy Viewer只能连接Android开发版手机或是模拟器(准确地说,只有ro.secure参数等于0且ro.debuggable等于1的android系统)。Hierarchy Viewer在连接手机时,手机上必须启动一个叫View Server的客户端与其进行socket通信。而在商业手机上,是无法开启View Server的,故Hierarchy Viewer是无法连接到普通的商业手机。 Android源码实现这一限制的地方在: ANDROID源码根目录\frameworks\base\services\java\com\android\server\wm\WindowManageService.java 中的一段: ===================================================================================== publicbooleanstartViewServer(intport){ if(isSystemSecure()){ returnfalse; } if(!checkCallingPermission(Manifest.permission.DUMP,"startViewServer")){ returnfalse; } .... ===================================================================================== 检验一台手机是否开启了View Server的办法为: adb shell service call window 3 若返回值是:Result: Parcel(00000000 00000000 '........')" 说明View Server处于关闭状态 若返回值是:Result: Parcel(00000000 00000001 '........')" 说明View Server处于开启状态 若是一台可以打开View Server的手机(Android开发版手机 、模拟器or 按照本帖步骤给系统打补丁的手机),我们可以使用以下命令打开View Server: 使用以下命令关闭View Server: adb shell service call window 2 i32 4939 本文转自 一点点征服 博客园博客,原文链接: http://www.cnblogs.com/ldq2016/p/6668076.html ,如需转载请自行联系原作者

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

Android开发调试工具ADB的使用

ADB(Android Debug Bridge)是Android SDK中的一个工具, 使用ADB可以直接操作管理Android模拟器或者真实的Andriod设备。 ADB主要功能有: 1.在Android设备上运行Shell(命令行) 2.管理模拟器或设备的端口映射 3.在计算机和设备之间上传/下载文件 4.将电脑上的本地APK软件安装至Android模拟器或设备上 1、在使用ADB之前首先看看你的Eclipse中是否已经安装了Android SDK工具包,如下图: 这个USB 驱动也是需要的,用来连接你的Android设备。 ADB是一个客户端-服务器端程序, 其中客户端是你用来操作的电脑, 服务器端是android设备。 2、如果你已经安装了Android SDK 那么你可以在你的SDK目录下找到..\android-sdk-windows\platform-tools 这个目录,ADB工具就放在这里。如图: 复制这个目录的路径,我们需要在windows的系统设置中将这个路径设置到PATH中,设置完成后我们就可以再CMD窗口中使用ADB了。 3、我们现启动,我们的andriod虚拟机,然后进入CMD窗口。 这里的emulator-5554就是我的虚拟机设备 4、常用的ADB命令 a) adb install <apk文件路径> 这个命令将指定的apk文件安装到设备上 b) adb uninstall <软件名> adb uninstall -k <软件名> 如果加 -k 参数,为卸载软件但是保留配置和缓存文件. c)adb shell 这个命令将登录设备的shell adb shell <command命令> 后面加<command命令>将是直接运行设备命令, 相当于执行远程命令 d)adb help 这个命令将显示帮助信息 c)adb push <本地路径> <远程路径> 从电脑上发送文件到设备 adb remount 在执行push命令之前我们还需要使用remount命令获取上传文件权限,否则会出现 Read-only file system 的错误提示信息 示例如下图 这里要注意的就是如果你需要向一个二级目录里放文件的时候,一定使用"/"而不能使用"\",原因是android是liunx下的系统,而我们用的是windows。比如:sdcard/aa这样就好啦,否则会提示找不到或者权限不够。 d)adb get-product 获取设备的ID e)adb get-serialno 获取设备的序列号 f)adb devices 获取当前运行的模拟器/设备的实例的列表及每个实例的状态 g) adb bugreport 查看bug报告 5、常用的ADB Shell命令 通过adb shell命令进入shell a)访问数据库 sqlite3 b)记录无线通讯日志 一般来说,无线通讯的日志非常多,在运行时没必要去记录,但我们还是可以通过命令,设置记录: logcat-bradio c)删除应用 Android没有提供一个卸载应用的命令,需要自己手动删除: cd/data/app rm 应用名称.apk d)查看目录 ls e)打印或设置当前系统时间 date f)查看内存信息 cat/proc/meminfo g)查看CPU信息 cat/proc/cpuinfo 6、删除Android系统Rom自带的软件 a.确定手机root了,取得了root权限才能删除系统文件呀. b.下载Android_db.rar,解压到%windir/%System32下. c.手机连接数据线,在电脑上打开cmd,然后输入命令 adbremount adbshell su 执行完成之后,你会看到: * daemon not running. starting it now * * daemon started successfully * d.接着就是Linux命令行模式了,输入 cdsystem/app 你会发现没啥变化,然后输入ls回车. 这时候列表显示了system/app里面的所有文件,也就是Rom集成的一些软件了. e.开始删除吧!比如删除Youtube,他的文件名是Youtube.odex和Youtube.apk 我们要删除这2个文件,敲入以下命令: rmYoutube.* 重启,Youtube已经删除掉了,注意各位同学千万不要删除你不知道是啥的东西。 7、sqlite3 adb命令 进入数据库的两种方式 第一种:sqlite3 数据库名称.xx 第二种:adb shell sqlite3 .databases 列出数据库文件名 .tables ?PATTERN? 列出?PATTERN?匹配的表名 .import FILE TABLE 将文件中的数据导入的文件 .dump ?TABLE? 生成形成数据库表的SQL脚本 .output stdout 将输出打印到屏幕 .mode MODE ?TABLE? 设置数据输出模式(csv,html,tcl… .nullvalue STRING 用指定的串代替输出的NULL串 .read FILENAME 执行指定文件中的SQL语句 .schema ?TABLE? 打印创建数据库表的SQL语句 .separator STRING 用指定的字符串代替字段分隔符 .show 打印所有SQLite环境变量的设置 .quit 退出命令行接口 本文作者:佚名 来源:51CTO

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

kube-state-metrics组件的安装调试

在安装全家桶之前,可以先一个一个组件的突破。 上次试了一下node exporter用来导出服务器数据metrics。 而用于导出k8s集群数据的组件就是kube-state-metrics。它寄生于k8s,作为service存在。 项目地址:https://github.com/kubernetes/kube-state-metrics 最新docker tag:gcr.io/google_containers/kube-state-metrics:v0.5.0. 进阶需要了解kube-state-metrics 和 Heapster 的不同之处。 部署就简单了。。 kubectl apply -f kubernetes

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

[Docker系列·7] 使用nsenter调试Docker镜像

本文使用的环境是:搭建基于Docker的NPM私服Sinopia 获得nsenter 如果已经存在镜像压缩包 先解压再运行 erichan@ubuntu14_04_1-pd:~/docker-tars$ d load -i nsenter.tar erichan@ubuntu14_04_1-pd:~/docker-tars$ d run -v /usr/local/bin:/target jpetazzo/nsenter 如果本地没有 直接运行docker命令 从云端下载 erichan@ubuntu14_04_1-pd:~/docker-tars$ d run -v /usr/local/bin:/target jpetazzo/nsenter Installing nsenter to /target Installing docker

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

Visual Studio 2013 如何使用TitanEngine引擎库调试

前文已详细讲解泰坦引擎的编译生成方法,本章将进阶实操泰坦引擎应用开发,聚焦零基础实现C++调用泰坦引擎、进程附加分析核心能力。本文基于静态链接库模式编译生成的TitanEngine.lib库,搭配官方TitanEngine.h头文件完成环境配置,以打印PE节表信息为实战案例,手把手讲解C++接入泰坦引擎、实现简单进程附加分析的完整流程,补齐泰坦引擎从编译搭建到功能落地的实操教程,帮助开发者快速掌握引擎调用与基础逆向分析技巧。

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

GaussDB分区表DQL/DML业务报错调试

问题现象 使用分区表进行DQL/DML业务,出现业务报错。 原因分析 导致分区表DQL/DML业务报错的原因有很多,需要根据具体的报错内容和报错的业务模型,来判断属于哪些场景。 这里列出一些常见的报错场景: 开启行迁移开关后,并发UPDATE/DELETE报错 关闭行迁移开关后,跨分区更新导致的报错 插入数据无法路由到已有分区导致的报错 处理方法 判断是否为开启行迁移开关导致的并发UPDATE/DELETE报错 报错场景 如果业务报错为以下两种场景之一,则说明为开启行迁移开关导致的并发UPDATE/DELETE报错。 --UPDATE业务报错 ERROR: partition table update conflict DETAIL: disable row movement of table can avoid this conflict --DELETE业务报错 ERROR: partition table delete conflict DETAIL: disable row movement of table can avoid this conflict 原因分析 开启行迁移开关后,允许通过更新分区键的方式,将数据从一个分区更新到另一个分区;关闭行迁移开关后,如果业务试图将数据从一个分区更新到另一个分区,则业务会抛出报错。 开启/关闭行迁移开关的方法是创建分区表时申明ENABLE/DISABLE ROW MOVEMENT子句。也可以通过ALTER TABLE命令来修改: --开启分区表t1的行迁移开关 ALTER TABLE t1 ENABLE ROW MOVEMENT; --关闭分区表t1的行迁移开关 ALTER TABLE t1 DISABLE ROW MOVEMENT; 开启行迁移开关后,并发UPDATE/DELETE业务可能会报错。原因如下: UPDATE和DELETE操作对于旧数据都是标记为已删除。在打开行迁移开关情况下,如果更新分区键时,导致了跨分区更新,内核会把旧分区中旧数据标记为已删除,在新分区中新增加一条数据,无法通过旧数据找到新数据。 在UPDATE和UPDATE并发、DELETE和DELETE并发、UPDATE和DELETE并发三个并发场景下,如果并发操作同一行数据时,数据跨分区和非跨分区结果有不同的行为。 对于数据非跨分区结果,第一个操作执行完后,第二个操作不会报错。 如果第一个操作是UPDATE,第二个操作能成功找到最新的数据,之后对新数据操作。 如果第一个操作是DELETE,第二个操作看到当前数据已经被删除而且找不到最新数据,就终止操作。 对于数据跨分区结果,第一个操作执行完后,第二个操作会报错。 如果第一个操作是UPDATE,由于新数据在新分区中,第二个操作不能成功找到最新的数据,就无法操作,之后会报错。 如果第一个操作是DELETE,第二个操作看到当前数据已经被删除而且找不到最新数据,但无法判断删除旧数据的操作源于UPDATE还是DELETE。如果是UPDATE,报错处理。如果是DELETE,终止操作,为了保持数据的正确性,同样报错处理。 处理方法 如果业务明确不存在跨分区更新分区键的业务,可以关闭关闭行迁移开关。 如果业务确实存在跨分区更新分区键的业务,需要串行执行业务才能解决问题;或者考虑更换分区键。 判断是否为关闭行迁移开关导致的跨分区更新报错 报错场景 如果业务报错为以下场景,则说明为关闭行迁移开关导致的跨分区更新报错。 ERROR: fail to update partitioned table "t1" DETAIL: disable row movement 原因分析 关闭行迁移开关后,如果业务试图将数据从一个分区更新到另一个分区,则业务会抛出报错。 处理方法 如果业务确实存在跨分区更新分区键的业务,可以考虑打开行迁移开关,但需考虑是否可能会存在并发报错场景;或者考虑更换分区键。 判断是否为插入数据无法路由到已有分区导致的报错 报错场景 如果业务报错为以下场景,则说明为插入数据无法路由到已有分区导致的报错。 ERROR: inserted partition key does not map to any table partitiont 原因分析 导致这种场景出现的原因一般有两种,一种是因为分区定义不合理导致的业务异常,另一种是分区键类型设计不合理导致的比较异常。 分区定义不合理是指业务定义的分区结构无法满足全量表数据的匹配,有部分数据不属于任一已有分区。比如下面的业务就会抛出这种报错: CREATE TABLE t1 ( c1 integer, c2 integer ) PARTITION BY RANGE (c1) ( PARTITION p1 VALUES LESS THAN (100), PARTITION p2 VALUES LESS THAN (200) ) DISABLE ROW MOVEMENT; INSERT INTO t1 VALUES(1,1),(201,1); 分区键类型设计不合理是指使用了不合理的分区键类型,导致数据的比较规则并不符合用户预期场景。比如按照字典序规则,字符串’9’比’100’大。下面的业务就会抛出这种报错: CREATE TABLE t1 ( c1 varchar, c2 integer ) PARTITION BY RANGE (c1) ( PARTITION p1 VALUES LESS THAN ('100'), PARTITION p2 VALUES LESS THAN ('200') ) DISABLE ROW MOVEMENT; INSERT INTO t1 VALUES('9',1); 处理方法 如果是分区定义不合理导致的业务异常,需要重新设计分区结构。可以使用分区DDL命令,比如ADD分区、SPLIT分区、MERGE分区等来调整分区结构。 如果是分区键类型设计不合理导致的比较异常,目前不支持修改分区键所在列的类型,需要重新创建分区表。

资源下载

更多资源
Mario

Mario

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

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应用均可从中受益。

WebStorm

WebStorm

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

用户登录
用户注册