源码

用SignApk.jar对APK进行签名

自作多情 提交于 2019-12-06 10:28:08
  对apk签名需要使用SignApk.jar和签名文件。可以使用Android源码获取,若没有源码,可以在这下载: SignApk.jar 。(包含了SignApk.jar和签名文件和批处理文件) 1 SignApk.jar SignApk.jar是安卓源码包中的一个签名工具,代码位于Android源码目录下的/build/tools/signapk/SignApk.java文件中。可以编译生成SignApk.jar。 编译生成SignApk.jar步骤:   ①进入/build/tools/signapk/文件夹   ②执行命令: mm   ③在out/host/linux-x86/framework/目录找到signapk.jar。 2 签名文件   Android源码目录/build/target/product/security/中找到platform.pk8 platform.x509.pem等签名文件,把platform.pk8 与platform.x509.pem 拷贝出来。  签名文件也可直接下载,下载地址:https://android.googlesource.com/platform/build/+/donut-release/target/product/security/。 3 使用SignApk.jar进行签名 PS

LSB乐刷宝现成源码开发

青春壹個敷衍的年華 提交于 2019-12-06 10:25:28
  LSB乐刷宝系统开发咨询蔡生:191电5743微0737,LSB乐刷宝APP开发,LSB乐刷宝理财平台开发,LSB乐刷宝软件开发,LSB乐刷宝现成源码开发,LSB乐刷宝模式软件开发,LSB乐刷宝刷单软件开发,LSB乐刷宝app系统开发,LSB乐刷宝理财平台搭建,LSB乐刷宝app源码开发,LSB乐刷宝模式系统开发,LSB乐刷宝模式开发,LSB乐刷宝平台开发   从竞争格局角度来看,在经历了野蛮式生长后,大多数细分行业的洗牌已经完成,拥有资本和先发优势的巨头在行业类的领先地位得到巩固,格局走向稳定,行业集中度逐渐提高。消费互联网巨头在产业互联网领域优势不在   LSB乐刷宝模式app开发   乐刷宝赚钱APP,让您躺着也能赚钱的APP,佣金当天清算,当天可提款   新用户注册送1000元体验金   体验金平台次日20:00自动收回   平台体验金不允许提现,所赚佣金归会员所有   乐刷宝APP特点   平台会员抢单佣金统一为订单金额的0.35%,订单金额大小为平台随机,默认您的账户余额的百分10到百分70之间生成订单,每位会员每天可以刷50单   乐刷吧APP通过系统内置的智能广告机器人自动刷广告、赚取广告佣金的一种新型模式;乐刷吧智能广告机器人采用实时动态+静态收益机制,收益主要是按照点击量和推广的粉丝量来计算,刷的广告越多,广告佣金就越多,会员名下的粉丝量越多,推广佣金就越多

LSB乐刷宝app源码开发

安稳与你 提交于 2019-12-06 10:24:05
  LSB乐刷宝系统开发咨询蔡生:191电5743微0737,LSB乐刷宝APP开发,LSB乐刷宝理财平台开发,LSB乐刷宝软件开发,LSB乐刷宝现成源码开发,LSB乐刷宝模式软件开发,LSB乐刷宝刷单软件开发,LSB乐刷宝app系统开发,LSB乐刷宝理财平台搭建,LSB乐刷宝app源码开发,LSB乐刷宝模式系统开发,LSB乐刷宝模式开发,LSB乐刷宝平台开发   从竞争格局角度来看,在经历了野蛮式生长后,大多数细分行业的洗牌已经完成,拥有资本和先发优势的巨头在行业类的领先地位得到巩固,格局走向稳定,行业集中度逐渐提高。消费互联网巨头在产业互联网领域优势不在   LSB乐刷宝模式app开发   乐刷宝赚钱APP,让您躺着也能赚钱的APP,佣金当天清算,当天可提款   新用户注册送1000元体验金   体验金平台次日20:00自动收回   平台体验金不允许提现,所赚佣金归会员所有   乐刷宝APP特点   平台会员抢单佣金统一为订单金额的0.35%,订单金额大小为平台随机,默认您的账户余额的百分10到百分70之间生成订单,每位会员每天可以刷50单   乐刷吧APP通过系统内置的智能广告机器人自动刷广告、赚取广告佣金的一种新型模式;乐刷吧智能广告机器人采用实时动态+静态收益机制,收益主要是按照点击量和推广的粉丝量来计算,刷的广告越多,广告佣金就越多,会员名下的粉丝量越多,推广佣金就越多

【小盘子看源码-MyBatis-1】MyBatis配置文件的加载流程

青春壹個敷衍的年華 提交于 2019-12-06 10:02:23
众所周知, Mybatis 有一个全局的配置,在程序启动时会加载XML配置文件,将配置信息映射到 org.apache.ibatis.session.Configuration 类中,例如如下配置文件。 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!--resource="db.properties"--> <properties resource="db.properties"> <property name="test" value="123456"></property> </properties> <settings> <!-- 控制全局缓存(二级缓存)--> <setting name="cacheEnabled" value="true"/> <!-- 延迟加载的全局开关。当开启时,所有关联对象都会延迟加载。默认 false --> <setting name="lazyLoadingEnabled" value="true"/> <!-- 当开启时

deb ubuntu debian

痴心易碎 提交于 2019-12-06 09:24:53
Linux系统中,软件通常以源代码或者预编译包的形式提供。 软件源代码需要您亲自编译为二进制的机器代码才能够使用,安装比较耗时,不过您可以自行调节编译选项,决定您需要的功能或组件,或者针对您的硬件平台作出优化。 预编译的软件包,通常是由软件的发布者进行编译,您只要将软件拷贝到系统中就可以了。考虑到预编译软件包的适用性,预编译软件包通常不会针对某种硬件平台优化。它所包含的功能和组件也是通用的组合。 Ubuntu系统中,软件通常以“deb”格式的包文件发布,它是一种预编译软件包。deb包中除了包含已编译的软件,通常还包括软件的拷贝路径、对其它软件包的依赖关系纪录、一个比较通用的配置文件以及软件的描述、版本、作者、类别、占用空间等信息。 deb软件包命令遵行如下约定: soft_ver-rev_arch.deb soft为软件包名称,ver为软件版本号,rev为Ubuntu修订版本号,arch为目标架构名称 例如:azureus_2.4.0.2-0ubuntu2_all.deb 您需要使用“dpkg”命令来管理deb软件包: dpkg -i | --install xxx.deb 安装deb软件包 dpkg -r | --remove xxx.deb 删除软件包 dpkg -r -P | --purge xxx.deb 连同配置文件一起删除 dpkg -I | -info xxx.deb

ConcurrentHashMap源码走读

元气小坏坏 提交于 2019-12-06 08:41:50
目录 ConcurrentHashMap源码走读 简介 放入数据 容器元素总数更新 容器扩容 协助扩容 遍历 ConcurrentHashMap源码走读 简介 在从JDK8开始,为了提高并发度, ConcurrentHashMap 的源码进行了很大的调整。在JDK7中,采用的是分段锁的思路。简单的说,就是 ConcurrentHashMap 是由多个 HashMap 构成。当需要进行写入操作的时候,会寻找到对应的 HashMap ,使用 synchronized 对对应的 hashmap 加锁,然后执行写入操作。显然,并发程度就取决于 HashMap 个数的多少。而在JDK8中换了一种完全不同的思路。 首先,仍然是使用 Entry[] 作为数据的基本存储。但是锁的粒度被缩小到了数组中的每一个槽位上,数据读取的可见性依靠 volatile 来保证。而在尝试写入的时候,会将对应的槽位上的元素作为加锁对象,使用 synchronized 进行加锁,来保证并发写入的安全性。 除此之外,如果多个Key的 hashcode 在取模后落在了相同的槽位上,在一定数量内(默认是8),采用链表的方式连接节点;超过之后,为了提高查询效率,会将槽位上的节点转为使用红黑树结构进行存储。 还有一个比较大的改变在于当进行扩容的时候,除了扩容线程本身,如果其他线程识别到了扩容进行中,则会尝试协助扩容。

dubbo-源码阅读之服务发布

你离开我真会死。 提交于 2019-12-06 08:39:11
原理 dubbo根据spring 2.0的schma实现 解析xml并初始化相关bean 初始化dubbo:service为ServiceBean实例 通过spring的生命周期相应回调实现服务发布 ServiceBean源码 /** * InitializingBean * 1.初始化的时候会调用afterPropertiesSet方法 * 2.优先级高于init-method * 3.如果afterPropertiesSet出现异常 则不调用init-method * DisposableBean * 1.当调用context.close的时候会执行destroy * ApplicationContextAware * 1.初始化对象会传入spring上下文容器 * ApplicationListener事件 * 1.ContextRefreshedEvent * ApplicationContext 被初始化或刷新时,该事件被发布。这也可以在 ConfigurableApplicationContext接口中使用 refresh() 方法来发生。 * 此处的初始化是指:所有的Bean被成功装载,后处理Bean被检测并激活,所有Singleton Bean 被预实例化,ApplicationContext容器已就绪可用 * 2.ContextStartedEvent * 当使用

SpringMvc源码解析

半世苍凉 提交于 2019-12-06 08:26:41
SpringMvc源码解析 转载自:https://www.cnblogs.com/xyz-star/p/9952060.html 最近公司这边在考虑Api gateway,准备用zuul来实现,借此机会,把SpringMvc又了解了下 SpringMvc我相信大家都有用过,但SpringMvc的整个执行流程,不知道大家是否了解。今天主要是针对SpringMvc的执行流程及原理和大家做个分享。 首先,我们可以通过一张图来了解SpringMvc的执行流程 任何一个框架,都有自己特定的适用领域,框架的设计和实现,必定是为了应付该领域内许多通用的,烦琐的、基础的工作而生。SpringMvc作为一个表现层框架,也必须直面Web开发领域中表现层中的几大点: 1、URL到框架的映射 2、http请求参数绑定 3、http响应的生成和输出 那SpringMvc到底是怎么完成以上所述的问题的呢? 下面我以一个Http请求流程,依次介绍SpringMvc整个执行流程,及相关核心接口与类: 用户在浏览器中输入http://www.xxx.com/abc/1的地址,回车后,浏览器发起一个http请求。请求到达服务器后,首先会被SpringMvc注册在web.xml中的前端转发器DispatcherServlet接收,DispatcherServlet是一个标准的servlet

.NET Core 3.0之深入源码理解HealthCheck(一)

牧云@^-^@ 提交于 2019-12-06 07:51:57
写在前面 我们的系统可能因为正在部署、服务异常终止或者其他问题导致系统处于非健康状态,这个时候我们需要知道系统的健康状况,而 健康检查可以帮助我们快速确定系统是否处于正常状态。一般情况下,我们会提供公开的HTTP接口,用于专门化健康检查。 NET Core提供的健康检查库包括Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions和Microsoft.Extensions.Diagnostics.HealthChecks。这两个库共同为我们提供了最基础的健康检查的解决方案,后面扩展的组件主要有下面几个,本文不作其他说明。 AspNetCore.HealthChecks.System AspNetCore.HealthChecks.Network AspNetCore.HealthChecks.SqlServer AspNetCore.HealthChecks.MongoDb AspNetCore.HealthChecks.Npgsql AspNetCore.HealthChecks.Redis AspNetCore.HealthChecks.AzureStorage AspNetCore.HealthChecks.AzureServiceBus AspNetCore.HealthChecks.MySql

MyBatis源码阅读

血红的双手。 提交于 2019-12-06 06:50:36
编程式开发使用MyBatis 在研究MyBatis源码之前,先来看下单独使用MyBatis来查询数据库时是怎么做的: 1 InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml"); 2 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); 3 SqlSession sqlSession = sqlSessionFactory.openSession(); 4 BlogMapper blogMapper = sqlSession.getMapper(BlogMapper.class); 5 Blog blog = blogMapper.selectByBlogId("1"); 6 System.out.println(blog.toString()); 第一步:把全局配置文件读取成流; 第二步:SqlSessionFactoryBuilder根据配置文件构建SqlSessionFactory; 第三步:SqlSessionFactory通过调用openSession()方法创建会话SqlSession; 第四步