自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zhaihoy的博客

既然选择了远方 便只顾风雨兼程

  • 博客(58)
  • 收藏
  • 关注

原创 Android打印调用栈

/打印本地调用堆栈。

2023-07-12 16:10:33 635

原创 Java kotlin报错The minCompileSdk (31) specified in a dependency‘s AAR metadata解决方法

he minCompileSdk (31) specified in a dependency's AAR metadata解决方法

2022-02-10 17:32:27 1675

原创 MAC for M1 chip

现象 : 同意之后下载网站会报异常 in one words 就是下不了解决的方案 拿着https://redirector.gvt1.com/ 网站https://tools.ipip.net/domain.php域名查询_专业的 IP 地址库_IPIP.NET 查询 。值得注意的是 首先要注册再查询 不要重复点击 有查询的次数限制 拿到IP地址 203.208.40.97 修改hosts terminal中 ...

2021-12-22 11:23:10 192

原创 MAC 逆向APK

准备逆向工具 apkTool 、apkTool.jar 、dex2Jar稳定版 (不要下载最新的2.0或者2.1 最新的dex2jar 运行会报错)、JUI 查看代码结构 (1) apkTool 、apkTool.jar:Apktool - How to Install 上面这段话是? 1. 点击wrapper script 将网页上的内容 command+A 全选 另存为文件 apktool 文件 2.去下...

2021-11-15 13:36:39 3351

原创 SparseArray 稀疏数组

上图主要的方法稀疏数组就是数组中大部分的内容值都未被使用(或都为零),在数组中仅有少部分的空间使用。因此造成内存空间的浪费,为了节省内存空间,并且不影响数组中原有的内容值,我们可以采用一种压缩的方式来表示稀疏数组的内容。它有两个方法可以添加键值对: public void append(int key, E value) { if (mSize != 0 && key <= mKeys[mSize - 1]) { put(key..

2021-10-11 14:11:42 108

原创 Android studio 如何查看数据库

你是如何查看和调试数据库的 ?我们都知道,数据库文件是存在应用沙盒中的,无法直接查看。当然 root 过的手机可以直接导出来,通过 Android Studio 自带的 Device File Explorer 也可以导出来,在 PC 端通过任何数据库软件都可以查看,例如 Navicat 等等。这样做其实很麻烦,业界一些优秀的开源库提供了一种解决方案,那就是Android-Debug-D...

2020-04-15 15:54:16 8709 2

原创 windows git reset --hard HEAD^ && Android studio git 命令出现乱码

git reset --hard HEAD^错误提示 More? yfatal: ambiguous argument 'HEADy': unknown revision or path not in the working tree.Use '--' to separate paths from revisions, like this:'git <command&...

2020-03-16 10:43:31 276

原创 防止重复创建快捷方式

public class LaucherUtils { private static String AUTHORITY = null; public static boolean isShortCutExist(Context context, String title) { boolean isInstallShortcut = false; ...

2019-09-26 16:25:12 269

原创 FragmentPagerAdapter 不走 getItem 导致无法加载Fragment

才开始一直以为是生命周期出现问题,到最后log 分析到getItemView是不走的 ,然后进行对比三者关系和差别 发现:【ViewPager】ViewPager如其名所述,是负责翻页的一个 View。准确说是一个ViewGroup,包含多个 View 页,在手指横向滑动屏幕时,其负责对 View 进行切换。为了生成这些 View 页,需要提供一个PagerAdapter来进行和数据绑...

2019-08-15 14:18:50 935

原创 java.lang.ClassNotFoundException: Didn't find class "xxx" on path: DexPathList -----坑!

令人无语的Android studio 遇到这种情况setp (一) step (二 ) step (三) step (四) step(五)选择 OK ,重新运行 -----

2019-04-28 16:43:20 2118

转载 Android内存优化

1.Android 内存基础所有的内存都是基于物理内存的,即移动设备上的RAM。当启动一个Android程序时,会启动一个Dalvik vm 进程,系统会给它分配固定的内存空间,这块内存会映射到RAM上某个区域,然后Android程序就运行在这块空间上。JAVA里会将这块空间分成Stack栈内存和Heap堆内存。stack里存放对象的引用,heap里存放实际对象数据。 2.Android ...

2019-01-18 16:13:18 164

转载 git 如何修改已经push 的commit 的信息

命令以下修复方式中,总共涉及这些命令$ git log$ git rebase -i HEAD~5$ git commit --amend$ git rebase --continue$ git push -f注: 在修复历史commit message的时候,请确保当前分支是最新代码,且已经提交了所有本地修改。步骤1. 使用git l...

2018-11-12 15:11:01 13963 4

原创 Mac关于环境变量

 Mac下修改环境变量并保存1. 终端执行 touch ~/.bash_profile2.终端执行 vim ~/.bash_profile3.点一下向下箭头,点E 进入bash_profile文件4.点i进入编辑模式,进行编辑5.编辑完成后,点esc 退出6.直接输入 ::wq!   这四个字符后,回车即可保存。 注:如果编辑profile文件没有写正确,会导致...

2018-10-08 10:11:27 216

原创 Monkey测试

命令 adb shell monkey -p com.huawei.XXXXXXXXXX(替换包名) --throttle 500 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v 1000000&gt;d...

2018-08-27 15:19:35 307

原创 关于gradle 编译APK

./gradlew aMR  简单实用  android 3.1.0

2018-08-09 15:02:44 260

转载 android studio 中切换分支以及进行分支的基本操作

创建项目首先我创建 Android 项目 GitBranchSample, Share Project on GitHub。查看分支查看本地所有分支:$ git branch * mastermaster 分支前的 * 字符,它表示当前所在的分支。查看远程所有分支:$ git branch -r origin/master列出所有本地分支和远程分支:$...

2018-08-07 18:09:24 3915

转载 线程(主,子)间通讯

1.子线程向主线程发消息 进行通讯主线程中的方法  Handler myhander=new handler(){Override public void handleMessage(Message msg) { super.handleMessage(msg);    switch (msg.what) {        case 0:       //do someth...

2018-07-25 10:42:11 210

转载 Android应用项目中BaseAdapter、SimpleAdapter和ArrayAdapter中的三种适配器

一、写在前面:  本次我们来讲解一下Android应用中三个适配器:BaseAdapter、SimpleAdapter和ArrayAdapter。其中常见的是BaseAdapter,也是个人推荐使用的适配器。二、深入了解:  1.什么是适配器?   适配器:在安卓中,顾名思义就是把数据变成符合界面风格的形式,并且通过ListView显示出来。也就是说适配器是数据和界面之间的桥梁。   2.为对象设...

2018-07-14 18:54:22 636

转载 关于第三方图片选择器(MultiImageSelector)

首先下载MultiImageSelector,GitHub和CSDN上面都有。新建一个app,给自己的app添加一个model。File--&gt;new--&gt;Import Model,找到MultiI-mage-Selector这个文件夹导入。等它构建完成。如果于大盘picasso一直构建不完,终止进程重启。我就是这样的。或者另外构建picasso的依赖。因为网和防火墙的问题,很无奈。接着...

2018-06-28 15:25:00 874

原创 如何判断一个URL是不是可以正常使用

Java 测试URL地址是否能正常连接public static int testWsdlConnection(String address) throws Exception { int status = 404; try { URL urlObj = new URL(address); HttpURLConnection oc = (HttpURLConnection) urlOb...

2018-06-28 15:22:58 3413

转载 Android的内存溢出

避免内存溢出的方法,主要是对以下三个方面对程序进行优化内存引用在处理内存引用之前,我们先来复习下什么是强引用、软引用、弱引用、虚引用强引用:强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。 当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足的问题。软引用:如果一个对象只具有软引用,但...

2018-06-26 11:27:09 127

转载 Android View的绘制流程

Android View的绘制流程Measure过程#对于测量我们来说几个知识点,了解这几个知识点,之后的实例分析你才看得懂。1、MeasureSpec 的理解对于View的测量,肯定会和MeasureSpec接触,MeasureSpec是两个单词组成,翻译过来“测量规格”或者“测量参数”,很多博客包括官方文档对他的说明基本都是“一个MeasureSpec封装了从父容器传递给子容器的布局要求”,这...

2018-06-25 16:07:17 204

原创 Ormlite 数据库的使用

首先添加依赖public class DataBaseHelper extends OrmLiteSqliteOpenHelper { private static DataBaseHelper dbHelper; Context context; public DataBaseHelper(Context context) { super(co...

2018-06-25 15:01:02 373

原创 开场动画SplashActivity

public class SplashActivity extends BaseActivity { @BindView(R.id.iv_logo) ImageView mIvLogo; @BindView(R.id.tv_name) TextView mTvName; @Override public int getLayoutId() { ...

2018-06-25 10:55:19 373

原创 android retrofit2.0 Presenter

package com.joy.freeread.ui.presenter;import android.content.Context;import android.content.Intent;import android.support.v7.widget.RecyclerView;import com.joy.freeread.bean.gank.DailyGankBean;i...

2018-06-11 13:59:51 225

原创 Android 技术栈

开发语言Java开发工具Android Studio自动化编译gradle现有的Android 技术栈组织架构基础层基础框架层专注于技术领域实现,提供app公有特性,避免重复制造轮子。注重性能和稳定性。需要不断稳固提高健壮性。 1. 网络通信 网络通信底层选型的是成熟框架okhttp,上层则是自有封装库,针对原生框架进行了请求和回调上的封装。 2. 数据库操作 少于5张表的单表CRUD工作一般用原...

2018-06-07 09:36:55 2114

原创 UI 的事件传递

什么是UI事件?触摸屏幕中UI控件的那一刻即为事件发生MotionEvent对象包含了所有的触摸事件,如触摸的位置、多指触摸等MotionEvent描述了当前的操作类型,以下为常见类型(数字代表对应的值):ACTION_DOWN = 0 按下ACTION_UP = 1 抬起ACTION_MOVE = 2 移动ACTION_CANCEL = 3 动作取消ACTION_OUTSIDE = 4 动作超...

2018-05-25 19:56:41 585

原创 将项目提交到远程github

2018-05-21 19:02:15 131

转载 http 那些事儿

详情参考:http://blog.51cto.com/virtualadc/580832http://www.cnblogs.com/cocowool/archive/2011/08/22/2149929.html

2018-05-07 09:51:01 91

转载 关于适配市面上的Android手机的刘海屏幕

一大波 Android 刘海屏来袭,全网\Maybe/最全适配技巧!一、序Hi,大家好,我是承香墨影!Apple 一直在引领设计的潮流,自从 iPhone X 发布之后,"刘海屏" 就一直存在争议。不过不管你怎样,Android 也要跻入 "刘海屏" 的行列,尤其是 Android P 发布之后,也从系统级支持顶部凹槽屏幕设计。很多厂商也在逐渐推出 “刘海屏” 设计的手机,在国内比较常见的就是 O...

2018-05-03 16:35:29 558

原创 自定义圆形图像 CircleView

public class MyCircleImageView extends ImageView { private static final ScaleType SCALE_TYPE = ScaleType.CENTER_CROP; private static final Bitmap.Config BITMAP_CONFIG = Bitmap.Config.ARGB_88...

2018-04-18 11:37:12 391

原创 关于微信支付查询结果 查询是不是真正意义上的成功还是失败

① 首先要调起微信支付 ,执行微信或者是支付宝支付上图中已经注释的查询该笔订单是不是真正的意义上的支付成功了,这个查询要放在服务中去查询也就是 调起的QueryPayResultServices②再看这个QueryPayResultServices 是如何写的public class QueryPayResultService extends IntentService { privat...

2018-03-16 12:00:34 4277

转载 Android性能优化

Android性能优化:这是一份全面&amp;详细的内存优化教程在 Android开发中,性能优化策略十分重要本文主要讲解性能优化中的内存优化,希望你们会喜欢目录1. 定义优化处理 应用程序的内存使用、空间占用2. 作用避免因不正确使用内存 &amp; 缺乏管理,从而出现 内存泄露(ML)、内存溢出(OOM)、内存空间占用过大 等问题,最终导致应用程序崩溃(Crash)3. 储备知识:Androi...

2018-03-14 12:02:35 159

原创 集成支付宝支付流程 和查询支付的结果

一:介绍 支付之前,在网上也查寻了资料, 支付接入坑太多,微信坑最多,api文档太复杂。 二:交互流程建议先把开发文档仔仔细细看一遍,一定要看,刚开始的时候没有老老实实地看完,结果遇到很多的坑,浪费的挺多的时间的,所以建议一定要好好看看,特别是交互流程这一部分。2.1 功能流程1.第4步:调用支付接口:此消息就是本接口所描述的开发包提供的支付对象PayTask,将商户签名后的订单信息传进pay方法...

2018-03-14 11:13:27 986

转载 集成环信(集成即时通讯)

 1 下载sdk3.1.5后,在examples下找到easeui2 将build.gradle删除(这一点非常重要,因为没有删除这个文件,后面出现的冲突浪费了我三四天时间)3 在examples-ChatDemoUI3.0找到libs4 在你的 (注意是主modules) 主modules-main下创建jniLibs文件夹,把demo中的jar包全部父之过去5 之后就是导入easeui了(注意...

2018-03-09 16:29:29 745

转载 集成微信支付的详细的步骤

准备工作在应用集成微信支付之前,我们在微信开放平台必须要个开发者账户1.注册完之后创建一个移动应用,并获取APPid等可以参考:http://blog.csdn.net/vroymond/article/details/534227442.申请开通微信支付能力认证开发者资格 开通微信支付 3.开通成功后,获取得到商户号并在商户平台配置API密钥(生成预支付订单号需要) API密钥配置流程:http...

2018-02-27 14:31:58 4013 2

转载 高德地图获取应用签名

你看到的这个文章来自于http://www.cnblogs.com/ayanmw 在微信开放平台,申请移动应用的时候:https://open.weixin.qq.com/cgi-bin/appcreate?t=manage/createMobile&amp;type=app&amp;lang=zh_CN&amp;token=60682ddfbd9106b1c4b1f9d70f56c98e5f72...

2018-02-27 14:28:10 1563

原创 Android中图片的三级缓存

图片的三级缓存机制一般是指应用加载图片的时候,分别去访问内存,文件和网络而获取图片数据的一种行为。以下内容只是简单的介绍了三级缓存的思想和大致流程,还有很多细节未进行处理,如果想深入研究可以在Github上找Picasso的源码进行研究,谢谢。一、三级缓存流程图三级缓存流程图二、代码框架搭建这里我仿造Picasso的加载图片代码,也做出了with,load,into等方法。2.1 with(con...

2018-02-22 11:52:12 164

原创 关于接口 实名认证

private void authenticate() { String name = et_name.getText().toString().trim(); String id = et_id.getText().toString().trim(); //只允许输入二代身份证:18位,最后一位可能是字母的,也可能是数字.但二代身份证必须是18位 if (T

2018-01-29 09:20:25 2384

转载 MVC和MVP

MVCMVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面

2017-11-21 14:40:09 228

空空如也

空空如也

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

TA关注的人

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