数据恢复是指通过正常途径不能恢复的数据通过一定的技术手段恢复的过程概述所谓数据恢复技术,是指当计算机存储介质损坏,导致部分或全部数据不能访问读出时,通过一定的方法和手段将数据重新找回,使信息得以再生的技术。
常见的数据恢复软件有EasyRecovery、SanDisk RescuePRO等。
EasyRecovery TM (易恢复中国)是由全球著名数据厂商Ontrack ® 出品的一款数据文件恢复软件。支持恢复不同存储介质数据:硬盘、光盘、U盘/移动硬盘、数码相机、Raid文件恢复等,能恢复包括文档、表格、、音视频等各种文件。
EasyRecovery支持恢复的文件类型
文档:MDB、ACCDB、PDF、PS、CWK、FM3、FMT、WK1、WK3、WK4、Office、SDW、QXD、QXP、EPS、QBB、QBW、WPD、MHT、MHTML、DBF、CAS、JSP、NBP、ASPX、PHP、ABD、QDF、QSD、RTF、TAX、HLP等
文件夹:文件夹数据,以及包含在文件夹里面的内容,我们可以帮助您轻松恢复
电子邮件:Outlook Express、Outlook、Eudora、Mozilla Becky、Windows Live Mail
视频:WMF、ANT、WMV、RM、QT、MOV、MXF、MPEG、M3D、ANM、DVM、AVI、MTS、AVS、MOI、FLV等
音频:AAC、AIFF、CDA、M4A、M4V、MIDI、MP3、MP4、MOS、MEF、OGM、RA、RPS、RFL、RNS、ARW、SR2、SRF、WMA、WAV等
照片:GIF、PAT、XCF、JPEG、JPG、PCT、MNG、PNG、TIFF、TIF、MSP、CPT、BMP、DWG、PSD、INDD、EPS、CR2、CRW、WP、CDR等
EasyRecovery支持恢复的存储设备
DexClassLoader可以加载jar/apk/dex,可以从SD卡中加载未安装的apkPathClassLoader只能加载系统中已经安装过的apk
至于具体源码区别:建议读一下DVM源码。本篇不再赘述,之后专门写一篇博客讲述DexClassLoader和PathClassLoader的区别。
加载外部APK
其实这个场景是这样的:
从服务器下载APK,保存在我们的手机储存卡内
读取APK文件,然后生成对应的DexClassLoader
通过DexClassLoader的loadClass方法读取插件APK dex中的任何一个类。
说干就干,首先我们创建一个项目MyPluginProject,在这个项目中创建一个Java类:TestModel
/
author: liumengqiang
Date : 2019/7/27
Description :
/
public class TestModel {
private String name;
public void setName(String name) {
thisname = name;
}
public String getName() {
return name;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
然后打包此项目生成:app-debugapk。
由于插件APK基本都是从服务器下载,为了模拟这个场景,我们需要在宿主项目中新建一个assets文件,将插件APK复制进去,然后在复制到宿主APP的data/data/files文件夹下。
注意:这里之前钻牛角尖了,就是为什么我不直接手动将插件APK直接复制到data/data/files,文件夹下呢? 说干就干,但是问题来了,我在文件管理器的当前Android/data/<包名>下找不到此包名,也就是说没有生成包路径。 说实话卡了很长时间,我一直以为是不是版本问题,最后求助朋友,折腾了一番,最终手动调用:getExternalCacheDir即可解决。生成路径是生成了,那么接下来就是复制APK了吧,当我复制到里面之后,我发现,尼玛,死活获取不到复制进去的插件APK,真的是活见鬼,最后猛然发现那个包路径是系统路径!!!这个需要系统签名权限才能有权限访问! 而我们代码中assets中的APK是复制到内存中。。。
然后在我们的宿主项目中,新建assets,然后将app-debugapk复制进去。接下来就是将app-debugapk加载到内存中。
/
把Assets里面得文件复制到 /data/data/files 目录下
@param context
@param sourceName
/
public static void extractAssets(Context context, String sourceName) {
AssetManager am = contextgetAssets();
InputStream is = null;
FileOutputStream fos = null;
try {
is = amopen(sourceName);
File extractFile = contextgetFileStreamPath(sourceName);
fos = new FileOutputStream(extractFile);
byte[] buffer = new byte[1024];
int count = 0;
while ((count = isread(buffer)) > 0) {
foswrite(buffer, 0, count);
}
fosflush();
} catch (IOException e) {
eprintStackTrace();
} finally {
closeSilently(is);
closeSilently(fos);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29手机连接的是峰窝网络,电脑上的手机模拟器是没有连接到峰窝网络内的,是无法直接给手机发短信的。
电脑上的手机模拟器其实是运行在一个特殊的虚拟机内的,比喻android的模拟器是运行在DVM中,DVM运行于电脑中的一条进程中,所以电脑上的手机模拟器其实是系统中的一个进程,当然他可以享用系统的网络,但那只是互联网,并不是峰窝网。
电脑上的手机模拟器如果要测试发送短信功能,那样可以给另一个手机模拟器发送进行测试,每个进程都会使用不同的端口,手机模拟器向另一个手机模拟器的端口号发送信息,可以测试发送短信的功能1、 AVI: Audio/Video Interleave(音频/视频隔行扫描)的缩写。
2、RM :格式即Real Media的缩写RM采用一种“边传边播”的方法,即先从服务器上下载一部分视频文件,形成视频流缓冲区后实时播放,同时继续下载,为接下来的播放做好准备。
3、MP3: MPEG AudioLayer 3 的缩写
4、MPG:是文件扩展名,一般MPEG-1和MPEG-2 文件用这个文件扩展名。
5、ASF是Advanced Streaming Format的简称,由微软公司开发。ASF格式用于播放网上全动态影像,让用户可以在下载的同时同步播放影像,无需等候下载完毕。
6、RMVB格式,是在流媒体的RM影片格式上升级延伸而来。VB即VBR,是Variable Bit Rate(可改变之比特率)的英文缩写。我们在播放以往常见的RM格式时,可以在播放器左下角看到225Kbps字样,这就是比特率。影片的静止画面和运动画面对压缩采样率的要求是不同的,如果始终保持固定的比特率,会对影片质量造成浪费
7、WMV: WINDOWS MEDIA VIDEO。
8、WMA: WINDOWS MEDIA AUDIO
9、midi:musical instrument digital interface,即乐器数字接口,首先你知道数字万用表的工作原理吗?
数字式万用表是在以一个三位半或四位半的数字电压表DVM基础上通过扩大量程来构成的多量程数字万用表DMM,A/D转换器ICL7106与三位半液晶显示屏构成一个200mV的数字电压表,在这个200mV电压表头基础上通过加装分压器,分流器,整流器扩大量程就构成了数字万用表,其工作原理:主要是把被测量的,电压,电流,交流电压,交流电流,电容,电感,电阻,统一转换为直流电压信号并且衰减至200mV以后送入A/D转换器处理显示,A/D转换器只能识别200mV以下的信号,也就是说不管输入的信号是什么信号,都首先要把它转换为直流电压信号,并且还要经过衰减器将信号衰减到200mV以下送入A/D转换器来处理显示,这就相当于指针万用表的工作原理,我们知道指针万用表的工作原理是利用一个磁电式微安级的直流电流表做表头表头满偏电流一般为几十微安至几百微安表头满偏电流越小则表头灵敏度越高,在表头基础上通过与表头串联电阻进行分压来扩大直流电压档测量量程,通过与表头并联电阻进行分流来扩大直流电流挡测量量程,通过与表头串联电阻分压在加装二极管整理器来扩大交流电压档测量量程把交流信号整流变为直流信号流过表头来测量,指针万用表测量电阻是采用伏安法测电阻也就是说根据流过被测电阻的电流大小来测量电阻的大小,如果被测电阻阻值越大则流过被测电阻的电流就越小则说明被测电阻阻值很大,反之如果被测电阻阻值很小则流过被测电阻的电流也就越大这时候指针偏转的角度也就越大说明被测电阻阻值越小,通过这个原理实现测量电阻的大小。
也就是说指针万用表是需要把被测量的,电压信号,电流信号,交流电压信号,电阻等经过内部的分压电阻,分流电阻,整流器,统一转换为直流电流信号通入表头来测量。
而数字万用表是需要把被测量的,电压信号,电流信号,交流电压信号,电阻,电容,电感,二极管等等统一转换直流电压信号并且经过衰减器衰减到200mV以下送入A/D处理显示的。
也就是说简单的一句话概括,数字万用表的表头也就是他的核心就是一个200mV量程的数字电压表,在这个电压表的基础上扩建量程构成一个数字万用表。。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)