- 博客(102)
- 资源 (3)
- 收藏
- 关注
原创 获取应用签名信息和签名哈希
一:获取签名的信息keytool -v -list -keystore E:\projects\MyApplication\app\ddd.jkskeyAlias 'demo'keyPassword '123456'storeFile file('demo.jks')storePassword '123456'随后输入你的密钥库口令,我的秘钥库口令是123456,再次回车得到的结果:密钥库类型: JKS密钥库提供方: SUN您的密钥库包含 1 个条目别名: key01.
2021-03-10 11:06:43
1478
原创 迁移到行业标准格式PKCS12
解决android创建签名,报"迁移到行业标准格式PKCS12"的问题解决办法,使用命令创建keytool -genkey -alias 填你的alias -keypass 你的alias密码 -keyalg RSA -keysize 2048 -validity 36500 -keystore E:\projects\HEIF-converter-master\MyApplication\app\ddd.jks -storepass 你的签名密码需要修改的就是1.alias2.alias密码
2021-03-09 17:47:14
1493
原创 性能优化之电量和网络
电量电量的分析工具 energy profiler使用 Android 8.0 及以上版本的设备时,使用Energy Profiler 可以了解应用在哪里耗用了不必要的电量。 Energy Profiler 会监控 CPU、网络无线装置和 GPS 传感器的使用情况,并直观地显示其中每个组件消耗的电量。还会显示可能会影响耗电量的系统事件(唤醒锁定、闹钟、作业和位置信息请求)的发生次数使用Profile 运行App。下面红框的时间段,我打开了定位功能的页面,就显示除了location高亮可以选择这
2020-11-27 15:58:19
683
原创 性能优化之启动优化
性能优化之启动优化启动状态应用有三种启动状态,每种状态都会影响应用向用户显示所需的时间:冷启动、温启动与热启动。在冷启动中,应用从头开始启动。在另外两种状态中,系统需要将后台运行的应用带入前台。建议始终在假定冷启动的基础上进行优化。这样做也可以提升温启动和热启动的性能。冷启动是指应用从头开始启动:系统进程在冷启动后才创建应用进程。发生冷启动的情况包括应用自设备启动后或系统终止应用后首次启动在热启动中,系统的所有工作就是将 Activity 带到前台。只要应用的所有 Activity 仍驻留在
2020-11-25 16:44:57
1058
原创 armeabi,armeabi-v7a,arm64- v8a的不同
目前android打包可以支持如下cpu架构armeabi-v7a 第7代 ARM v7,使用硬件浮点运算,具有高级扩展功能(支持 armeabi 和 armeabi-v7a,目 前大部分手机都是这个架构)arm64-v8a 第8代,64位,包含AArch32、AArch64两个执行状态对应32、64bit(支持 armeabi-v7a、 armeabi 和 arm64-v8a)x86 intel 32位,少数的平板应用此架构(支持 armeabi(性能有所损耗) 和 x86)x86
2020-11-24 16:41:42
7110
原创 性能优化之apk瘦身
一:apk的分析将apk直接拖入到android studio中,可以分析出lib,res等文件的大小可以用https://nimbledroid.com/;这个网址可以直接分析apk的文件大小,dex方法数,sdk方法数二:代码瘦身1.第三方库的瘦身各个三方库依赖的同个库版本需一致对于同类型的库,选择方法数少的,可以用插件android method count来计算对于一个库中只需要用其一个模块的功能,只需要集成对应功能即可,例如fresco中只需要其webp图片加载功能2.删除
2020-11-24 09:53:28
250
3
原创 android 应用图标设配
https://www.jianshu.com/p/e01d8b9e8ceehttps://www.jianshu.com/p/ed2714f7c7c5
2020-11-19 16:50:42
112
原创 Ubuntu 编译ijkplayer 支持几乎所有格式(MP4,mov,mkv,avi,wmv,m4v,mpg,webm,ogv,3g2.flv,f4v,swf)和https
以下都是经过自己测试过的,并集成,已测试MP4,mov,mkv,avi,wmv,m4v,mpg,webm,ogv,3g2.flv,f4v,swf格式可正常播放并有声音整个编译过程和集成是按下面说的博客编译的,需要注意的是以下几点:环境变量配置时:ndk的前缀必须是ANDROID_SDK,不然后面用ndk时,还是会报找不到NDK ndk的版本必须是10-14的 ERROR:Failed to create toolchain:sudo apt-get install python 集
2020-09-16 11:58:05
1275
原创 Git 解决the remote end hung up unexpectedly问题
当网络不好的时候,pull和push代码总是失败,可以打开cmd修改配置修改提交缓存大小为1000M,或者更大的数字git config --global http.postBuffer 1048576000可通过命令查询修改后的配置git config -ldiff.astextplain.textconv=astextplainfilter.lfs.clean=...
2020-03-17 12:12:31
783
原创 布局优化
布局优化布局的选择 能用ConstraintLayout就用ConstraintLayout FrameLayout能实现的优先使用FrameLayout 最简单高效的 查看源代码的行数,是最少的 其次是RelativeLayout和LinearLayout优先选择LinearLayout RelativeLayout会让子View调用2次onMeasure,...
2019-05-06 17:04:37
197
原创 APM 介绍
APM 全称 Application Performance Management & Monitoring (应用性能管理/监控)原理Android APM 的原理其实非常简单,用一句话总结就是:依据打包原理,在 class 转换为 dex 的过程中,调用 gradle transform api 遍历 class 文件,借助 Javassist、ASM 等框架修改字节码,插...
2019-05-06 14:56:12
2391
1
原创 解决webview 添加android.uid.system后报错问题
使用hook 反射调用class FaqActivity : BaseActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setStatusNavBarColor(Color.TRANSPARENT, ...
2019-05-05 10:33:20
1693
原创 Android Architecture Components 之 LiveData
LiveDataLiveData 是一个数据持有类,它持有一个值并且该值可以被观察。不同于普通的可观察者,LiveData 遵从应用组件的生命周期,这样 Observer 便可以指定一个其应该遵循的 Lifecycle。如果 Observer 所依附的 Lifecycle 处于 STARTED 或者 RESUMED 状态,则 LiveData 认为 Observer 处于活跃状态。 ...
2019-04-30 10:46:24
276
原创 Android Architecture Components 之 Lifecycle
LifeCycle Lifecycle:它是一个持有 Activity/Fragment 生命周期状态信息的类,并且允许其他对象观察此状态。 LifecycleOwner:是一个具有单一方法的接口。如果一个类实现了此接口,则该类中需要持有一个 Lifecycle 对象,并通过LifecycleOwner.getLifecycle() 方法返回该对象。 并不是只有 Activit...
2019-04-30 09:40:05
126
原创 Android Architecture Components 之 ViewModel的源码分析
ViewModel参考:https://blog.csdn.net/u010072711/article/details/80035276创建val viewModelProvider = ViewModelProviders.of(_mActivity,viewModelFactory)val manageViewModel = viewModelProvider.get(Man...
2019-04-29 17:33:52
147
原创 kotlin 单例模式
class PlantRepository private constructor(private val value: String) { companion object { // For Singleton instantiation @Volatile private var instance: PlantRepository? = null...
2019-04-28 16:54:03
111
原创 解决ARouter加固后不执行问题,测试ok
AutoRegister解决ARouter经过加固后初始化失败的问题 相应的Arouter版本 ext.arouter_api_version = '1.4.1' ext.arouter_compiler_version = '1.2.2' AutoRegister版本1.3.0 集成项目buildclasspath 'com.billy.android:a...
2019-04-08 10:10:25
1021
原创 kotlin anko页面跳转实战教程,携带参数或flag
1:正常跳转startActivity<RegisterActivity>()携带参数startActivity<ResetPwdActivity>("key" to "值")2:A页面跳到B页面,再跳到C页面,再跳到A页面时,要求清空B,C页面退出,并且不重走A的生命周期startActivity(intentFor<MainActivity>().singl...
2018-04-10 15:30:26
2922
原创 kotlin 实现类Parcelize的问题
@Parcelizeclass Book(val title: String, val author: String, val year: Int) : Parcelable并且在app的build.gradle中添加androidExtensions { experimental = true}这时还会报错编译器会警告This class implements Parcelable ...
2018-03-28 16:51:48
1825
原创 kotlin + dagger2 + rxjava
kotlinhttps://huanglizhuo.gitbooks.io/kotlin-in-chinese/content/FunctionsAndLambdas/Higher-OrderFunctionsAndLambdas.htmldagger2:https://www.imooc.com/article/22622rxjava:http://gank.io/post/560e15be2d...
2018-03-26 13:45:28
291
转载 Facets和Artifacts的区别
Facets和Artifacts的区别:Facets 表示这个module有什么特征,比如 Web,Spring和Hibernate等; Artifact 是maven中的一个概念,表示某个module要如何打包,例如war exploded、war、jar、ear等等这种打包形式;一个module有了 Artifacts 就可以部署到应用服务器中了! 在给
2017-12-15 17:59:03
382
原创 IDEA中的war和war exploded的区别
选择war还是war exploded这里首先看一下他们两个的区别:war模式:将web工程以war包的形式上传到服务器 war exploed模式:将web工程以当前文件夹的位置关系上传到服务器war模式:先打成war包,然后再发布到Tomcat的ROOT下,所以选择这个后,你再看下你的tomcat的root文件夹下,是刚打成的项目war exploded模式
2017-12-15 17:48:26
1907
原创 redis数据类型详解
1:ping用于检测 redis 服务是否启动2:string存:set key value取:get key3:incr自增与decr自减4:keys * 去除所有的key5:del key删除key6:Hash 保存的是value也是一个键值对形式的保存是hsethkeys key:看所有的field
2017-11-24 13:48:48
179
原创 redis 报(error) ERR Errors trying to SHUTDOWN. Check logs
使用./redis-cli shutdown关闭redis,报(error) ERR Errors trying to SHUTDOWN. Check logs这个错误,解决办法是:修改redis.conf文件,dir /developer/redisfile/developer/redisfile:这个目录是自己创建的,并且这个目录的访问权限要打开:
2017-11-23 14:20:27
1657
原创 远程连接redis
环境:redis4.0.2 centos7安装好后,用./redis-cli -h 你的ip -p 你的端口来连接,发现连接被拒绝,原因:http://blog.csdn.net/sukexiaozi/article/details/520224491:修改redis.conf文件注释掉bind 127.0.0.1 ;修改成#bind 127.0.0.1
2017-11-23 12:50:31
1113
原创 redis的安装
一:安装1:前提:redis是c语言开发的,安装redis需要c语言的编译环境;如果没有gcc,则需要在线安装。yum install gcc-c++2:下载源码包wget http://download.redis.io/releases/redis-4.0.2.tar.gz3:解压缩tar xzf redis-4.0.2.tar.gz4:进入解压
2017-11-23 11:28:51
252
原创 mac下安装nginx及其启动等
1:安装sudo brew install nginx2:查看版本nginx -v3:安装目录/usr/local/etc/nginx4:启动cd /usr/local/etcsudo nginx5:验证;默认端口是8080http://localhost:80806:可以修改他的配置文件,然后重启;sud
2017-11-19 14:42:56
647
原创 zookeeper和dubbo-admin安装
一:安装zookeeper1:前提得已安装jdk2:下载wget http://mirrors.shuosc.org/apache/zookeeper/zookeeper-3.4.11/zookeeper-3.4.11.tar.gz3:解压 tar -zxvf zookeeper-3.4.11.tar.gz4:进入目录5:创建data文件夹6:把
2017-11-17 17:15:51
270
原创 nginx详解之反向代理和负载均衡
一:正向代理和反向代理正向代理,也就是传说中的代理,他的工作原理就像一个跳板,简单的说,我是一个用户,我访问不了某网站,但是我能访问一个代理服务器,这个代理服务器呢,他能访问那个我不能访问的网站,于是我先连上代理服务器,告诉他我需要那个无法访问网站的内容,代理服务器去取回来,然后返回给我。 从网站的角度,只在代理服务器来取内容的时候有一次记录,有时候并不知道是用户的请求,也隐藏了用户的资料
2017-11-17 15:22:10
682
原创 nginx详解之配置虚拟主机
配置多个虚拟主机就是在一台服务器启动多个网站。如何区分不同的网站:1、域名不同2、端口不同一:下面通过配置端口不同,访问不同的虚拟主机1:编辑nginx.conf配置文件vim conf/nginx.conf下面是默认的主机配置2:添加一个端口不一样的主机,并指向另外一个静态页面 server { listen
2017-11-17 14:49:53
786
原创 nginx详解之安装与配置文件详解
一:什么是nginxNginx是一款高性能的http服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定。二:应用场景1、静态资源服务器。访问一些静态网页,jsp,css,图片等2、虚拟主机。可以实现在一台服务器虚
2017-11-17 13:35:21
350
原创 linux永久关闭防火墙
暂时性关闭防火墙,开机后,防火墙还是会打开service iptables stop永久性关闭防火墙,开机后不启动防火墙chkconfig iptables off
2017-11-13 21:15:31
738
原创 linux解压
1:解压tar -zxvf ****.zip如果报这个错的话gzip: stdin has more than one entry--rest ignoredtar: Child returned status 2tar: Error is not recoverable: exiting now原因是:tar命令是调用了gunzip命令的,对只
2017-11-05 17:14:25
402
原创 linux学习之rpm命令
1:简介RPM 是 Red Hat Package Manager 的缩写,本意是Red Hat 软件包管理,顾名思义是Red Hat 贡献出来的软件包管理;在Fedora 、Redhat、Mandriva、SuSE、YellowDog等主流发行版本,以及在这些版本基础上二次开发出来的发行版采用;RPM包里面都包含什么?里面包含可执行的二进制程序,这个程序和Window
2017-10-26 23:18:00
262
原创 linux学习之centos jdk安装配置
1:下载在根目录下创建developer目录,在这个目录中再创建setup目录再developer目录中下载wget http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-x64.rpm?AuthParam=15
2017-10-26 23:11:01
182
原创 linux学习之添加用户并赋予权限
1:配置一个用户,这样我们连接阿里云,就不用连root了这个命令是给创建一个hah目录,在/usr/hahuseradd -d /usr/hah -m hah2:重置密码passwd hah然后就输入自己的密码3:现在赋予hah sudo权限sudo vim /etc/sudoers找到root
2017-10-26 23:04:50
201
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人