Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

Java 解析 apk 的签名

Java 解析 apk 的签名

Java解析apk的签名,是表示这个apk的唯一作者的。里面涉及到很多什么 私钥 公钥 之类的东西,反正是涉及的很严密,在网上的相关文档也不是很少。 说白了,就是不能轻易的让其他人去修改的你的签名,不能去修改的apk。要是修改了,签名就会发生变化,知道不是原生作者。我们就是为了判断一个apk的包,是否是原来的作者,就写一个Java的自动解析apk的签名的东西。获取到之后,当下次软件升级更新的时候,判断签名是否匹配,否则,不予以升级、更新之类的。网上写Jav...
jQuery ifame嵌套ifame 自适应高度

jQuery ifame嵌套ifame 自适应高度

前一段时间但见了一个小后台, 前期功能不多, 后期随着业务的添加,功能逐渐增加。内容也不断增加,发现当初实际ifame嵌套ifame来实现点击菜单的时候局部刷新功能不能满足当前的需要了。因为有的一个jsp界面可能很短,也可能变得很长。这导致ifame的高度要是写死的话,会变得非常难看。纠结了一段时间,终于狠下心来好好捯饬一下。完了之后,发现不是很难。自己被自己吓到了 呵呵 ~~~好了,废话说多了,开始编写代码。首先,既然是ifame嵌套ifame,就得需要...
Spring MVC 注释 + iBATIS 整合

Spring MVC 注释 + iBATIS 整合

MVC 是当前最主流的框架之一。收到广大开发者的热烈追捧。我也是受影响的人之一。因此,决定在新的项目中,使用 Spring MVC + mybatis 进行处理框架搭建。相对以前比较欢迎的SSI来说,缺少了struts2 的使用,自从上次struts的bug事件,导致现在我对struts还心有余悸。这次使用Spring代替struts也是有这方面的影响。好了,废话不多说,开始搭建环境。网上各种翻阅资料,好多。但是大体上都是说,在spring mvc + m...
Android事件传递机制以及onInterceptTouchEvent()和onTouchEvent()总结

Android事件传递机制以及onInterceptTouchEvent()和onTouchEvent()总结

老实说,这两个小东东实在是太麻烦了,很不好懂,我自己那api文档都头晕,在网上找到很多资料,才知道是怎么回事,这里总结一下,记住这个原则就会很清楚了:1、onInterceptTouchEvent()是用于处理事件(类似于预处理,当然也可以不处理)并改变事件的传递方向,也就是决定是否允许Touch事件继续向下(子控件)传递,一但返回True(代表事件在当前的viewGroup中会被处理),则向下传递之路被截断(所有子控件将没有机会参与Touch事件),同时...
用MapReduce做相似度分析

用MapReduce做相似度分析

Q:有一批数据(10亿量级),数据内容包括:列类型idINTcontentStringid为key,全局唯一content为一个句子列之间以 分割like:1 “互联网够公司的日志无处不在,web日志,js日志,搜索日志,监控日志等等”2 "对于这些日志的离线分析(Hadoop),wget&rsync虽然人力维护成本较高,但可以满足功能行需求。但对于这些日志的实时分析需求(例如实时推荐,监控系统),则往往必须要引入一些&ld...
Linux获取线程id的方法学习

Linux获取线程id的方法学习

最近一直在想:如何确认两段代码是不是在同一个线程中执行的呢?通过查看资料,发现一种比较简单的方法就是在代码中使用printf将当前线程的id打印出来。而这也分成两种情况:1. 如果是pthread,则使用,#include <pthread.h>pthread_t pthread_self(void);2. 如果不是pthread,即是由内核创建的线程,则使用,#include <sys/types.h>pid_t gettid(v...
Linux内核模块学习

Linux内核模块学习

模块是具有独立功能的程序,它能被单独编译,但不能独立运行。它可以在系统运行时动态的被链接到内核中作为内核的一部分在内核空间运行,所以内核模块提高了内核的可扩展性。查看当前系统中已经加载了哪些模块的方法是:1. 使用lsmod命令进行查看,sh-3.2# lsmod2. 直接查看/proc文件系统中的信息,sh-3.2# cat /proc/modules以上两种方法其实是一样的,都是查看当前系统中的模块加载状况。二者区别在于lsmod命令的结果是经过格式化...
C语言typedef关键字学习

C语言typedef关键字学习

typedef关键字用来给现有数据类型创建别名。typedef int size_t;所以下面的两个定义其实完全相同。size_t size;int size;咦,下面这样定义一个size_t的宏是不是也能达到一样的效果呢?#define size_t int在这里,确实define一个数据类型宏能达到同样的目的。但是typedef和define相比:define只会在预编译阶段进行简单的替换操作;typedef则会在编译阶段进行数据类型检查。所以相比于d...
C语言const关键字学习

C语言const关键字学习

在C语言中const关键字用来修饰一个变量,它限定一个变量不允许被修改。const int max_size = 5;看起来使用const修饰的变量,和使用宏很类似,为何不直接使用宏呢?#define MAX_SIZE (5)这是因为和宏比起来:1. const修饰的是一个变量,所以会在代码编译阶段进行语法检查。而宏只会在预编译阶段进行简单的替换动作;2. 使用const修饰的是一个变量,具有具体的数据类型,所以编译器会进行类型检查。3. 可以保护被修饰的...
Linux SHELL 抓取错误日志脚本

Linux SHELL 抓取错误日志脚本

背景任何程序运行起来免不了产生很多日志,其中错误日志需要最为关心的。在某些时候会将错误日志和正常日志分开,但我们的系统却没有这么做。更麻烦的是,每个小时存储一个日志文件,所以每次为了查找当天是否有错误信息需要打开N个文件,而且不能用grep因为需要把整个堆栈抓取下来。SHELL本人对shell完全是初学,磕磕碰碰写了个脚本。主要逻辑是判断ERROR的日志级别的那一行开始记录,直到碰到下一个INFO或者DEBUG的日志级别行。#!/bin/bashisInE...
Redis 客户端与服务端通信协议

Redis 客户端与服务端通信协议

背景在跟踪REDIS服务端处理命令流程的时候,发现在服务端processInputBuffer里收到的字符串并非是在客户端输入的,而是进行了某种编码。比如,客户端输入get a,实际服务端打印出来的是buf= *2$3get$1a最开始认为是在服务端某段代码对客户端送过来的字符串进行处理,可能是出于某些考虑,后来发现从SOCKET读取过来就已经转换过了,所以就应该是客户端和服务端的通信协议,我对这个就开始产生了很浓厚的兴趣,*和$符号必定是有特殊意义的。客...
Map对象用JSON反序列化的方法

Map对象用JSON反序列化的方法

我们项目组的A系统依靠B系统写入Redis中的数据对象工作。这个对象是一个Map对象,Map对象写入Redis很简单,先JSON化,然后Set入Redis即可。但是用JSON提供的反解析方法的时候,得到的是Map<String, JSONObject> 类型,而我希望得到的是Map<String, DDRouteRuleEntry>类型。也就是DDRouteRuleEntry类型并没有被正确的解析。只好顺应这个结果进行反序列化,然后...
<< 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 >>