江三沐洛的博客

江三沐洛的博客

排序:
默认
按更新时间
按访问量

Java的垃圾回收机制

java在内存中大致可以分为新生代以及老年代,其垃圾回收机制也不相同。 新生代一般会分为三部分,一块较大的Eden空间和两块较小的Survivor空间,其空间大小比例一般为8:1:1,其中可以使用的有效部分为一块Eden和一块Survivor空间,即每次新生代中可用内存空间为整个新生代空间的90...

2018-06-20 19:12:00

阅读数:18

评论数:0

Android Studio 打包成jar文件并混淆代码

在Studio中混淆打包需要修改模块下的build.gradle文件和proguard-rules.pro文件1:首先修改指定模块的build.gradle文件,在末尾加上下述代码task makeJar(type: proguard.gradle.ProGuardTask, dependsOn:...

2018-03-01 11:14:44

阅读数:376

评论数:0

xxxxxx/classes.jar: unknown package name of class file xxxxxx

编译android源码时如果出现标题类似错误  需要到build/core/tasks/check_boot_jars目录下 在package_whitelist.txt 文件中追加对应的类或者包

2018-02-05 15:07:24

阅读数:74

评论数:0

Fail to contact Jack Server: Problem reading xxxxxx

同一个服务器上不同用户的Jack编译服务需要配置成不同的port端口,所以需要自己手动改一下 修改~/.jack-server/config.properties中tcp端口 jack.server.service.port=80xx 自己填 jack.server.admin.port=8...

2018-02-05 14:59:51

阅读数:13037

评论数:0

普通广播与本地广播

我们平常使用的一般都是全局广播,使用方法就不多说了,下面介绍下本地广播的使用方法注册 private MyBroadcastReceiver receiver; private IntentFilter filter; @Override protected void ...

2017-10-30 12:31:47

阅读数:148

评论数:0

安卓Context介绍

Context是什么Context的中文翻译为:语境; 上下文; 背景; 环境,在开发中我们经常说称之为“上下文”,那么这个“上下文”到底是指什么意思呢?在语文中,我们可以理解为语境,在程序中,我们可以理解为当前对象在程序中所处的一个环境,一个与系统交互的过程。比如微信聊天,此时的“环境”是指聊天...

2017-10-11 21:10:38

阅读数:176

评论数:0

Activity界面的添加与删除

安卓中是由WindowManagerService来管理所有的窗口,下面来看下Activity是如何与WindowManagerService交互,控制应用界面的添加与删除的我们通常都是在onCreate方法中调用setContentView来设置布局,此时只是完成了视图树的创建,并没有通知Win...

2017-09-26 14:32:02

阅读数:182

评论数:0

Hierarchy Viewer的使用

Hierarchy Viewer工具提供了一个可视化界面显示布局的层次结构,让我们可以进行调试,从而优化界面布局结构。我们可以通过Android Device Monitor来启动启动之后在模拟器上打开相应界面,之后选择相对应的进程和Activity名称在右边的Tree View界面中就会显示出选...

2017-09-22 11:26:40

阅读数:139

评论数:0

安卓7.0 系统服务启动流程

安卓的系统服务都是由SystemServer这个进程创建的,那从他的main函数开始看看public static void main(String[] args) { new SystemServer().run(); }新建了一个SystemServer类,并调用他的r...

2017-09-20 20:40:56

阅读数:298

评论数:0

TraceView的使用

Traceview是android平台配备的一个性能分析工具,通过图形化的方式让我们了解程序的性能,并且能具体到method。 使用方法有两种: 1:在代码中追踪//追踪开始 Debug.startMethodTracing(); //追踪开始 Debug.stopMethodTracing(...

2017-09-15 21:23:20

阅读数:120

评论数:0

LeakCanary的使用

LeakCanary是一个对Android和Java进行内存泄露检测的库 使用方法:首先在gradle中进行配置dependencies { debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5.2' release...

2017-09-14 19:51:04

阅读数:125

评论数:0

onMeasure的宽高生成解析

在View的绘制流程中,onMeasure是负责测量控件的大小的@Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMe...

2017-08-29 21:06:17

阅读数:150

评论数:0

requestDisallowInterceptTouchEvent实现原理

我们为了让底部的控件处理事件,不被父控件拦截,一般我们会调用v.getParent().requestDisallowInterceptTouchEvent(true);来阻止父控件对事件的拦截,来看下它的实现原理。首先明确下v.getParent()对于底部的View来说,得到的就是上层的父控件...

2017-08-24 12:04:37

阅读数:214

评论数:0

Activity的setContentView解析

我们一般设置Activity的界面,都是在onCreate方法中通过setContentView完成,之后就会在手机上显示我们设置的界面,现在我们走下流程,看看系统究竟是如何做的。 首先Activity是在ActivityThread中的performLaunchActivity方法中被创建的p...

2017-08-16 19:46:37

阅读数:102

评论数:0

安卓插件化实例

最近想研究研究安卓插件化的知识,看了看Android插件化完美实现代码觉得很好很强大,所以就来造个轮子,学习记录下。 首先声明下,实现的例子是基于安卓5.1的,而且实现的功能仅仅是能启动插件的Activity,当然了原理弄懂了,别的也好说,那么下面正式开始。实现插件化大概有三个难点1:使我们插件...

2017-08-11 17:55:59

阅读数:200

评论数:0

安卓OnTouchListener,onTouchEvent,onClickListener执行顺序

安卓控件有很多监听事件,比较典型的有OnTouchListener,onTouchEvent和mOnClickListener,来看下他们的执行顺序 我们先自定义一个Button,在他的onTouchEvent方法中加入log@Override public boolean onTouc...

2017-08-03 20:08:00

阅读数:2665

评论数:0

AMS与Activity的交互

上面是Activity典型的生命周期流程图,基本的就不讲了,提两个问题来求解下 1:当启动一个新的Activity时,新旧两个Activity的生命周期执行顺序 2:当你在onCreat中调用startActivity或者finish的时候,生命周期执行流程首先来求解第一个问题,很简单,建立两...

2017-08-02 21:05:34

阅读数:133

评论数:0

安卓Binder解析

Binder是Android系统进程间通信(IPC)方式之一,他的使用方法如下 先定义一个aidl文件package com.example.binderdemo;interface IBinderTest { void setName(String name); String ...

2017-07-29 16:23:54

阅读数:144

评论数:0

AsyncTask原理

AsyncTask是android提供的轻量级的异步类,可以直接继承AsyncTask类,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程,且其是串行执行的,下面从原来上分析他是如何做的class DownloadTask ext...

2017-07-27 13:04:38

阅读数:132

评论数:0

Java中静态代码块执行顺序

新建一个类,里面含有静态代码块,非静态代码块以及构造函数public class Parent { private final static String TAG = "MainActivity"; static { Log.e(TAG, "...

2017-07-24 17:12:41

阅读数:178

评论数:0

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