Android 逆向之一JVM VS Dalvik

java虚拟机和Dalvik虚拟机的区别Google于2007年底正式发布了Android SDK, 作为 Android系统的重要特性,Dalvik虚拟机也第一次进入了人们的视野。它对内存的高效使用,和在低速CPU上表现出的高性能,确实令人刮目相看。 依赖于底层Posix兼容的操作系统,它可以简单的完成进程隔离和线程管理。每一个Android应用在底层都会对应一个独立的Dalvik虚拟机实例, 其代码在虚拟机的解释下得以执行。 很多人认…

Android应用开发提高系列(2)——《Practical Java 中文版》读书笔记(下)

正文   注意:条目和用语可能与书籍有所出入,但尽量保持原样加一些自己的理解。   一、性能     1. 先把焦点放在设计、数据结构和算法身上       备注:良好的设计、明智的选择数据结构和算法可能比高效代码更重要。       2.  不要依赖编译器优化技术       3.  理解运行时(runtime)代码优化       备注:JIT将bytecode于运行时转换为本地二进制码,从而提高性能。因…

JNI转帖

未分类 , , , , , 发表评论
定义   JNI是Java Native Interface的缩写,中文为JAVA本地调用。从Java 1.1开始,Java Native Interface (JNI)标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI一开始是为了本地已编译语言,尤其是C和C++而设计的,但是它并不妨碍你使用其他语言,只要调用约定受支持就可以了。   使用java与本地已编译的代码交互,通常会丧失平台可移植性。但是,有些情况下这样做是可…

maven创建eclipse android项目

参考文献: 1. Eclipse 安装 Maven 的 m2eclipse 插件  http://www.cnblogs.com/freeliver54/archive/2011/09/07/2169527.html 2. Maven介绍http://www.cnblogs.com/dcba1112/archive/2011/05/01/2033805.html 3. Maven牛人的博客http://juvenshun.iteye.com/blog/359256 4.Android学习笔记之一用m2eclipse编译Android版i-jetty(Dean)http://yelinsen.iteye.com/blog/1114490 5. 江古一 博客  http:/…

使用Maven管理Android项目(二)

在上一篇中,是针对maven版本较低的情况,本章介绍maven版本在3.0.3以上的情况。 Requires http://code.google.com/p/maven-android-plugin/wiki/GettingStarted jdk 1.6+: java -version maven 3.0.3+: maven -v Android SDK: http://developer.android.com/sdk/index.html android-maven-plugin 3.1.0+: add to your maven dependency # setup java JAVA_HOME=c:\java6-sdk PATH=%PATH%;%JAVA_HOME…

aar和jar的区别

1、“aar”包是Android的类库项目的二进制发行包。 文件扩展名是.aar,maven项目类型应该也是aar,但文件本身是带有以下各项的zip文件: /AndroidManifest.xml (mandatory) /classes.jar (mandatory) /res/ (mandatory) /R.txt (mandatory) /assets/ (optional) /libs/*.jar (optional) /jni//*.so (optional) /proguard.txt (optional) /lint.jar (optional) 这些条目是直接位于zip文件根目录的。 其中…

导入第三方库和jar

1.导入一个第三方类库含有源代码包     以android studio中导入github上的SlidingMenu为例,下面展示整个过程.    首先是slidingMennu的github 网址:https://github.com/jfeinstein10/SlidingMenu。    直接在github上Download Zip在本地目录中解压打开SlidingMenu-master   将解压的SlidingMenu-master的library文件导入进来,并对它进行命名,我为其命名为SlidingMenuLibrary,此时文件目录下就会…

Android.mk添加第三方jar包

LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_STATIC_JAVA_LIBRARIES := xsocket jackson-mapper logging jackson-core javatar log4j LOCAL_MODULE_TAGS := optional LOCAL_SRC_FILES := $(call all-subdir-java-files) LOCAL_PACKAGE_NAME := test LOCAL_CERTIFICATE := platform include $(BUILD_PACKAGE) ################################################## include $(CLEAR_VARS…

android动态添加权限6.0+–权限操作jar简化添加权限步骤。

未分类 , , 发表评论
android动态添加权限6.0+--记录android开发过程遇到的一些问题 在android6.0以后即使在xml添加了权限。 你也需要在代码中动态获取权限。但使用android自带的权限添加是很麻烦的。 所以我们就把它封装打包,然后进行权限的添加。 这里我介绍一个开源项目Mpermission,用此进行权限的封装。 这个jar主要有三个方法: 1: requestPermissions:获取权限请求。 他有三个参数:requestPermissions(Activity …

android工程创建的jar包使用proguard进行混淆

混淆文件编写:保存为.pro文件 -injars  androidtest.jar【jar包所在地址】  -outjars  out【输出地址】 -libraryjars    'D:\android-sdk-windows\platforms\android-9\android.jar' 【引用的库的jar,用于解析injars所指定的jar类】   -optimizationpasses 5 -dontusemixedcaseclassnames 【混淆时不会产生形形色色的类名 】 -dontskipnonpubliclibraryclasses 【指定不去忽略非公共的库类。 】 -d…

如何使用Android Studio打JAR包

一、先来看看用Eclipse如何打jar 用过eclipse的应该都知道,eclipse打jar,只需要选中工程,点击鼠标右键-->选中“Export”-->选择Java文件下面的"JAR file"-->点击“next”即可。 二、AS打jar 用AS打项目app为jar,只需要3步: 1、打开项目中module:app下面的build.gradle文件 1)注释掉该文件的第一行,添加 apply plugin: 'com.android.library' 2) 3)在和android同级的结构下面添加下面代…

Android Studio 如何打JAR包

Android Studio 如何打JAR包 在eclipse中我们知道如何将一个项目导出为jar包,供其它项目使用。 在AS中可以通过修改gradle才处理。 我们新建一个项目MakeJar,在项目中新建一个modle-类型为android-library 如图: app为我们的主工程,librarydemo是我们要将其生成jar包的model. 在library demo中的build.gradle中与android结构同级加入如下代码: 步骤1-依赖 主工程App的build中要加入librarydemo …

Android中aar和jar文件的认识

   在Android开发中,我们总是会引入其他第三方的库或者资源等,有时候是添加一个jar文件,有时候添加一个aar文件,那么这两种类型的文件有什么区别吗?详情请看下文。 一、描述。 1.   *.jar,JAR 文件就是 Java Archive File,顾名思意,它的应用是与 Java 息息相关的,是 Java 的一种文档格式。只包含了class文件与清单文件 ,不包含资源文件,如图片等所有res中的文件。找一个jar文件,然后修改后…

将JAR包反编译,修改后重新打包(转)

    在学习和开发JAVA项目中,我们经常会用到第三方提供的一些jar。使用这些第三方工具包,可以提高我们开发的效率,缩短开发的时间。有的第三方工具,提供具体的使用说明和源代码,有时有的却不提供源代码,使用说明也不是很具体,这对我们使用就非常不方便。   有道是,知其然才知其所以然。有时候,我们必须读取jar里的打包的类。而有时还有可能要对它进行小量修改,使之适用于自己的非凡需求。…