自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 关于对Android自动埋点的学习

关于对自动埋点的学习背景自动埋点的应用场景View 唯一标识标识的目的解决方案xpathxpath原理xpath实现xpath优缺点及解决方案事件拦截事件拦截的目标事件拦截的方式代理监听编译期插桩业务数据搜集方案一 DataPathDataPath原理与实现方案 OnClick事件数据搜集实现在内部类中找到自己想要的数据背景自动埋点的应用场景View 唯一标识标识的目的解决方案xpath...

2020-10-19 11:29:52 191

翻译 Kotlin Extensions扩展(翻译)

ExtensionsKotlin语言拥有不通过继承基类和使用类似与装饰器模式的设计模式而去为一个类去增加一个新的功能的能力。 这种能力称为Extensions。Kotlin支持extension functions 和 extension properties。Extension Functions去申明一个extension function。我们需要将被被添加申明的类别前置作为接...

2018-07-24 10:49:28 530

原创 Node.js 模块的加载初探

1模块加载的 Demo模块文件 hello.jsfunction hello(){ //定义一个变量 var name; this.setName = function(tName){ name = tName; } this.sayHello = function(){ console.log("Hello " ...

2018-07-03 20:08:59 1103

翻译 JNI Charter3 Basic ypes,Strings,and Arrays

当遇到有着native代码的java应用程序,大部分程序员都会问在java语言中的数据类型是怎么匹配到native编程语言例如c,c++中的数据类型。在上一章“Hello World”这个例子中,我们没有传递任何参数到native方法中,native方法也没有返回任何结果(返回NULL)。native方法只是简单地打印了一个信息并返回结束。 在练习中,大部分程序在native方法中都需...

2018-06-14 19:39:19 229

原创 抛开死丢丢,在Terminal下写一次JNI --HelloWorld

JNI -HelloWorld 实验过程步骤编写一个类(HelloWorld.java),并申请native方法使用javac 编译HelloWorld源文件。结果会得到一个HelloWorld.class 的文件使用 javah -jni 来生成C的头文件并包含声明了native方法编写c的源文件去实习native方法将c文件编译生成dll或者so库运行java程序,验证jni的...

2018-06-13 20:56:26 201

翻译 Android源码分析实录-2硬件抽象层详解 (HAL)

某天,某大佬突然丢给我一本李忠良编著的Android源码分析实录,内容确实晦涩难懂。特,有此一记。什么是HAL层如名所示,HAL的主要功能是将硬件抽象化。它位于操作系统内核和硬件电路之间的接口层。HAL层隐藏了特定平台硬件接口细节,为操作系统提供虚拟硬件平台,使其具有硬件无关性。这样就可以使操作系统在多种平台上进行移植。硬件支持的实现Android系统对硬件的支...

2018-05-31 20:34:12 621

原创 调用startActivityForResult后,onActivityResult为什么立刻响应

A跳转B,为什么直接响应了A的onActivityResult函数。。。检查B的启动模式,,当activity在不同的栈中,android系统默认是无法传递数据的。

2018-05-10 17:23:31 321

原创 如何下载github上某一个模块,或者某一个目录的源代码

git clone xxxxxx/tree/master/xxxxx ===> 替换 ===> svn co xxxxxx/trunk/xxxxx

2018-04-02 11:22:33 2952

翻译 Think In Java 11 持有对象 Holding

11.1 泛型和类型安全的容器 通过使用泛型,可以在编译期内防止错误类型的对象放置到容器中。Java SE5 之前编译器允许向容器中插入不正确的类型对象。 使用Java泛型来创建类对象十分复杂,但通过应用预定义的泛型通常十分简单。 例如保存Apple对象的ArrayList容器,声明ArrayList<Apple>,尖括号内可以是多个类型参数,指定了容器实例可以保存的...

2018-03-21 18:14:10 179

原创 apt-get -f install 都没有用了

今天ubuntu下 安装软件,出问题了。。。 以为包的依赖问题 apt 命令行下报错 如上,apt还给了解决办法(如果办法有用,还写个毛blog记录)。。 我的解决办法: 由于ubuntu apt最终安装包软件是用dpkg 所以我把所有报错的软件,及其依赖全部 purge 了 命令: sudo dpkg --purge (***) ...

2018-03-15 17:18:51 2798

翻译 Think In Java 10 内部类

名词解释内部类: 一个类的定义再另外一个类的内部外围类: 包含内部类的那个类外部类: 指那些类相对于包含内部类的那个类10.1 内部类的创建 把类的定义置于外部类的里面使用方法:在外围类的内部,与使用普通类没有什么区别典型情况, 在外围类的内部有一个方法,该方法返回一个指向内部类的引用。想从外部类的非静态方法之外的任意位置创将某个内部类的对象,必须具...

2018-03-09 14:51:28 195 1

原创 Android ADB 命令(1)常用命令

基本安装程序安转Apk程序 Installadb install -r xxx.apk安装Apk程序 Pushadb push <local><remote>获取手机文件pulladb pull <remote><local> 区别: push命令是将文件写入手机,相对应的是pull remot...

2018-02-26 16:56:38 128

翻译 Android 开发 API指南 如何查找最佳匹配资源

当您请求要为其提供备用资源的资源时,Android 会根据当前的设备配置选择要在运行时使用的备用资源。假设以下可绘制对象目录分别包含相同图像的不同版本:drawable/drawable-en/drawable-fr-rCA/drawable-en-port/drawable-en-notouch-12key/drawable-port-ldpi/drawable-po...

2018-02-24 17:04:16 1320

原创 Android EditText 监听输入完成

1 EditText 添加TextChangedListener在 TextWatcher中的 afterTextChanged 回调中添加 延迟处理的线程 editRunable 为 输入完成触发的任务 override fun afterTextChanged(s: Editable) { if (editRunable != null) {

2018-02-01 15:27:38 3803

原创 Android 输入银行卡 格式化

比较 微信支付宝 添加银行卡实现每四位隔符号Format 算法 代码 Kotlin输入 待格式化串 ,分隔符号 输出 格式化串 /** * 通用bankcardFormat */ @JvmStatic fun newBankcardFormat(args: String,split: String) : String { var ret :

2018-01-31 16:30:16 1007

翻译 Thinking In Java 8 多态

8.1 向上转型 将某一个对象的引用视为对其基类型的引用的做法被称为向上转型向上转型之后,被转型视作为基类的引用,编译器如何知道这个引用是指向某个子类对象,或者说: 引用如何正确调用override方法 编译器是无法得知引用的具体指向的子类。8.2 深入调用问题8.2.1. 方法调用绑定由编译器和连接程序实现 –前期绑定运行时根据对象类型进行绑定 -后期绑定 后期绑

2018-01-24 14:54:35 203

翻译 Thinking In Java 5.5 清理:终结处理和垃圾回收

垃圾回收器java垃圾回收器负责回收无用对象占据的内存资源。对于不是由 new 产生的”特殊”对象内存区域,垃圾回收器是不知道如何释放该对象的这块”特殊”内存。为了应对这种情况,java允许在类中定义一个名为finalize()方法。 finalize方法的工作原理: 在java垃圾回收器准备回收对象的内存时,它会首先调用对象的finalize()方法,并在下一次垃圾回收动作中真正回收

2018-01-22 11:09:19 206

翻译 DataBinding 官方文档 翻译笔记

Data Binding Library 作用 : 在声明式布局的时候,最小化 页面布局和应用逻辑 之间的glue code (胶水代码)。前提 1. Android 2.1(API level 7+) 2. Gradle 1.5.0- alpha 1环境搭建确保已经安装了绑定库配置gradle脚本 开发工具 android studio 1.3 …

2018-01-19 18:21:45 1914 1

原创 Bug记录: 多模块 binding文件引用问题

前言:

2018-01-08 14:27:09 181

原创 代码混淆ProGuard

一:产生的原因二:混淆方法三:混淆KEEP 保留不被混淆~~

2017-12-22 16:17:41 179

原创 挖掘频繁模式、关联和相关性:基本概念和方法

1基本概念频繁模式挖掘搜索给定数据集中反复出现的联系。典型例子:购物篮分析 该过程通过发现顾客放入他们购物篮中的商品之中的关联,分析顾客的购物习惯。 关联规则(association rule) : A => B[support = ?% ; confidence = ?%] 规则的支持度和置信度是规则兴趣度的两种度量。2 频繁项集、闭项集和关联规则 规则 A=>B

2017-12-10 17:20:55 634

原创 认识数据-数据对象与数据类型

什么是属性属性(attribute)是一个数据字段,表示数据对象的一个特征。 数据仓库 - 维 机器学习 - 特征 统计学家 - 变量 数据挖掘 - 属性标称属性标称属性(nominal attribute)的值是一些符号或事务名称。 通常用于分类,在计算机科学中也被看成是枚举的。 标称属性值并不具有有意义的序,并且不是定量的,因此,给定一个数据集,找出这种属性的均值、中位数 没有意义。

2017-12-07 22:08:38 676

原创 Android Activity的Launch mode详解

bug记录:APP 在手机点击主菜单是退出应用后再返回APP,APP未停留在之前离开的页面。demo演示 bug排查: 查看Activity的生命周期 在重新进入app的过程中,activity活动栈中所有被singleTask Activity 之上的所有activity 被DestoryBug原因当A activity启动模式为SingleTask并且为Main,启动应用后

2017-11-30 16:26:59 724

原创 信息摘要算法的功能

在软件开发,前后台数据传送经常使用信息摘要这类算法进行数据的加密。MessageDigest 类 简介MessageDigest类 位于 java.security.MessageDigest,提供引用程序一个信息摘要算法的功能,比如 SHA-1 或者 MD5 等等。 信息摘要算法是一种安全的单向hash方程式,可以将可变长度的数据转换成固定长度的hash code。MessageDigest类的

2017-11-30 11:32:03 978

原创 Java ClassLoader初探

一: ClassLoader的作用jvm虚拟机加载类时使用ClassLoader动态加载 .class二: ClassLoader的分类 ClassLoader主要分成3类 * Bootstrap ClassLoader : 启动类加载器 用于加载 JDK 核心类库 * Extension ClassLoader :扩展类加载器 用于加载 Java的扩展类库 ,默认加载

2017-11-29 21:36:29 115

原创 换肤框架 skin-loader-lib 使用

使用步骤导入框架模块lib 项目setting.gradle中引入模块主APP Application中初始化框架单例 SkinManager.getInstance().init(this); SkinManager.getInstance().load();在需要使用换肤功能的activity,fragment ‘etc 继承对应的继类View布局文件 开启

2017-11-21 17:57:27 423

原创 Android哪些权限需要动态授权

M后

2017-11-08 12:32:52 572

原创 使用ScrollView属性fillViewport解决android布局不能撑满全屏的问题

android布局 小屏幕常使用ScrollView来布局 相同布局在大屏幕上可能就会有留白的情况 这是就是用fillViewPort属性

2017-11-07 10:06:22 228

原创 自定义VIew Demo (ViewGroup)

http://blog.csdn.net/hzmming2008/article/details/78258800横向选择控件重写 onMeasure理解MeasureSpec * MeasureSpec 是一个32位的int值,前2位代表(specMode)测量模式 ,后30代表(specSize) 某种测量模式下的规格大小 * specMode 有三种模式 1 UNSPE

2017-10-31 11:06:11 254

原创 SpringMVC 处理静态文件

1. tomcat 的 default-Servlet (web.xml)<servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.png</url-pattern> <url-pattern>*.js</url-pattern> <url-pattern>*.jpg</url-patt

2017-10-30 14:14:47 182

原创 Java 同步锁的正确姿势

锁方法 锁对象 锁class 锁变量

2017-10-30 09:06:41 319

空空如也

空空如也

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

TA关注的人

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