刘望舒 刘望舒
4年前
Android深入理解JNI(二)类型转换、方法签名和JNIEnv
Android框架层Android深入理解JNIAndroid框架层本文首发于微信公众号「刘望舒」前言上一篇文章介绍了JNI的基本原理和注册,这一篇接着带领大家来学习JNI的数据类型转换、方法签名和JNIEnv。<!more1.数据类型的转换首先给出上一篇文章中androidmediaMediaRecorder.cpp中的androidmediaMe
Irene181 Irene181
4年前
Python图形用户界GUI大解密(上篇)
在我们平时写代码的时候,为了让程序效果显得更直观,我们通常都会给它们套上一层美丽的外衣,这层外衣便是GUI,中文名又叫,图形用户接口,能起到很好的交互作用。下面我们来着重介绍下Python中自带的GUI模块tkinter,看看它有哪些丰富的图形接口吧。1.安装并导入哦,tkinter库系统自带,无需安装,直接导入即可:importtkinterast
刘望舒 刘望舒
4年前
Android包管理机制(二)PackageInstaller安装APK
Android框架层Android包管理机制Android框架层本文首发于微信公众号「刘望舒」前言在本系列上一篇文章中我们学习了PackageInstaller是如何初始化的,这一篇文章我们接着学习PackageInstaller是如何安装APK的。本系列文章的源码基于Android8.0。1.PackageInstaller中的处理紧接着上一篇的内
刘望舒 刘望舒
4年前
Android包管理机制(四)PMS的创建过程
Android框架层Android包管理机制Android框架层本文首发于微信公众号「刘望舒」<!more前言PMS的创建过程分为两个部分进行讲解,分别是SyetemServer处理部分和PMS构造方法。其中SyetemServer处理部分和AMS和WMS的创建过程是类似的,可以将它们进行对比,这样可以更好的理解和记忆这一知识点。1.SyetemS
刘望舒 刘望舒
4年前
Android深入四大组件(二)Service的启动过程
Android框架层Android深入四大组件categories:Android框架层本文首发于微信公众号「刘望舒」前言此前我用较长的篇幅来介绍Android应用程序的启动过程(根Activity的启动过程),这一篇我们接着来分析Service的启动过程。建议阅读此篇文章前,请先阅读和这两篇文章。<!more1.ContextImpl到Activi
Wesley13 Wesley13
3年前
HTTPS加密原理
http(超文本传输协议)一种属于应用层的协议缺点:1.通信使用明文(不加密),内容可能会被窃听2.不验证通信方的身份,因此有可能遭遇伪装3.无法证明报文的完整性,所以有可能已遭篡改优点:1.传输速度快httpsHTTPS并非是应用层的一种新协议。只是HTTP
Stella981 Stella981
3年前
Django 之redis的应用
redis概述redis是一种nosql数据库,他的数据是保存在内存中,同时redis可以定时把内存数据同步到磁盘,即可以将数据持久化,并且他比memcached支持更多的数据结构(string,list列表队列和栈,set集合,sortedset有序集合,hash(hash表))
Stella981 Stella981
3年前
RabbitMQ(一)
系列说明本系列主要讲解RabbitMQ,讲解其特性,例如消息持久化、消息TTL、消息的优先、延迟消息、消息可靠性、消费模式以及在SpringBoot中使用RabbitMQ,代码在我的Github上(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fgithub.com%2F
Stella981 Stella981
3年前
Quartz.Net使用
Quartz.Net使用标签:Quartz.Net在最近工作中,需要在不同时间及不同条件下定时发送通知及消息,最初使用System.Timers.Timer实现。虽然使用简单,随着需要定时处理的任务增多,考虑到System.Timers.Timer如下缺点:Timer没有持久化机制;
Wesley13 Wesley13
3年前
Java Servlet单元测试
JavaServlet单元测试1\.解决痛点虽然目前主流的开发方式,很多都是通过controll或者微服务提供api.但是不免还是需要写几个servlet完成接口开发.按照常规,servlet调用服务层代码,只需做下服务层单元测试就好了.可是,这里就忽略了请求参数处理过程的测试,按照以往,如果需要测试,往往是先运行一个t