自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小北的博客

守稳初心,方能-守得云开见月明

  • 博客(12)
  • 资源 (1)
  • 收藏
  • 关注

原创 浅析Java 字节码

第一个问题:为什么Java 为什么可以跨平台?和C++ 相比,很重要的一点就是:C++ 编译生成的是纯二进制的机器指令,而Java 通过编译器编译生成的是非纯二进制的字节码(.class文件)。而这种基于Unicode的字节码是不依赖于特定的计算机硬件架构而存在的——这就意味着只要有JVM环境,你的字节码就可以在任何平台上运行。其次,Java字节码的二进制数据以固定的格式进行存储和传输,消除了字节顺

2017-07-27 21:10:13 1292

原创 Linux下查看编辑二进制文件

命令 hexdum命令的解释:hexdum -C file

2017-07-27 13:53:42 2458

原创 Android 应用性能优化--资源图片的内存管理

综述图片从来源上可以分成三大类:网络图片、手机存储中(EMMC 和Sdcard)的图片、APK资源图片,目前有很多成熟的图片加载库,主流的有Picasso 、Glide 、Fresco。但是没有覆盖APK资源图片。资源图片特征:1、一般在xml中引用 ,在Java中也是通过资源ID查找 。2、一般不使用异步记载,不会出现loading图这些中间状态。3、如果加载失败了那么APP Crash。由

2017-07-25 17:03:19 902

原创 Lint 静态代码检查工具

除了测试 Android 应用以确保其符合功能要求外,还必须确保代码不存在结构问题。结构混乱的代码会影响 Android 应用的可靠性和效率,增大维护代码的难度。例如,如果 XML 资源文件包含未使用的命名空间,则不仅占用空间,还会导致不必要的处理。其他结构问题,例如使用目标 API 版本不支持的已弃用的元素或 API 调用等,可能导致代码无法正常运行。Android Studio 提供一个名为 L

2017-07-24 19:48:57 1419

原创 Android源码分析-SparseArray<E>详解

SparseArray 实现原理在使用HashMap的时候IDE会给出如下提示:SparseArray 类注释如下: SparseArrays map integers to Objects. Unlike a normal array of Objects, there can be gaps in the indices. It is intended to be more memory

2017-07-24 16:31:36 591

原创 Android代码混淆之混淆规则

ProGuardAndroid开发的应用程序是用Java语言开发的, 由于Java代码是非常容易反编码的,为了很好的保护Java源代码,我们需要对编译好后的class文件进行混淆。ProGuard是一个免费的Java类文件收缩,优化,混淆和预校验器。它可以检测并删除未使用的类,字段,方法和属性。它可以优化字节码,并删除未使用的指令。它可以将类、字段和方法使用短无意义的名称进行重命名。这些步骤让代码更

2017-07-21 16:40:17 1990

原创 Android Studio中如何制作和使用.9.png(Nine Patch)图片

原理在Android应用开发计程中,为了适配不同的手机分辨率,图片大多需要拉伸或者压缩,这样就出现了可以任意调整大小的一种图片格式“.9.png”。这种图片是用于Android开发的一种特殊的图片格式,它的好处在于可以用简单的方式把一张图片中哪些区域可以拉伸,哪些区域不可以拉伸设定好,同时可以把显示内容区域的位置标示清楚。.9.png图片相比普通图片,在四条边会多出1px的空隙,我们在这1px的空隙

2017-07-21 13:17:35 2428

原创 Android 硬件加速

原文地址:http://developer.android.com/guide/topics/graphics/hardware-accel.htmlAndroid 3.0(API level 11)开始支持硬件加速2D渲染, 意思就是所有的View 的canvas都会使用GPU,然而硬件加速会占用更多的RAM。在API >= 14上,硬件加速是默认开启的。 如果你的应用只是标准的View和Dra

2017-07-19 21:26:15 469

原创 Android 7.0 适配-应用之间共享文件(FileProvider)

在Android7.0系统上强制启用了被称作 StrictMode的策略,带来的影响就是App对外无法暴露file://类型的URI了。如果在App中使用Intent携带这样的URI去打开外部App(比如:打开系统相机拍照),那么会抛出FileUriExposedException异常。官方给出如下的解决方案,就是使用FileProvider:我们来看一段代码:String cachePath =

2017-07-17 09:34:15 2102

原创 Git合并特定commits 到另一个分支

有时候我们需要只合并需要的那些commits,不需要的commits就不合并进去了。合并某个分支上的单个commit首先,用Git log查看一下你想选择哪些commits进行合并,例如:commit f3e50d18922390742ea653f163d20fa90e38c0c6Author: chenzongwen <chenzongwen@soyoung.com>Date: Wed J

2017-07-05 20:44:22 1367

原创 Android drawText获取text宽度的三种方式

@Override public void draw(@NonNull Canvas canvas) { canvas.drawColor(Color.parseColor("#F3F5F9")); paint.setColor(Color.parseColor("#AEAEAE")); paint.setAntiAlias(true);

2017-07-05 14:31:31 1242

原创 Android设置重复文字水印背景

效果如图:自定义Drawable :/** * Created by Owen Chan * On 2017-07-05. */public class WaterMarkBg extends Drawable { private Paint paint = new Paint(); private String logo = "SoYoung"; public WaterM

2017-07-05 14:09:10 3686 2

Mac 上反编译Apk 以及查看反编译后的文件

Mac 上反编译Apk 文件以及通过gui查看反编译后的文件, 解压下载后的文件, 将要反编译的apk 放到apk文件夹下(无需重命名),然后运行run.sh 脚本, 反编译完成后会自动打开gui 来查看反编译后的文件

2017-10-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除