- 博客(18)
- 收藏
- 关注
原创 Android存储权限
Android存储权限(备忘)访问外置存储并不是一定需要以下这些权限(Android 4.4以上)WRITE_EXTERNAL_STORAGEREAD_EXTERNAL_STORAGE通过getExternalCacheDir()getExternalFilesDir()这两个方法不需要申请权限就可以访问外置存储的 /storage/sdcard0/Android/data/...
2019-02-12 18:26:34
10832
转载 【转】SurfaceView理解与Demo
【转】SurfaceView理解与Demo原文链接【1】:http://www.cnblogs.com/zhangyingai/p/7087371.html原文【1】是java,以下是修改为kotlin语法原文链接【2】:https://www.jianshu.com/p/afe23814b207先上代码SurfaceHolder.Callback接口overrid...
2019-02-02 22:30:07
354
原创 ArryList、Vector、HashMap扩充大小
ArryListArrayList的默认初始容量为10可以自定义指定初始容量(构造方法)扩容:new.size = old.size*1.5VectorVector初始大小为10扩容:new.size = old.size*2HashMapHashMap初始大小为16扩容:new.size = old.size*2通过移位翻倍else if ((newCap = ol...
2019-01-25 22:17:28
254
转载 HTTP幂等性
理解HTTP幂等性基于HTTP协议的Web API是时下最为流行的一种分布式服务提供方式。无论是在大型互联网应用还是企业级架构中,我们都见到了越来越多的SOA或RESTful的Web API。为什么Web API如此流行呢?我认为很大程度上应归功于简单有效的HTTP协议。HTTP协议是一种分布式的面向资源的网络应用层协议,无论是服务器端提供Web服务,还是客户端消费Web服务都非常简单。再加上浏...
2019-01-25 22:02:45
240
转载 三种bug定位方法
1、定位bug产生的过程测试用例的执行,基本上是程序运行过程bug产生的开始,若测试结果与期望结果有出入,即出现了错误征兆,定位bug过程首先要找出bug产生的原因,然后对bug进行修正。因此定位bug过程有两种可能:一种可能是找到了bug产生原因并提给开发去纠正;另一种可能是测试过程中程序产生的bug原因不明,测试或开发人员只得做某种推测,然后再设计测试用例证实这种推测,若一次推测失败,再做第...
2019-01-25 21:47:00
12890
转载 Android Launcher 启动 Activity 的工作过程
Android Launcher 启动 Activity 的工作过程转载出自: https://blog.youkuaiyun.com/qian520ao/article/details/78156214先存预览一下核心流程前言Launcher整体流程startActivityForResultInstrumentationIBinder contextThreadIBinder t...
2019-01-15 21:36:01
293
原创 华为系统BottomSheetDialog或DialogFragment底部弹出,Edittext键盘部分遮盖
华为系统BottomSheetDialog或DialogFragment底部弹出,Edittext键盘部分遮盖键盘底部遮盖现象以BottomSheetDialog为例查看BottomSheetDialog.java源码使用的是 Theme.Design.Light.BottomSheetDialog这个themestyle.xml中继承Theme.Design.L...
2018-07-12 15:21:06
6010
原创 gradle管理子模块,上传本地maven库
gradle管理子模块,上传本地maven库为什么要这样做:AndroidStudio中项目引用了多个模块(module),编译的时候都会把每个模块的代码重新编译一遍,非常耗时,尤其是这些模块的代码基本不怎么改动为了减少不必要的编译时间,把模块现编译好,主工程模块(:app)直接调用编译好的模块前提准备:在project的build.gradle(和setting....
2018-06-09 18:13:58
1379
1
原创 自动备份android的mapping.txt文件
自动备份android的mapping.txt文件为什么要这样做:由于集成了腾讯的bugly,但是出现异常上报时因为需要上传mapping.txt对应表才能找到异常出错的位置,为了能够根据版本统一管理并自动操作mapping.txt文件,需要在build.gradle文件写一下脚本每次混淆打包后复制mapping.txt到指定的项目目录统一管理前提准备:在progu...
2018-05-31 15:51:57
2243
原创 AndroidStudio 打开模拟器闪退
环境:macosx最近没做什么操作,然后想用下AndroidStudio的模拟器测下东西,发现不管怎么打开都启动不了模拟器。AndroidStudio又没有报任何信息就突然闪退,然后开始排查。1.可能是模拟器坏了,换一个启动,发现还是老样子,看来必须要获取点错误日志信息。2.网上搜索到 emulator -avd “Nexus 4 API 22(我的模拟器avd显示的名字)” 命令可以
2018-01-11 18:39:55
17240
原创 IDEA打包war部署到tomcat 404错误(tomcat配置正确)
IDEA打包war部署到tomcat 404错误(tomcat配置正确)此问题状况可能满足以下条件的1.本地使用gradle bootRun后访问地址正常 2.部署到tomcat后访问接口地址出现404错误 3.在tomcat项目中新建index.html可以访问解决方案1.gradle首先确认满足以下条件buildscript { repositories { mav
2017-11-23 17:27:23
5560
原创 Android 把修改后的classes.dex 重新放入 apk中
1.解压apk把.apk后缀名修改成zip,解压提取出classes.dex2.修改classes.dex通过 IDA PRO 或 C32ASM 等工具修改文件中的值3.利用工具等对修改后的classes.dex重新效验dexfixer或者自己编写工具 java 代码如下public class FixDexHeaderUtil { public static void
2017-11-14 15:18:01
7073
原创 Android与H5交互,数据不同步
问题:我直接在nativeAction的方法下吊起一个下载方法,导致了下载回调start(DownloadObservable o, final String url)函数中无论对H5ReportBean h5Data = downloadData.get(url);的h5Data怎么修改,在其它函数(success、fail、update)都不起作用,get出的数据仍是修改前的数据
2017-08-14 16:52:58
636
转载 android gradle编译 多个flavor中加载不同的android library的flavor
Library build.gradle:apply plugin: 'com.android.library'android { .... publishNonDefault true productFlavors { market1 {} market2 {} }}project
2017-06-09 13:25:25
4057
原创 android混淆相关
把library源码中AndroidManifest的activity声明放到了application的AndroidManifest,运行时直接Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.coolad.main/com.xxx.sdk.act
2017-04-25 10:43:12
413
原创 遇到的java坑备忘
//这样写是有问题的 //init() new 出来的car不会回到findCarById()函数中 //低级错误啊,哎 public Car findCarById(String id) { Car car=carRespository.findById(id); if (null==car){ init(id,c
2017-04-14 16:45:37
260
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人