自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 资源 (7)
  • 收藏
  • 关注

原创 4、ollvm移植到ndk中

ollvm移植到ndk中

2023-12-20 18:00:48 88

原创 3、ollvm移植

clang -mllvm -bcf -mllvm -bcf_prob=40 hello_ollvm_bcf.c -o hello_ollvm_bcf 混淆百分比。clang -mllvm -fla -emit-llvm -S hello_ollvm_bcf.c -o hello_ollvm_fla.ll 生成ll文件。clang -mllvm -sub -mllvm -sub_loop=3 hello_ollvm.c -o hello_ollvm_sub2,替换3次。

2023-12-13 15:51:44 83

原创 2、LLVM 函数名称加密 及3种PASS的实现

llvm 3种pass的实现方式

2023-12-13 13:44:07 105

原创 1、初识 llvm源码编译 及virtualbox和ubuntu环境搭建

llvm 编译

2023-12-07 16:39:51 247

原创 dfs 深度优先搜索思路

leetcode经典题17. 电话号码的字母组合给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。publicList<String>letterCombinations(Stringdigits)用一个Hashmap存放2-9里面包含的字符串 private StringBuilder builder = new StringBuilder(); List<Str...

2020-12-16 13:22:05 162

原创 SmartRefreshlayout 源码解析

万能的下拉刷新控件,很好奇怎么实现的,学习一下思路1、继承了接口NestedScrollingParent,这是嵌套滚动的,为了让子和父布局在滑动的时候无缝嵌套。也是一个自定义的viewGroup,既然是这玩意,先看下onMeasure方法怎么获得测量的宽高:需要计算刷新的头、尾和内容布局,头尾已经有一些定制的效果,这里根据外部的条件,去计算整体的宽高。//取到所有的子view,拿到刷新的头布局 if (mRefreshHeader != null && mRefres.

2020-12-09 14:12:51 926

原创 android apk编译打包流程

1、Android 源码里面的aapt工具位于***/frameworks/tools/aapt/目录下面主要用来打包java文件,资源文件,jar三方包,AndroidManifest.xml,aidl文件java文件和jar包会转成.class文件资源文件会生成R.java文件和.arsc资源文件,分配资源id,正常我们在hdpi这种里面放的图片都是0x77 开头的,在遇到插件化资源id冲突的时候,可以修改插件包里的R.java文件,这里就需要反射修改aapt工具了aidl文件会打包成.

2020-11-27 11:34:47 186

原创 android 10 问题汇总

1、因为deviceid的限制,所有各大三方sdk需要更新,比如个推、微信支付、环信、友盟2、Using WebView from more than one process at once with the same data directory is not supported这个错误是webview多进程使用导致,在api28以上,需要对webview 目录进行控制@Requ...

2020-03-05 14:54:31 643

原创 newrelic 数据无痕埋点的实现思路

现在我们有一个需求,统计登录失败、某个activity的页面停留时间,我们怎么办?1、在登录失败的地方、activity的生命周期处加日志,保存到本地数据看,再找个合适的时机上报给服务器(如页面启动且有网),这个方案可变性,操作性,定制性很高但会让客户端多很多无用代码2、利用友盟、听云、oneapm等平台进行统计,但定制性不足,有时候无法满足需求那么我们怎么去自己实现一个无痕埋点的统计呢?...

2019-12-13 11:08:08 524

原创 android studio 升级到3.5遇到的bug,环信sdk混淆无法发图片

环境:android studio从3.4升级到3.5,gradle插件版本升级到最新的3.4.2,gradle版本为5.1.1以上别的还好,升级对应包就好,最大问题是混淆,自己写的混淆文件有的不被识别,折腾了下,改了混淆文件,自己的代码没问题,然后发现第三方环信的无法发送图片了,查了日志,果然是环信的bug,全是环信的包名,请求图片上传的时候报错了。无奈,去看gradle官方文档,找到了...

2019-12-13 10:51:13 515

原创 android Activity面试启动流程分析

面试的时候,想要说清楚ams的各个关系不容易,这边记录下:外部调用startActivity方法,启动一个Activity的时候,都会调用Instrumentation的execStartActivity方法,而这个方法在android7.0以下和以上的处理是不一样的,7.0以下的处理:通过ActivityManagerNative 的静态方法getDefault,取得ActivityMa...

2019-09-03 15:53:43 519

原创 java虚拟机

通常java虚拟机我们需要了解的是执行流程,类加载器,双亲委托机制,内存模型,以及Gc算法四大块内容。下面我们挨个讲解下:执行流程: java虚拟机分为编译和运行阶段,编译阶段将.java文件转化为.class文件,运行阶段解析class文件类加载器: 1、BootStrap ClassLoader 用于加载jdk核心库,java.lang、java.util,应用层用不...

2019-07-26 15:27:21 87

原创 android 知识点整理

1、Handler原理handler类中有Looper、messageQueue、message,构造方法中会初始化这些变量调用Looper.perpare方法中利用静态threadlocal存放looper对象,Looper类中有messageQueue,messageQueue中存放message队列。调用Looper.looper方法执行while(true)循环,从messag...

2019-02-20 13:56:49 158

原创 android Aidl原理分析

android Aidl原理分析aidl的创建server端使用Client的使用aidl是为了解决进程间通信的,也是binder的最好体现,下面分析一下:先是aidl文件的创建interface testtt{ /** * Demonstrates some basic types that you can use as parameters * and ret

2017-12-12 14:02:02 384

原创 Rxjava+retrofit+okhttp源码分析

基于上一篇对okhttp的源码分析,我们结合rxjava和retrofit再次进行源码分析,没看过上一篇的请跳转链接: okhttp中的线程池及源码分析 通常我们使用这套组合拳的代码可以在 Rxjava2+retrofit2+rxAndroid+okHttp 这里看到,那么我们接下来分析代码: Rxjava 功能主要是一个发布订阅模式,与真正的请求无关,那么请求是在okhttp中做的,这

2017-08-02 16:20:32 1168

原创 okhttp中的线程池及源码分析

okhttp3使用很常见,通常我们使用的时候是这样的://创建okHttpClient对象OkHttpClient mOkHttpClient = new OkHttpClient();//创建一个Requestfinal Request request = new Request.Builder() .url(url)

2017-08-01 15:34:48 6588

原创 Android Realm数据库配合aop框架封装

Android Realm数据库配合aop框架封装Realm数据库的使用

2017-06-19 17:13:51 1753

原创 Rxjava2+retrofit2+rxAndroid+okHttp

Rxjava2+retrofit2+rxAndroid+okHttp 对于普通的http Get请求 先导入包 compile ‘io.reactivex.rxjava2:rxjava:2.0.8’ compile ‘io.reactivex.rxjava2:rxandroid:2.0.1’ compile ‘com.squareup.retrofit2:retrofit:2.2.0’

2017-04-17 16:55:03 3248

原创 Android okhttp + rxJava + retorfit2使用心得

okhttp出来已经很久了,rxjava也是近两年火起来的框架,框架的使用能让我们写出更为优秀的代码,这里主要介绍square公司提供的框架,记录一下对Android新的http请求极具扩展性的写法。这里主要用到的是观察者模式,先说下概念,Observable是被观察者,Observer是观察者, 两者之间通过subcriber订阅者,由Observablesubcribe通知Observer实现

2017-04-10 15:22:42 3912

原创 基于事件分发机制实现的表头固定的Listview

基于事件分发机制实现的表头固定的Listview

2016-08-08 15:35:30 1144 1

原创 仿百度阅读滑动条之完美版

上一篇大概的讲了下实现吸入吸出Mesh效果的简单例子,经过进一步研究,发现和百度阅读的仍有一定差距。下面是最新研究的效果: 发现关键点在于滑动的同时,不只是Mesh的点发生变化。轨迹线也在变,所以在改变drawBitmapMesh 中的点时,需要改变线的轨迹。增加一个改变线的函数:public void buildPaths(int timeIndex){ flo

2015-04-01 17:53:27 1393

原创 实现Viewpager切换界面导航栏水波纹动画效果

实现效果:      该控件防百度阅读的导向栏进行研究,具体细节尚有不足,希望大家多多指点点击打开链接     Viewpager的滑动,引起标题栏的渐变。主要渐变过程要先画线,再画点。     画线过程:        利用path和PathMeasure类,画出一条曲线,moveto方法画起始点,quadTo方法画中间控制点和终点,由于现在是水平移动,中间控制点的坐

2015-03-27 17:43:04 2336 3

原创 android px、sp、dp之间的互转

public static int px2sp(Context context, float pxValue) {          final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;          return (int) (pxValue / fontScale + 0.

2014-08-19 11:31:02 4824

原创 android telephone 4.2 framework层分析

framework层的相关代码主要在

2014-07-04 14:27:01 2204 2

原创 android4.2 telephone应用层分析

InCallScreen 复制通话界面的显示和提供人机交互的接口,

2014-06-20 14:59:34 2771

原创 framework之深入理解Vold和Rild

Vold:用于管理和控制Android平台外部存储设备的后台进程,包括SD卡的插拔检测,挂载、卸载、格式化等等。Rild:用于智能手机的通信管理和控制的后台进程,所有和手机通信相关的功能,如接打电话、收发短信、GPRS等。Vold和Rild均为Native层,而MountService为java层。Vold流程:Vold的NetlinkManager接收来自Linux kernel

2014-03-20 15:21:39 2180

原创 framework之深入surface系统

一个Activity的显示:创建Activitya:performLaunchActivity:根据类名通过java反射机制创建一个Activity。调用Instrumentation的newActivity,调用attach函数:PolicyManager的makeNewWindow,创建window对象,返回的mWindow是一个PhoneWindow对象。windowMa

2014-03-19 15:26:06 2353

原创 framework之Audio系统

Audio 系统 AudioTrack audio_track_cblk_t AudioFlinger AudioPolicyService AudioPolicyManagerBase DuplicatingThread

2014-03-18 11:02:18 3120

原创 framework 之Bindle深入

以mediaServer为例来分析Bindle流程:        ProcessState,每个进程只有一个processstate对象,该对象的self函数采用单例模式。构造函数中open_driver打开了/dev/binder设备,他是android在内核中完成进程间通信专门设置的一个虚拟设备,该驱动设备会分配一块内存来接收数据,一个进程只能打开一次Bindle设备。

2014-03-14 14:42:59 964

原创 framework之深入理解常见类

RefBase、sp和wp:         RefBase中包含一个影子对象,该对象内部有强弱引用计数         sp化后,强弱引用计数各加1,sp析构后,强弱引用计数各减1         wp化后,弱引用计数加1,sp析构后,弱引用计数减1        wp的promote方法,会使强弱引用计数均增加1(由弱生强)        extendObjectLifet

2014-03-12 16:40:23 1043

原创 android4.3 framework之zygote深入

zygote本身是一个Native应用程序,在Android.mk中指定的名字是app_process,源码位置:        framework/base/cmds/app_process/App_main.cpp        该代码重要功能是由AppRuntime的start完成的,而这个函数使用的是基类AndroidRuntime的start,分析AndroidRunti

2014-03-11 15:40:01 1152

原创 android 4.3 framework之init深入

init.c(system/core/init/init.c)  Linux系统中用户空间的第一个进程,main函数中主要解析了两个配置文件,init.rc和硬件相关的配置文件,解析调用的是init_parse_config_file,在Ueventd_Parser.c的 Parse_config进行解析,首先找到配置文件的section,不同的section使用不同的方式去解析,sect

2014-03-10 20:28:04 1153

原创 framework之 ContextImpl文件解析

ContextImpl Context的实现

2014-03-08 17:39:40 6959

原创 基于TCP和UDP的聊天功能的实现

这里类似于登陆功能的实现,是基于UDP实现的,而聊天的内容,是基于TCP实现的,大概流程是:    建立一个服务端:   下面是UDP开启服务器返回给客户端的确定值:   public void ServerReceive(){if(serversocket == null){try {serversocket = new DatagramSocket(PORT);}

2013-10-28 15:15:59 2135

原创 TCP/IP 网络通信基础

通过TCP/IP让两台真机进行通信,选定一台真机做服务器,一台做客户端,客户端需要知道服务器端的ip,通过adb命令可以查看到连接到wifi的平板的ip,              adb shell netcfg                           如图,可以查看到ip为192.168.1.79             注意一点:android3.0版本以后的网络

2013-10-19 18:40:35 1282

原创 settingFragment设置属性的创建与响应

android3.0之后设置属性有专门的方式显示,基于PrefenceFragment,通过addPreferencesFromResource(R.xml.preferences);加载界面。如图:        我的布局大致如下:       xmlns:android="http://schemas.android.com/apk/res/android">a

2013-10-15 16:37:47 3288

原创 平板开发之ActionMode

首先看看我们要做的效果:                          点击选择项进入到ActionMode界面,如下:                   android系统提供的菜单不能满足要求,我们需要自定义菜单,这里只需要建立普通的菜单就可以了,无需上下文菜单,即:         复写@Overridepublic boolean onCreateOpti

2013-10-09 19:50:08 3235

原创 onInterceptTouchEvent解决GridView和ImageButton焦点共存的问题

屏蔽GridView中的ImageButton

2013-09-29 15:57:44 1983 2

原创 HorizontalScrollView水平滚动视图的显示

实现效果如下: HorizontalScrollView 水平 滚动 视图

2013-09-26 14:04:38 5537

原创 fragment的实现与互相通信

fragment 通信 数据传递

2013-09-25 13:56:58 2878

看雪 ollvm 源码外使用资料

看雪 ollvm 源码外使用资料

2023-12-13

llvm在源码外实现pass

llvm在源码外实现pass

2023-12-13

在llvm 9.0.1源码基础上增加 EncodeFunctionName Ollvm资源

配合自定义Pass和ollvm文章一起用

2023-12-08

Realm + aspectj aop数据库封装

Android Realm数据库配合aop框架封装

2017-06-19

Rxjava2 demo

这个demo主要针对rxjava2.0的版本

2017-04-17

基于事件分发机制实现的表头固定的Listview

基于事件分发机制实现的表头固定的Listview

2016-08-08

仿百度阅读tab

仿百度阅读animation drawBitmapMesh 水波纹

2015-04-15

仿百度阅读animation

仿百度阅读animation drawBitmapMesh 水波纹

2015-04-01

实现Viewpager切换界面导航栏水波纹动画效果

防百度阅读标题栏水波纹效果 动画 实现Viewpager切换界面导航栏水波纹动画效果

2015-03-27

米UI 便签程序源码 增加密码功能

小米系统便签源码,增加密码显示功能,默认密码为123456

2015-03-24

空空如也

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

TA关注的人

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