Android Assets打开调用过程源码分析

一、Android读取Assets中图片并显示

private Bitmap getImageFromAssetsFile(String fileName)
{
    Bitmap image = null;
    AssetManager am = getResources().getAssets();
    if (am == null)
    {
        return null;
    }
    try
    {
        InputStream is = am.open(fileName);
        image = BitmapFactory.decodeStream(is);
        is.close();
    }
    catch (IOException e)
    {
        e.printStackTrace();
    }
    return image;
}
首先是获取AssetManager,然后调用其函数open,打开对应的资源文件

二、open函数追朔(Java层)

继续阅读“Android Assets打开调用过程源码分析”

Android中的文件打开读写调用过程

1、简述

一般的Android 在Java层对文件的读写调用主要有以下两个类:

(1)FileInputStream/FileOutputStream(FileReader/FileWriter)
(2)RandomFileAccess

FileInputSteam和FileOutputStream继承于InputStream和OutputStream,FileReader、FileWriter继承于Reader和Writer,它们的底层实现原理实现是一样的,区别在于前者用于字节型数据流读写,后者用于unicode文本流读写。

RandomFileAccess是一个独立的文件读写类,它与InputStream、OutputStream不同之处在于它更倾向与随机文件读写,类似C语言fopen、fread、fseek、fwrite、fflush、fclose的封装。

下面简要的分析三个操作的整个调用过程。

2、文件打开

一般在Java层调用如下:

File myFile = new File(“/data/local/tmp/test.java”);

FileOutputStream fos = new FileOutputStream(myFile);

首先我们找到File.java

继续阅读“Android中的文件打开读写调用过程”

计算机网络

最近准备复习计算机网络的知识,翻看了之前学习整理的笔记,对于入门来说应该还算不错的,特此分享一波,后续会继续更新,可以关注我的Github
没有涉及到的知识点,会在以后更新,关注一波!
PS:温馨提醒,看不清的可以直接到文章最后,有高清无码下载,也可右键!

Read More

Android逆向系列之脱壳篇–Dump Dex

111111111

一、环境准备
alictf-apk-300、IDA、DDMS、模拟器(或真机)、其他必备环境,如有问题请移步前面的工具篇等文章

二、原理简介
dvmDexFileOpenPartial函数是执行dex文件,因此会有真正地关于dex文件的一些主要的信息
函数原型:
int dvmDexFileOpenPartial(const void* addr, int len, DvmDex** ppDvmDex);
第一个参数就是dex内存起始地址,第二个参数就是dex大小。所以在这个函数下断点可以直接dump出明文dex.

三、Dump dex步骤
Read more

Android逆向系列之动态调试(三)–IDA调试dex

111111111

《Android逆向系列之动态调试(零)–入门篇》
《Android逆向系列之动态调试(一)–Smali注入》
《Android逆向系列之动态调试(二)–Eclipse调试apk》
一、准备
在APK改之理里双击打开AndroidManifest.xml,为了让APP可调试,需要在application 标签里添加一句android:debuggable=”true”
保存,然后回编译成apk,安装到模拟器或者真机中
Read More