自定义博客皮肤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)
  • 资源 (6)
  • 收藏
  • 关注

转载 您真的懂fragment的onResume,setUserVisibleHint,onHiddenChanged,isVisible方法吗!

写在开头最近公司的一个项目需要的Fragment可见的时候处理一些逻辑,UI结构并非Tablayout+viewPager+Fragment结果,而是FragmentTabHost+Fragment的结构,所以有了一些坑,不知道你是否遇到过,从源码层面看一下这些问题,写出来希望大家判断好与坏。思考:公司之前代码是在onResume方法中写逻辑,后来想了下,这明显是不对的,大家都知道Fr...

2019-12-07 11:43:47 385

原创 微信小程序scroll-view横向滚动的布局

关键属性:white-space: nowrap;box-sizing: border-box;属性说明:white-space:让滚动的view横向摆放,不换行box-sizing: 让滚动处在父布局内https://developer.mozilla.org/zh-CN/docs/Web/CSS/box-sizingdemo:.wxss...

2019-09-29 12:00:59 1637 1

原创 Android开发高手课——模块一 01 native崩溃异常捕获

这篇文章主要记录完成文哥的Android开发高手课Native层的崩溃异常捕获。开发环境:window 10开发软件:Android Studio 3.5.0 NDK-R16b Android 9.0(28)NDK环境配置先把sample导入到Android Studio,然后配置NDK环境点击Show Package Details查看详细版本信息,如果CMake3.10.2的版...

2019-09-11 23:18:59 595

原创 关于flutter生命周期WidgetsBindingObserver方法didChangeAppLifecycleState 无效的问题

如下代码:class _HomePageState extends State<HomePage> with WidgetsBindingObserver { @override void initState() { super.initState(); WidgetsBinding.instance.addObserver(this); deb...

2019-07-12 16:44:20 12061

原创 flutter学习——页面样式构建

页面构建:1、如何给组件添加背景图片?Container( margin: EdgeInsets.only(top: 20), // 1、constraints decoration配合使用给Container添加背景图片 constraints: BoxConstraints.expand( height: 148, ...

2019-07-10 15:06:29 555

原创 windows 下Charles抓包https Android

设备:系统windows 10 + 小米手机1、下载破解Charles自己Google,设置charles2、设置手机代理,保证手机wifi与电脑连接处于同一个网络打开了“网络详情”,点击下边的“代理”,选择“手动”。然后将第2步中的IP填入主机名,端口填入端口。点击“确定”后退出设置。3、在手机浏览器中打开地址https://chls.pro/ssl下载证书,下载到...

2019-07-05 15:22:38 988

原创 IntentService源码分析

作用:可执行耗时操作的Service。优点:一个后台线程是很容易被系统杀死的,优先级非常低。而IntentService是一个服务,不容易被系统杀死。源码分析:@Override public void onCreate() { super.onCreate(); HandlerThread thread = new HandlerThread...

2019-06-02 10:57:44 140

转载 Okhttp原理分析

2019-05-30 10:35:48 280

原创 synchronize同步锁的应用

1、当存在父子类继承关系是,子类完全可以通过“可重入锁”调用父类的同步方法的。2、同步不能继承,需要在子类的方法中添加synchronize关键字synchronize同步方法、变量;锁定当前对象// 异步调用service1()、service2()、service3()方法时,// 会等待当前调用的方法完成后才调用下一个方法。public static class Ser...

2019-05-29 18:28:20 326

原创 多线程isInterrupted()与interrupted(),真正的停止线程

currentThread().getName()与this.getName()的区别public static class MyThread extends Thread { @Override public void run() { super.run(); System.out.println("cur__...

2019-05-29 11:49:54 410 1

原创 剑指offer 面试题25:合并链表

题目:输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。如:链表1:1->3->5->7链表2:2->4->6->8合并后:1->2->3->4->5->6->7->8比较头结点大小即可public static ListNode merge(ListNode head1,...

2019-05-24 15:06:01 143

原创 剑指offer 面试题24:反转链表

public class ReverseLinkedList { private static ListNode reverseLinkedList(ListNode pHead) { ListNode pre = null; ListNode cur = pHead; ListNode pReverseHead = null; ...

2019-05-24 15:05:36 132

原创 剑指offer 面试题23:链表中环的入口节点

题目在一个包含环的链表中,找出入口节点步骤1、用两个指针分别一快一慢移动,当两个节点都不为空且快的节点等于慢的节点时,那么该链表中有环 2、当找到相遇的节点时,那么该节点必定在环中,此时记录该节点、开始计数,当下一次节点回到该节点时,环循环结束,计数的count值即为环的节点数。 3、从头节点开始,让节点1先移动count个位子后,节点2=headNode与节点1开始一起移动,当节...

2019-05-24 15:05:05 255

原创 剑指offer 面试题22:查找链表中倒数第k个节点

题目:输入一个链表,输出该链表中倒数第k个节点提示可以用2个下标,第一个节点A先移动k-1个下标,此时2个节点A、B同时向尾节点移动,当A到达尾节点时,B则是该链表的倒数第k个节点public class FindKTotail { public static class ListNode { ListNode next = null; i...

2019-05-23 21:37:57 411

原创 剑指offer 面试题20:表示数值的字符串 java

题目请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串“+100”、“5e2”、“-123”、“3.1416”及“-1E-16”都表示数值,但“12e”、“1a3.14”、“1.2.3”、“+-5”及“12e+5.4”都不是。public class IsNumeric { public static void main(String args[]) { ...

2019-05-15 16:21:30 242

原创 剑指offer 面试题19:正则表达式匹配 java

题目请实现一个函数用来匹配包含'.'和''的正则表达式。字符'.'表示任意一个字符,而''表示它前面的字符可以出现任意次(包含0次)public class MatchDemo { public static void main(String args[]) { String str = "aaa"; String pattern = "a.*."...

2019-05-15 16:19:34 201

原创 剑指offer 面试题18:删除链表的节点 时间复杂度O(1) java

提示实现时间复杂度O(1),比如我们要删除节点i,先把i节点的下一个节点j的内容复制到i,然后把i的指针指向节点j的下一个节点。此时再删除节点j。 要注意删除节点的位子: 1、是否是尾节点,不是尾节点则执行上面的思想完成删除 2、如果链表只有一个节点,那么直接置空头尾节点 3、如果是尾节点只能遍历全部O(n)的时间复杂度获取到删除的前一个节点 注意,java在置空的时候只能通过...

2019-05-13 15:28:57 666

原创 剑指offer 面试题17:打印从1到最大的n位数 java

题目:输入数字n,按顺序打印出从1到最大的n位十进制数。比如输入3,则打印出1、2、3一直到最大的3位数999。提示:该题没有明确n的大小,所以有可能是最大值,那么应该考虑最大值的越界问题,所以应该用字符串来表示最大值。 另外,打印的值应该符合正常的阅读习惯,0开头的数字不应该打印出来。两种解法,代码如下:public class Print1ToMax { publi...

2019-05-13 11:50:17 265

原创 flutter混淆编译生成releaseAPK文件

flutter 学习demo记录:https://github.com/carlzhan/learning_flutter喜欢的随手来个star,谢谢通过命令生成key.jks文件keytool -genkey -v -keystore 秘钥文件目录/名称.jks -keyalg RSA -keysize 2048 -validity 有效天数 -alias 昵称 keyt...

2019-05-10 16:15:14 3370 1

原创 Flutter初次编译报错

F/flutter (10109): [FATAL:flutter/shell/common/switches.cc(133)] Check failed: mapping && size. Unable to resolve symbols: _binary_icudtl_dat解决办法:切换到master,更新代码运行如下指令flutter chann...

2019-05-10 16:10:41 561

原创 剑指offer 面试题16:数值的整数次方 java

Github 源码地址题目:实现函数double power(double base,int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。public class Power { public static void main(String args[]) { System.out.println(power(...

2019-05-10 14:32:39 183

原创 剑指offer 面试题15:二进制中1的个数 java

Github 源码地址题目:请实现一个函数,输入一个整数,输出改数二进制表示中1的个数。例如,把9表示成二进制是1001,有2位是1.因此,如果输入9,则该函数输出2。public class NumberOf1 { public static void main(String args[]) { System.out.println(numberOf2(11))...

2019-05-10 11:33:54 160

原创 剑指offer 面试题14:剪绳子 java

Github 源码地址题目:给你一根长度为n的绳子,请把绳子剪成m段,记每段绳子长度为k[0],k[1]...k[m-1],求k[0]k[1]...k[m-1]的最大值。已知绳子长度n为整数,m>1(至少要剪一刀,不能不剪),k[0],k[1]...k[m-1]均要求为整数。例如,绳子长度为8时,把它剪成3-3-2,得到最大乘积18;绳子长度为3时,把它剪成2-1,得到最大...

2019-05-10 11:25:47 261

原创 剑指offer 面试题12:回溯法,矩阵中的路径 面试题13:机器人的运动范围 java

Github 源码地址 题:请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如 a b c e s f c s a d e e 矩阵中包含一条字符串"bcced"的路径,但是矩阵中不包含"abcb"路径,因为...

2019-05-10 11:25:11 302

原创 剑指offer 面试题11:旋转数组的最小值 (二分查找)java

Github 源码地址通过二分查找且满足最终左右指针之差为1,相邻的情况下结束循环右边的值则为最小值public class RotateArray { public static void main(String args[]) { int[] arr = {3, 5, 6, 1, 2}; int num = getMinFromRotate...

2019-05-10 11:24:44 312

原创 剑指offer 面试题10:斐波那契数列 java

Github 源码地址已知条件:f(n) = { 0 n = 0 1 n = 1 f(n-1)+f(n-2) n > 1}求f(n)的值。private static int fibonacci(int n) { if (n < 2) { ...

2019-05-10 11:24:16 397 1

原创 剑指offer 面试题8:二叉树的下一个节点(中序遍历)java

Github 源码地址public class BinaryTreeGetNext { public static void main(String args[]) { getNext(new BinaryTreeNode(3)); } private static BinaryTreeNode getNext(BinaryTreeNode tre...

2019-05-10 11:23:44 298

原创 剑指offer 面试题7:重建二叉树代码 java

public class BinaryTreeTest { static class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int val) { this.val = val; } } ...

2019-05-09 14:49:39 167

原创 ffplay播放报I/O errors 的错误

唉哟,搞半天原来是地址错了,好气啊。。。。。。正确地址:ffplay rtmp://live.hkstv.hk.lxdns.com/live/hks1

2019-04-12 17:39:34 3590

原创 关于Android保活,跟推送伪保活的技术预研

关于APP在Android上保活的问题不算新鲜,不过既然遇到了也就顺便记录一下。只有确定要需求背景,了解技术可行性才可以决定使用哪种方案更加合适。那么我们的APP为什么需要保活呢?1、像即时通讯、运动app这种需要时刻在手机后台保持活跃已及时收到后台消息的2、需要向许久没有启动App的用户推送一波广告,拉活需求等。APP在什么情况下会被kill掉?1、App长时...

2019-03-29 00:12:02 1483

原创 Glide原理及源码简述

Glide是如何发起网络请求获取图片的呢?流程图:Glide调用: Glide.with(OpApplication.getInstance().getApplicationContext()) .load(drawableId) .asGif() .error(R.mipmap.d...

2019-03-04 19:19:47 488

原创 20分钟教你理解动态代理和静态代理及应用

什么是代理代理模式是一种设计模式,提供了对目标对象额外的访问方式,即通过代理对象访问目标对象,这样可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能。// 接口功能interface UserManager{ void addUser(String id,String name); void delUser(String id); ...

2019-03-01 16:31:47 321

原创 Android Builder模式详解

首先来看一段Android开发中经常用到的一段代码: AlertDialog alertDialog = new AlertDialog.Builder(this) .setTitle("头部") .setMessage("会话框内容") .create(); ale...

2018-12-30 16:43:21 864

原创 二、IPC机制

1、创建一个aidl在main/aidl目录下创建三个文件:Book.javapublic class Book implements Parcelable { public int bookId; public String bookName; @Override public int describeContents() { r...

2018-12-30 16:42:35 183

原创 Android Mvp框架原理+demo展示

MVP到底是什么?mvp其实只是一个让代码变得优雅的结构。M:数据层,处理网络请求回来的数据,数据计算等。V:view层,只负责view的变化P:负责M和V的交互,通过构造函数传入IV,构造函数内new M,P中处理view与数据的业务交互。上代码吧,实现一个登陆的简单例子。先看整个目录结构:public interface LoginListener { ...

2017-12-06 10:53:37 1017

转载 Android——RecyclerAdapter的抽取封装

package com.zhan.carl.common.widget.recycler;import android.support.v7.widget.RecyclerView;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;i

2017-12-03 23:38:38 412

原创 Android RxJava的使用

参考: 给 Android 开发者的 RxJava 详解 (本文部分内容引用自该博客)RxJava的设计模式:监听者模式。成员: 观察者:Observer; 被观察者:Observable; 订阅(或注册):subscribe()。一个简单的订阅实现: ““` // 观察者 Observer observer = new Obs

2017-11-29 00:04:29 272

转载 Gradle命令和配置

Gradle是一种构建工具,它抛弃了基于XML的构建脚本,取而代之的是采用一种基于Groovy的内部领域特定语言,建议可以先熟悉一下Groovy脚本。 在线文档Gradle命令:常用命令:gradle明明一般是./gradlew +参数, gradlew代表 gradle wrapper,意思是gradle的一层包装,大家可以理解为在这个项目本地就封装了gradle

2017-11-24 12:12:52 374

转载 从菜鸟到Android资深工程师的进阶之路

看到一篇文章中提到“最近几年国内的初级Android程序员已经很多了,但是中高级的Android技术人才仍然稀缺“,这的确不假,从我在百度所进行的一些面试来看,找一个适合的高级Android工程师的确不容易,一般需要进行大量的面试才能挑选出一个比较满意的。为什么中高级Android程序员不多呢?这是一个问题,我不好回答,但是我想写一篇文章来描述下Android的学习路线,期望可以帮助更多的Andr

2017-11-14 22:53:55 419

原创 Drawable设置透明度影响到其他界面

x默认情况下,所有的从同一资源(R.drawable.XXX)加载来的drawable实例都共享一个共用的状态,如果你更改一个实例的状态,其他所有的实例都会收到相同的通知。这个方法对于已经是mutable的drawable没有效果。.getBackground().mutate().setAlpha(0);

2017-07-06 15:00:14 729

C++程序设计谭浩强100%完整·清华大学

C++程序设计谭浩强100%完整·清华大学

2015-09-22

WMI实时监控进程开启demo

实时监控进程开启demo,使用WMI实时监控进程事件的发生,并做出相应操作

2014-11-03

easyhook库的使用例子

easyhook的简单使用方法,含源码解释,简单明了

2014-07-19

inline hook内联汇编dll之屏蔽记事本粘贴功能

inline hook内联汇编dll之屏蔽记事本粘贴功能,HOOKAPI函数SetClipboardData源代码,编译环境是VS05版

2014-07-19

APIHOOK远程注入与卸载的小工具源码

最近的学习成果,APIHOOK远程注入与卸载功能的小工具

2014-07-19

空空如也

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

TA关注的人

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