Android
文章平均质量分 73
皮卡丘太肥,餐餐吃吃吃
不重复创造轮子,不代表可以不去深入了解这些轮子
展开
-
App反编译
目的:为了验证app的是否可以破解准备工具ApkTool:Google提供的APK编译工具,可以反编译和回编译。把apk改成xxx.zip然后解压,得到的资源文件,xml会乱码,.9会没划黑线。用ApkTool反编译apk则不会出现这种情况,还可以二次打包别人的apk。下载地址:http://ibotpeaches.github.io/Apktool/install/dex2jar:将dex文件转换为jar包下载地址:https://github.com/pxb1988/dex2jar/re原创 2020-09-19 00:14:26 · 464 阅读 · 2 评论 -
Android-混淆学习
前言今天对项目进行了混淆配置,一直没开启项目混淆,深感可耻,当然有对项目进行加固。前面迟迟不肯行动,畏惧于他人的错误经验,说是混淆出现的坑,这种旁人的意识观,真是害人不浅,其实敢于“对症下药”的去解决,不会花很多时间。在此我只是抛砖引玉,更高级的混淆知识,可以看如下文章一篇文章带你领略Android混淆的魅力在Android Studio中的混淆debug与releasehttps://zhuanlan.zhihu.com/p/49098044https://www.jianshu.com/p/原创 2020-09-15 18:44:39 · 695 阅读 · 2 评论 -
Android_json解析
json 解析我个人项目的是这样处理的利用gson等注解式框架符合程序员偷懒原则首先引入了一个泛型类,T 你可以是整个整体OBject,也可以是List 中的子对象。BaseResult 是定义了一些模板的属性,再配合泛型,有了它避免再定义一些重复的代码字段public class BaseResult<T> implements Serializable{ public static final int RESULT_SUCCESS = 0; private原创 2020-09-04 18:33:40 · 338 阅读 · 0 评论 -
升级andoridx
要勇于接受新事物知识的勇气,其实老项目迁移androix也花不了多长时间。选择androidx的理由:目的是更方便依赖androidx库,它也会兼容support包依赖库,减少一些库冲突问题,也会减少一些app体积。步骤第一步android.useAndroidX=trueandroid.enableJetifier=true第二步:完成ide自动迁移过程第三步运行,看看哪里报错,修改处理就ok,最多一小时搞定,或者半小时。最后有时间的话更改部分的库的androidx的写法碰原创 2020-09-02 19:08:11 · 156 阅读 · 0 评论 -
kotlin热身
https://developer.android.google.cn/kotlin/learn1 继承 : xxx() 为什么有些不用写()overide 下移到定义方法最前面不用写 权限修饰词了如public private protecteg:class MyActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(saved原创 2020-06-12 19:18:14 · 185 阅读 · 0 评论 -
Android-AES加解密
项目Aes功能背景:早期用的是jni写的aes加密算法,其实android 本身就实现了aes算法。于是封装了一个工具类(实际元素值要变,比如加密模式,偏移量等等),这里写法只是参考,封装的有点欠妥,但思路简介易懂,可以随手修改。加密在线链接做这块要与服务器的算法一致才是可以,所以要对以上的元素(加密模式,填充、数据块,偏移量等元素,仔细校验。)偏移量最少:16字节长度 那就是填00...原创 2020-01-21 16:42:58 · 509 阅读 · 0 评论 -
(系统的推送)友盟推送
今年再次负责这个模块,最大亮点就是支持了系统的推送,也就是说你设备退出后台应用了,发推送还可以收到推送https://info.umeng.com/detail?id=169&&cateId=1测试方案设备红米note7Ao1B_xPIJtdNZrlHR20nH2AWkDi6XNGpxktFRxbW11NTMix2sAtV94r2-iXzkzM2JTriKOAbs...原创 2019-09-06 12:36:19 · 1232 阅读 · 0 评论 -
Android软键盘处理
弹起来的时候第一个参数View,最好是 EditText 或者它的子类。布局必须加载完成。(通过延时加载的方式来解决,View.postDelayed() 是一个解决方案)隐藏的时候需要依赖于一个view还是通过延迟处理来完成,会有效果如果还是没效果,那就把时间弄大点,比如300ms软键盘隐藏部分组件的处理 TODO/** * 软键盘显示 * ...原创 2019-09-24 18:39:19 · 247 阅读 · 0 评论 -
Compilation failed; see the compiler error output for details
AS这种错误提醒一点都不智能所以需要在控制台运行Windows:gradlew compileDebugJavaWithJavacMac OS: ./gradlew compileDebugJavaWithJavac就可以得到详细的错误log。如果控制台不识别gradlew那么需要配置jdk 环境主要有三处JAVA_HOME (要单独创建这个变量)eg:C:\Pro...原创 2019-09-23 17:07:21 · 625 阅读 · 0 评论 -
android ftp
android 无法用webview 来处理ftp链接比如 ftp://bingley:12345678@103.45.154.96:693所以集成外部k的方式来解决直接点的话用这个来https://sourceforge.net/projects/ftp4j/files/// 暂时没找到有异步的方法获取FTPClient client = new FTPClient();kcli...原创 2019-09-06 12:34:55 · 763 阅读 · 0 评论 -
不用androidx
用最新AS,默认是andoridx构建想恢复support环境第一个配置就是根buld.gradleimplementation “com.android.support:design:27.1.1”其实就是supportLibraryVersion版本在28以前就行了,跟compileSdkVersion,buildToolsVersion,targetSdkVersion一点关系都...原创 2019-08-16 17:33:01 · 2320 阅读 · 0 评论 -
应用APP尺寸
hdpi --> 72 * 72xhdpi —> 96 * 96xxhdpi–>144 * 144xxxhdpi -->192 * 192原创 2019-08-14 10:30:53 · 234 阅读 · 0 评论 -
andorid第三方不错的效果(持续更新)
1 一款android自动生成表格框架---A Android automatically generated table frameworkhttps://github.com/huangyanbin/smartTable2 使用Snake,Android也可以轻松实现类iOS滑动关闭效果https://github.com/yuanhoujun/Android_Slide_To_...原创 2019-04-16 11:49:00 · 136 阅读 · 0 评论 -
app优化笔记之布局
参考一系列的优化文章&&&&&https://www.jianshu.com/p/68e086bf43d8布局原则:(1)尽量多使用线性布局和相对布局,不用绝对布局。(2)在布局层次一样下,线性布局比相对布局的性能要高。(3)使用include标签增加UI的复用效率:可把重复使用的控件抽取出来放在一个xml文件里,并在需要它的xml文件里通过i...原创 2019-04-18 18:11:00 · 127 阅读 · 0 评论 -
app性能优化之启动速度
解决意义:启动速度意义在于避免用户的觉得停留是一种浪费时间,从而卸载掉程序了解几个启动方式:冷启动 (Cold start) 热启动 ( Warm start ) 温启动 Lukewarm start 尤其冷启动的优化最为重要。冷启动过程 : 前:1 加载启动APP 2 启动以后展示一个空白的Window 3 创建App进程(一个应用程序对应一个进程) 后: 1 创建APP对象 2...原创 2019-04-22 14:46:00 · 107 阅读 · 0 评论 -
智慧农业之Socket与线程的结合深入体验
因为是处女作品,舍不得删除。留作纪念,尽管含金量太低了。本人第一篇文章,后期有时间继续补充,先给大家看看其中的内容看点:(1)动态解析XML文件到expandablelist控件中,记住不是写死的(这里面有解析两次XML来分别生成父节点和子节点的数据)(2)巧用好handle机制可以使客户端跟服务端交互更容易(3)(难点)类似于遥控器原理:通过sock...原创 2015-04-19 13:20:57 · 683 阅读 · 0 评论 -
日历控件
包含的技术点周和月切换视图用recylview动态变化 左滑右滑根据GestureDetector监听变化书写相应逻辑 阴历和阳历切换 重要的API:Calendar,可以获取一周的日期集合,获取日期一月的日期集合使用API,讲解背后的技术代码实现WeekCalendar weekCalendar;// 填充数据weekCalendar.setSelectDates(we...原创 2019-04-22 11:40:00 · 138 阅读 · 0 评论 -
java.lang.IndexOutOfBoundsException: setSpan (4 ... 5) ends beyond length 0
at android.text.SpannableStringInternal.checkRange(SpannableStringInternal.java:436) at android.text.SpannableStringInternal.setSpan(SpannableStringInternal.java:163) at android.text.Spannabl...原创 2019-07-30 09:25:34 · 4474 阅读 · 0 评论 -
Fragment add 和replace区别
用add方式实现fragment的效果就是:切换fragment时不会重新创建,是什么样子切换回来还是什么样子;用replace的效果就是:切换fragment时每次都会重新创建初始化学会用fragment来复用页面ui,重要的两个方法。final FragmentTransaction transaction = getSupportFragmentManager().beginTran...原创 2019-07-30 09:28:45 · 1126 阅读 · 0 评论 -
build.gradle
修改项目build.gradle compileSdkVersion = 28 buildToolsVersion = "29.0.0" minSdkVersion = 17 targetSdkVersion = 28 versionCode = 1 versionName = "1.0.0" supportLibraryVersion...原创 2019-08-05 14:13:31 · 110 阅读 · 0 评论 -
Handler使用纲要
// 创建Handler– 第一种写法private Handler mHandler = new Handler(){ public void handleMessage(Message msg){ mTextView.setText(""+msg.arg1+"-"+msg.arg2); };};==》增强版本 --使用静态的内部类 + 虚引用可以解决内...原创 2019-07-26 09:21:55 · 378 阅读 · 0 评论 -
我所知道的json
一 创造json如何创造map二 几种解析方式三 代码如何写比较好1 三种解析方式(原生,gson,fastjson, 面向对象) final ArrayList<MultipleItemEntity> dataList = new ArrayList<>(); final JSONArray dataArray = JSON ...原创 2019-08-04 17:58:26 · 169 阅读 · 0 评论 -
app性能优化之内存优化TODO
泄漏本质无法回收无用的对象先暂时性的忽略shell命令分析内存状况 查看profile MAT使用出现场景及解决优化措施单例模式原因因为单例对象的生命周期比较长,相当于应用程序Application的生命周期,如果Context使用的是当前Activity或者Fragment中的上下文,则生命周期较短,因此,当生命周期较长的对象引用了“较短”的上下文,会出现这样的情况,当Con...原创 2019-04-22 15:03:00 · 138 阅读 · 0 评论