自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (1)
  • 收藏
  • 关注

原创 Android反编译工具及使用说明

将apk后缀改成.zip,解压后会有classes.dex文件,将classes.dex文件放到dex2jar解压的文件夹里,执行如下命令,即可生成jar文件classes-dex2jar.jar。将JD-GUI.app/Contents/Info.plist文件中JVMVersion参数,1.8+修改为11。为了查看classes-dex2jar.jar文件源码,接下来我们需要jd-gui工具去打开。下载完解压后文件夹里有JD-GUI,双击打开即可使用。然后再次打开,就可以正常使用了。

2024-02-21 18:57:55 876

原创 Git常用命令梳理,带你真正理解命令的含义

一、基本概念我们先来理解下 Git 工作区、暂存区和版本库概念:1、版本库工作区有一个隐藏目录 .git,这个就是 Git 的版本库。2、HEAD当前分支版本的顶端。3、暂存区 (Index)常叫做 staging area 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。4、工作区(Working Copy)就是你在电脑里能看到的文件目录。这里可以理解为 git 本地的版本库中,有一个文件结构树

2020-11-28 20:36:56 706

原创 源码分析 Service 的启动和绑定过程

这里写自定义目录标题前言Service的启动过程Service的绑定过程前言Service 分为两种工作状态,一种是启动状态,主要用于执行后台计算;一种是绑定状态,主要用于和其他组件进行交互。Service的这两种状态是可以共存的,即 Service 即可以处于启动状态,也可以同时处于绑定状态。通过Context的 startService 可以启动一个Service启动Service:...

2020-04-27 22:53:09 410

原创 JavaScript 中的 typeof、null 和 undefined

一、typeof 操作符你可以使用 typeof 操作符来检测变量的数据类型。typeof "John" // 返回 stringtypeof 3.14 // 返回 numbertypeof false // 返回 booleantypeof [1,2,3,4] // ...

2019-10-23 18:43:41 414

原创 JavaScript 入门知识整理

一、JavaScript 概述 与 Java的区别JavaScript 是基于对象和事件驱动的脚本语言,主要应用在客户端。1、特点:交互性它可以做的就是信息的动态交互。安全性不允许直接访问本地硬盘。跨平台性只要是可以解析 JS 的浏览器都可以执行,和平台无关。2、JavaScript 和 Java 的不同:JS 是 Netscape 公司的产品,前身是 LiveScrip...

2019-10-21 18:28:01 199

原创 Python 中的对象和类

一、注意:在Python中 True属于int是不是有点让你感到惊讶?True 也是布尔值(类 bool)。实际上,所有布尔值也是 int。二、Python 中定义类的要点:类初始化的特殊方法:__init__(self)类初始化方法,记住也必须传入 self 的行参,内部调用父类的初始化方法使用 super,在该类的对象被创建时被调用定义类级别的变量所有的实例对象共享该变量,一个对...

2019-10-21 11:42:22 299

原创 Python 常见的代码规范问题整理

Python 常见的代码规范问题整理空一行: 用于 【类成员函数之间】 ,或者用于区分不同逻辑块空两行: 类与类,类与函数,函数与函数之间1. 函数或代码段终止处出现了多余的空格```W291 trailing whitespace```2. 空行中包含空格```W293 blank line contains whitespace```3. 类 或 函数结尾 2个空行```E...

2019-10-16 18:34:10 479

原创 Python 网络 API 知识整理

一、什么是 API?应用编程接口(Application Programming Interface)。API 是一个接口。创建它的目的是帮助两个不同的应用交互。二、知识补充:1、shell 的 curl 程序:将获取该网页的内容并显示到终端里curl 'https://www.baidu.com/'将获取的网页内容保存到指定的文件中curl -o baidu.html 'http...

2019-10-15 14:50:56 532

原创 Python文件读写 注意事项

一、打开文件对象:方法1、file = open("test.txt") # 打开一个文件(只读模式)content = file.read() # 读取文件内容到字符串file.close() # 关闭文件方法2、with open("test.txt") as my_file: # with 语句,结束后自动关闭 content = my_...

2019-10-15 10:15:30 814

原创 Python变量命名规则 和 Python中的保留字一览

在 Python 中命名变量时,还需要注意以下几个事项:只能在变量名称中使用常规字母、数字和下划线。不能包含空格,并且需要以字母或下划线开头。不能使用保留字或内置标识符,它们在 Python 中具有重要含义,你将在整个这门课程中学到这些知识。python 保留字列表请参阅此处。创建对值清晰描述的名称可以帮助你避免使用这些保留字。下面是这些保留字的简要表格。在 python 中,...

2019-10-12 11:12:02 2031

原创 Android中对于Java 反射(Reflect)语法的封装类

最近在研究Android插件化,通篇都在谈Hook,当然都是依赖Java的反射技术,然而反射获取构造函数,创建类的实例对象,反射调用方法,反射字段以及对泛型类的反射语法比较繁琐,步骤较多,开发成本较高,于是就自己封装了一个反射相关的工具类,方便在开发过程中对反射的使用。package com.example.guolipeng.demo.utils;import java.lang.refl...

2018-12-03 17:25:08 905

原创 Android 中的 IPC 方式二:使用文件共享

前言共享文件也是一种不错的进程间通信方式,两个进程通过读/写同一个文件来交换数据,比如 A 进程把数据写入文件,B 进程通过读取这个文件来获取数据。我们知道,在 Windows 上,一个文件如果被加了排斥锁将会导致其他线程无法对其进行其他访问,包括读和写,而由于 Android 系统基于 Linux,使得其并发读/写文件可以没有限制的进行,甚至两个线程可以同时对一个文件进行写操作都是允许的,尽管这可

2017-10-11 16:46:25 518

原创 Android 中的 IPC 方式一:使用 Bundle

我们知道四大组件中的三大组件(Activity、Service、BroadcastReceiver)都是支持在 Intent 中传递 Bundle 数据的,由于 Bundle 实现了 Parcelable 接口,所以它可以方便地在不同的进程间传输。

2017-10-11 15:02:54 487

原创 Android IPC基础概念之(序列化)介绍

前言当我们需要通过 Intent 或 Binder 传输数据时需要先把数据或者要传输的对象完成序列化操作, 这时就需要使用 Serializable 或者 Parcelable。还有的时候我们需要把对象持久化到存储设备上或者通过网络传输给其他客户端,这时候也需要使用 Serializable 来完成对象的持久化。Serializable 接口Serializable 是 Java 提供的一个序列化接

2017-10-09 17:24:37 297

原创 Android IPC简介之(多进程模式)初识

前言IPC是 Inter-Process Communication 的缩写,含义为 进程间通信 或者跨进程通信,是指两个进程之间进行数据交换的过程。线程vs进程线程:线程是CPU调度的最小单元,同时线程是一种有限的系统资源。进程:进程一般指一个执行单元,在 PC 和移动设备上通常指一个程序或者一个应用。程序、进程、线程关系通常来讲,一个程序就是一个进程(开启了多进程的程序除外),一个进程可以包含多

2017-09-21 17:58:45 329

原创 通过 AIDL 分析 Binder 的工作机制

前言简单来讲,Binder 是 Android 中的一个类,它实现了 IBinder 接口。从 IPC 角度来讲,Binder 是 Android 中的一种跨进程通信方式,可以将 Binder 理解为一种虚拟的物理设备,它的设备驱动是 /dev/binder,该通信方式在 Linux 中并没有。

2017-09-11 15:38:42 452

原创 设置 Dialog 不显示标题的常用方法

1、通过dialog的window窗口调用requestWindowFeature(int featureId)方法getWindow().requestFeature(Window.FEATURE_NO_TITLE);注意需要在 Dialog 中的 setContentView( ) 方法之前调用。2、通过自定义一个style,添加 <item name="android:windowNoTitl

2017-09-11 11:28:07 7605

原创 Java中的反射机制(Reflect)

一、Class类的使用1、在面向对象的世界里,万事万物皆对象。不过在java语言中,有两类事物不是面向对象的。它们分别是 java 中的基本数据类型(例如:int a = 5)和 java 中的静态成员(包括静态成员变量、静态成员方法)。其中,虽然普通数据类型不是对象,但是与之对应的包装类却是面向对象的,例如:int - Integer,boolean - Boolean 等。2、类是谁的对象呢?类

2017-08-01 21:27:36 445 3

原创 JUnit 单元测试中的常用断言

前言一直以来没有专门了解过JUnit单元测试,直到最近谷歌IO大会上将Kotlin作为Google的官方语言后,自己从Kotlin官网Done下来kotlin_koans准备自己来练习一把熟悉下这门语言,谁知道当自己运行第一个test的时候就尴尬了,报错了。网上查了好久这个报错,也没有弄太明白,后来才反应过来,这里是用的JUnit测试啊。

2017-07-12 11:45:02 5178 1

原创 Android Studio 3.0全新时代:带来的一些新功能

前言Android Studio从3.0版本新增了许多功能,当然首当其冲就是从3.0版本新增了对 Kotlin 开发语言的支持,除此之外还有其他一些新功能,例如:Android Profiler (其中包含了: CPU Profiler、Memory Profiler、Network Profiler ),APK Debugger,Device File Explorer,Java 8 Langua

2017-07-06 19:04:12 26410 6

原创 带你彻底明白 Android Studio 打包混淆

在使用Android Studio混淆打包时,该IDE自身集成了Java语言的ProGuard作为压缩,优化和混淆工具,配合Gradle构建工具使用很简单。只需要在工程应用目录的gradle文件中设置minifyEnabled为true即可。然后我们就可以到proguard-rules.pro文件中加入我们的混淆规则了。

2017-07-06 15:20:18 24778 8

原创 Android Studio 自己常用的一些快捷键分享

自己整理电脑中文件时,突然发现有一个自己刚开始使用Android Studio来开发时快捷键不熟悉,自己记录和整理下来的一些平时使用比较多的快捷键,分享给需要的朋友。

2017-06-30 17:22:42 319

转载 为什么Dialog不能用Application的Context

为什么Dialog不能用Application的Context“BadTokenException: Unable to add window -- token null is not for an application”,发生一个BadTokenException的异常,不能添加Window。

2017-06-21 02:28:51 434

原创 Fragment构造函数打包时的踩坑:should provide a default constructor

打包编译报错 This fragment should provide a default constructor (a public constructor with no arguments),Avoid non-default constructors in fragments: use a default constructor plus Fragment#setArguments(Bundle) ins

2017-06-21 01:51:44 1665

原创 通过Intent打开相关的设置页面

打开设置的主界面,或直接打开某一个具体的设置页面,例如:跳转到网络设置页面,或者直接跳转到GPS设置的页面,而不是打开设置等等

2017-06-20 19:28:32 1303

原创 创建定时任务—Timer与Alarm

Android中的定时任务一般有两种实现方式,一种是使用Java API中提供的 Timer 类,一种是使用Android的 Alarm 机制。 这两种方式在多数情况下都能实现类似的效果,但是 Timer 有一个明显的短板,就是不太是用于那些需要长期在后台运行的定时任务。

2017-06-12 18:18:22 1017

原创 定制自己的Log日志工具—轻松控制log打印

在写项目时为了方便调试,往往会在代码的很多地方都打印大量的日志。最近项目基本完成了,这时却有一个非常让人头疼的问题,就是之前用于调试的那些日志在项目上线之后仍旧会照常打印,这样不仅会降低程序的运行效率,还有可能将一些重要的数据泄露出去。 为了不让项目上线后继续打印这些日志,就有人会想到干脆把之前的日志输出都删掉或者注释掉吧。但是如果是很大的项目,这么做恐怕谁也受不了吧,而且后期版本迭代过程中还

2017-06-12 15:30:29 1029

原创 HTTP协议基础(三):HTTP状态码

HTTP 状态码负责表示客户端 HTTP 请求的返回结果、标记服务器端的处理是否正常、通知出现的错误等工作。状态码的作用,状态码告知从服务器端返回的请求结果,职责是当客户端向服务器端发送请求时,描述返回的请求结果。借助状态码,用户可以知道服务器端是正常处理了请求,还是出现了错误。状态码的组成及类别,状态码由3位数字和原因短语组成。数字中的第一位指定了响应的类别,后两位无分类。

2017-04-21 15:18:37 609

原创 HTTP协议基础(二):HTTP报文内的http信息

HTTP 通信过程包括从客户端发往服务器端的请求及从服务器端返回客户端的响应。用于HTTP协议交互的信息被称为HTTP报文。HTTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的。HTTP报文分为请求报文和响应报文。HTTP报文结构  HTTP 报文本身是由多行(用 CR+LF 作换行符)数据构成的字符串文本。HTTP 报文大致可分为报文首部和报文主体两块。两者

2017-04-20 18:16:54 693

原创 HTTP协议基础(一):简单的HTTP协议

HTTP协议是一个属于TCP/IP通信协议应用层的一种面向对象的超文本传输协议。HTTP的主要特点:用于客户端和服务端之间的通信 ,通过请求和响应的交换达成通信 。

2017-04-20 16:06:31 1541

原创 网络通信机制:TCP/IP协议族及Http协议通信基础

相信大家都对掌握网络通信机制,熟悉TCP/IP和HTTP协议一点都不陌生吧,没错,几乎绝大部分的Android,Java等技术岗位要求都提到了这一点,笔者其实非计算机系科班出身,对这块儿内容不是很清楚。于是下定决心比较全面的了解一下这块知识,顺便简单整理了下,仅供大家参考,大神可绕行。   TCP/IP其实并不是单纯的一种协议,而是代表互联网相关联的协议集合,一般称为TCP/IP协议族。

2017-04-18 18:07:30 8434 2

原创 Java基本类型与引用类型 以及 Java内存知识整理

Java基本类型和引用类型是什么?每种基本类型都占多少位多少字节?以及Java内存管理相关知识整理,栈内存,堆内存,方法区,内存泄漏,垃圾回收机制等。

2017-04-12 18:13:29 2516

翻译 ArrayList源码

//// Source code recreated from a .class file by IntelliJ IDEA// (powered by Fernflower decompiler)//package java.util;import java.io.IOException;import java.io.ObjectInputStream;import java.

2017-03-29 18:54:54 395

原创 Android Studio2.2中JNI的简单使用

方式1:直接创建包含C++支持的项目 如下图所示,创建项目时,勾选“Include C++ Support”选项。方式2:手动引入C++支持 在没有勾选“Include C++ Support”选项的情况下,创建出来的项目大致是这样子的(Project视图):引入C++支持的步骤:1、配置NDK路径在项目节点上点右键,选择“Open Module Settings”。 配置Android ND

2017-02-21 15:18:51 261

原创 Activity的生命周期和启动模式

Activity的生命周期和启动模式,Activity是Android四大组件之首,使用也最为频繁,翻译过来就是“活动”,也就是Android应用中一个个我们可见的页面。

2016-11-02 17:54:58 309

原创 Android开发——Drawable绘制图形之Shape

相信大家在开发过程中经常需要绘制一些比较简单的图形,例如:分割线、按钮、圆形...等。但是笔者在开发初期总是遇到各种问题,以至于一个简单的效果都实现不了。网上也没有比较全面系统的介绍文章。今天就把自己整理出来的一些东西分享出来,希望可以帮助到一下开发新手,因为毕竟我现在也还算是一个新手嘛。(PS:大神勿喷)简介:Drawable 是 android.graphics.drawable 包下

2016-09-23 16:47:10 1421

原创 Android的基础简介

一、1G - 4G 的介绍1G 第一代模拟制式手机大哥大2G 语音+低速数据业务小灵通3G 具备更快的网速、网页浏览、音乐4G 具备100Mb/s速度、视频通话二、安卓操作系统安迪鲁宾三、安卓系统的版本介绍Android API (level)2.1 72.2 82.3 103.0 114.0 144.0.3

2016-07-10 23:22:53 298

代码规范.zip

内含多个版本的 Python 开发代码规范PDF文档。 Google-Python-Style-Guide中文版 Python开发编码规范

2019-10-20

空空如也

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

TA关注的人

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