Android技术
文章平均质量分 82
ltym2014
这个作者很懒,什么都没留下…
展开
-
Android 完整反编译APK过程(Mac版)
一、需要的工具**apktool:**反编译APK文件,得到classes.dex文件,同时也能获取到资源文件以及布局文件。**dex2jar:**将反编译后的classes.dex文件转化为.jar文件。**jd-gui:**用于将.jar文件转换成java代码。二、反编译步骤第一步:使用apktool工具对APK进行反编译1. 下载apktool注意:1中保存名为apktool的时候不能有后缀名,mac上默认为txt后缀2. 把下载好的apktool脚本和apktool.jar文件原创 2022-03-04 13:49:20 · 504 阅读 · 0 评论 -
上手一次完整的Ijkplayer源码编译(mac环境)
使用说明首先,我们知道引入ijkplayer到项目的方式有两种第一种 gradle引用# requiredallprojects { repositories { jcenter() }}dependencies { # required, enough for most devices. compile 'tv.danmaku.i...原创 2020-03-18 10:06:41 · 1059 阅读 · 0 评论 -
AndroidStudio3.2有哪些更新
AndroidStudio3.2有哪些更新Android App BundleAndroid app Bundle 新应用发布格式,比旧的APK应用尺寸减少11%-64%Google Play 名为 Dynamic Delivery(动态交互)的新应用服务模式会处理您的App Bundle,针对每个用户的设备配置,生成并服务优化后的APK,从而让用户只需下载其需要的代码和资源就能运行您的应...转载 2018-10-16 22:50:14 · 1434 阅读 · 0 评论 -
Android App Bundle的学习整理
对于手机用户来说,“存储空间不足” 警告有时会显得非常烦人。时至今日,手机存储容量仍然是有限的。虽然存储容量多年来一直在增长,但是填充在我们手机里的东西:音乐、应用、游戏、照片等也同样在增长。如何针对不同的用户给出最优的安装体验,正是 Android App Bundle 所要解决的问题传统的APKAndroid Package Kit包含了应用支持的所有设备的代码和资源,您在安装apk是...原创 2018-10-18 22:39:04 · 11654 阅读 · 1 评论 -
Android 自定义房价均价走势折线图
最近接手一个二手房项目,类似于房天下,安居客等app,里面需要用到一个每月均价走势折线图,目测功能比较简单,没必要动用MpAndroidChart,也不能适应项目要求,所以觉得自己写一个简单的。在此做一个记录。先上图 这里主要是Y轴的刻度不明确,所以这里为了简单起见,固定最低点和最高点的位置,中间再均等分,算出每一份高度对应的价格,再确定具体价格对应的高度,具体如下: - 确定最低点和最高...原创 2018-06-09 18:31:05 · 1199 阅读 · 0 评论 -
ViewFlipper锁屏解锁后停止滚动异常分析
ViewFlipper一般被用作指定的多个View对象的动态切换,当想要自动播放时,一般可使用startFlipping()启动播放。 但是,测试中发现,如果手机没有开启锁屏功能(黑屏后唤醒直接进入桌面或app),当手机黑屏后再次打开,你会发现停止播放了,而且即使主动调用startFlipper()也不会播放。从ViewFlipper源码来看, ViewFlipper自动播放的关键标志位是...原创 2018-03-16 10:54:27 · 1787 阅读 · 1 评论 -
Android 关于各版本悬浮窗权限的问题
Android 关于悬浮窗权限的问题 想在app内的任一页面均能弹出Dialog,实现全局Dialog,开始认为Dialog只能依附在Activity上,后来查询到可以采用悬浮窗模式。正常情况下的处理: dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT)以及在清单文件中添加 <uses-permis原创 2017-12-21 10:22:50 · 12671 阅读 · 3 评论 -
ScrollView嵌套 EditText,输入多行(足够多的情况)会使ScrollView整体滚动的问题
ScrollView 中嵌套 EditText,在 EditText 中输入多行,会使 ScrollView 整体滚动,如果输入的内容长到一定程度,如果再次获取焦点则会使EditText向上滚动过多以至于滚出视图范围。研究很久没能解决, 后来查看ScrollView的官方文档发现如下方法,大致意思是控制子view是否被固定于一个相对的位置,于是复写看看@Override public原创 2017-04-07 17:31:35 · 1100 阅读 · 0 评论 -
关于重复使用InputStream对象的
关于重复使用InputStream对象的解决方法项目中使用Okhttp加载网络图片时,通过response.body().byteStream()获得InputStream流对象, 第一次需要用到该流去获得图片尺寸,而真正取图片显示时又使用了该流,当你去使用BitmapFactory.decodeStream(is, null, ops)获取bitmap时,bitmap总是null。第一次读取In原创 2017-02-09 11:01:00 · 1790 阅读 · 0 评论 -
EventBus 3
EventBus 3EventBus 对于 Android 开发老司机来说肯定不会陌生,它是一个基于观察者模式的事件发布/订阅框架,开发者可以通过极少的代码去实现多个模块之间的通信,而不需要以层层传递接口的形式去单独构建通信桥梁。从而降低因多重回调导致的模块间强耦合,同时避免产生大量内部类。它拥有使用方便,性能高,接入成本低和支持多线程的优点,实乃模块解耦、代码重构转载 2016-05-20 15:59:12 · 229 阅读 · 0 评论 -
Android中Strings资源一些冷门用法
1.添加参数strings资源让开发者可以自主在字符串的任何位置加上参数,比如要解决这个问题,可以:一打算入手%s台iPhone 6sjava代码可以这么写:getString(R.string.buy_phone, getString(R.string.one))加入多个参数打算入手%1$s台iPhone 6s送给%2$sgetString(R.string.buy_pho原创 2016-05-17 16:16:40 · 1250 阅读 · 0 评论 -
Google开源的FlexboxLayout
Google开源的FlexboxLayout转载 2016-05-16 13:49:18 · 239 阅读 · 0 评论 -
Android判断是否root
try { if (Runtime.getRuntime().exec("su").getOutputStream() == null) { Toast.makeText(this, "没有root!", Toast.LENGTH_SHORT).show(); } else {原创 2016-05-16 11:35:42 · 335 阅读 · 0 评论 -
Android 自定义View并添加属性
本文主要介绍如何为自定义的View添加属性以及属性的类型。代码示例定义见DropDownToRefreshListView,调用见DropDownToRefreshListViewDemo1、添加自定义View的属性文件在res/values中新建attrs.xml文件(文件名可另取,不过推荐用attrs.xml,可以将自定义属性都放入其中),内容为xml version=原创 2016-05-16 11:33:41 · 233 阅读 · 0 评论 -
Android MVP&依赖注入&单元测试
Android MVP&依赖注入&单元测试转载 2016-04-25 17:54:42 · 411 阅读 · 0 评论