- 博客(97)
- 资源 (20)
- 收藏
- 关注
原创 生动理解python的列表 元组 集合 特点
总结:列表是可变的、有序的数据结构;元组是不可变的、有序的数据结构;集合是无序的、唯一的数据结构。通过生活类比和对它们特点的描述,你可以更好地理解它们在Python中的作用和使用。
2023-07-12 21:42:22
529
原创 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
600
2
原创 Android-混淆学习
前言今天对项目进行了混淆配置,一直没开启项目混淆,深感可耻,当然有对项目进行加固。前面迟迟不肯行动,畏惧于他人的错误经验,说是混淆出现的坑,这种旁人的意识观,真是害人不浅,其实敢于“对症下药”的去解决,不会花很多时间。在此我只是抛砖引玉,更高级的混淆知识,可以看如下文章一篇文章带你领略Android混淆的魅力在Android Studio中的混淆debug与releasehttps://zhuanlan.zhihu.com/p/49098044https://www.jianshu.com/p/
2020-09-15 18:44:39
741
2
原创 小程序入门
官网https://developers.weixin.qq.com/miniprogram/dev/component/参考链接https://juejin.im/post/5e9208e851882573a94a25dc全栈开发一个自己的微信小程序 Node.js+Express+Mysql+Vue+ElementUI 实现登录注册 列表增删改查 浏览记录 收藏功能 https://juejin.im/post/5eb607086fb9a04340659397技巧在配置文件app.json,
2020-09-08 22:09:04
235
原创 一个rxjava的kotlin版本函数思考
说句良心话,kotlin 比java复杂的一点就是函数方面的改写java版本Observable.create(new ObservableOnSubscribe<String>() { @Override public void subscribe(ObservableEmitter<String> emitter) throws Exception { } }).subscribeOn
2020-09-08 22:07:27
290
原创 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
360
原创 升级andoridx
要勇于接受新事物知识的勇气,其实老项目迁移androix也花不了多长时间。选择androidx的理由:目的是更方便依赖androidx库,它也会兼容support包依赖库,减少一些库冲突问题,也会减少一些app体积。步骤第一步android.useAndroidX=trueandroid.enableJetifier=true第二步:完成ide自动迁移过程第三步运行,看看哪里报错,修改处理就ok,最多一小时搞定,或者半小时。最后有时间的话更改部分的库的androidx的写法碰
2020-09-02 19:08:11
189
原创 IM实现-定义消息体
参考的是网易云信的设计IMMessage它这个类是个接口,至于具体实现类,当然反编译了,无法查看,不过我大致推测其中的实现类。为啥要参考其实现,我认为好的实体设计是必要的,会减少很多后面修改。定义Message你也可以把Message再抽象一层,仿照IMMessage设计,我这里给出实现定义。注意关注点在MsgBody定义上/** * 消息实体 */class Message { var uuid: String? = null var msgId: String? =
2020-08-14 14:30:40
800
1
原创 Kotlin写函数技巧
写接口类型mViewModel.gitHubEvent.observe(this, Observer { gitHubDTO: GitHubDTO -> })是因为泛型的参数是这样写的吗。answer:nouserInfo.observe(this, object : Observer<String> { override fun onChanged(t: String?) { TODO("Not ye
2020-08-07 18:51:57
211
原创 热修复-Rubus入门实践
比较几款当前流行的热修复框架sophix ,微信tinker (收费)Andfix,Amigo(停更了)Rubust 可以具备修复方法的热修复,还需要再测试下,加固情况下,是否合成补丁正常稳定,会不会影响正常功能。Rubust看到到目前为止还在更新中,作为入门级热修复,可以尝鲜下运行起项目demo第一步打完签名的release包。 关键步骤签名,release版本,还得开启混淆。注意点2 放的是jar文件,不是dex文件遇到不顺的地方“robust” 另一个程序正在使用此文件,进程
2020-07-09 19:13:13
516
原创 Kotlin casting int to float
我写了一个int 转float demo , kt代码.fun divide(a:Int,b:Int):Float{ return a as Float / b as Float;}报错:Kotlin casting int to float,意思是类型转换错误应该这么写fun divide(a:Int,b:Int):Float{ return a.toFloat() / b.toFloat();}那 xx as Float 和 xx.toFloat() 有什么区别TO
2020-06-15 19:42:18
2099
1
原创 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
201
原创 AS使用
flutter 快捷键研究https://www.jianshu.com/p/20a737283b6bhttps://www.jianshu.com/p/26efdba0ff8f —这个要多看快捷键的入口 Setting->keymap 得用默认的ide快捷键Alt + Enter 用于对控件的操作删除未使用的import Ctrl+Alt+O重命名 ...
2020-04-20 12:48:04
431
原创 Flutter-json解析
Flutter 从设计之初就不支持的反射,理由如下:运行时反射破坏了类的封装性和安全性,会带来安全风险。就在前段时间,Fastjson 框架就爆出了一个巨大的安全漏洞。这个漏洞使得精心构造的字符串文本,可以在反序列化时让服务器执行任意代码,直接导致业务机器被远程控制、内网渗透、窃取敏感信息等操作。运行时反射会增加二进制文件大小。因为搞不清楚哪些代码可能会在运行时用到,因此使用反射后,会默认使...
2020-03-11 19:00:07
1913
原创 Flutter-数据的跨层传递
对于数据的跨层传递方案:属性传递、InheritedWidget、Notification 和 EventBus还有个Provider总结首先, InheritedWidget。对于视图层级比较深的 UI 样式,直接通过属性传值的方式会导致很多中间层增加冗余属性,而使用 InheritedWidget 可以实现子 Widget 跨层共享父 Widget 的属性。需要注意的是,Inheri...
2020-02-29 16:30:20
401
原创 Flutter-Provider学习
使用 Provider,我们需要解决以下 3 个问题:资源(即数据状态)如何封装?资源放在哪儿,才都能访问得到?具体使用时,如何取出资源?总结我们既可以用 Provider 来实现静态的数据读传递,也可以使用 ChangeNotifierProvider 来实现动态的数据读写传递,还可以通过 MultiProvider 来实现多个数据资源的共享。在具体使用数据时,Provider....
2020-02-29 16:23:19
932
原创 Flutter-布局学习
布局感悟单子容器 Container、Padding 与 Center。其中,Container 内部提供了间距、背景样式等基础属性,为子 Widget 的摆放方式,及展现样式都提供了定制能力。而 Padding 与 Center 提供的功能,则正如其名一样简洁,就是对齐与居中。多子 Widget 布局中的 Row 和 Column,各子 Widget 间对齐的规则,以及容器自身扩充的规则,以...
2020-02-29 16:17:13
379
原创 Flutter-路由学习
入栈\出栈 (通过Navigator来管理)入栈Future push(BuildContext context, Route route)Future pushNamed(BuildContext context, String routeName,{Object arguments}) // 通过路由名打开新路由页出栈bool pop(BuildContext con...
2020-02-29 15:36:15
213
原创 flutter-编译项目错误问题
升级fluttersdk :升级 flutter sdk —今天卡住地方,没有额外的翻墙软件解决其中的软件兼容问题(耗时)(1) 软件sdk下载慢 (直接下载相比flutter get 命令,直接去官网下载,就可以下载个完整的包了(包含sdk)(2) 依赖的环境又有一些版本号兼容问题,比如androidx kotlin解决先一步步解决,先跑kotlin的依赖,发现由于翻墙的原...
2020-02-15 22:22:28
1530
原创 flutter番外篇
博客https://book.flutterchina.club/chapter4/wrap_and_flow.htmlhttp://www.devio.org/tags/#Flutter第三方库flutter官方 https://github.com/flutter 看里面的issue文档 https://flutter.dev/ 搜索里面的知识点更新邮件 https://grou...
2020-02-09 18:37:08
296
原创 flutter 项目优化-简要版本
代码优化代码优化主要涉及到代码冗余问题,进行封装class NavigatorUtil { ///跳转到指定页面 static push(BuildContext context, Widget page) { Navigator.push(context, MaterialPageRoute(builder: (context) => page)); }}包大...
2020-02-09 18:05:15
421
原创 Flutter-启动白屏解决 与 全面屏适配思路
android用的是插件flutter_splash_screenhttps://github.com/crazycodeboy/flutter_splash_screenios
2020-02-09 17:07:28
1324
原创 IntelijIDE -- flutter
以Android Studio + Mac为例:TOP1:查看最近打开的文件:command + ETOP2:万能的搜索:双击shiftTOP3:查看当前类结构:command + fn + f12TOP4:重命名:fn+shift+f6TOP5:查看源码:将光标放到要查看源码的类名或方法名上,长按command 然后的点击TOP6:查看类的子类:选中要查看的类,然后:command ...
2020-02-07 16:30:47
204
原创 一点一点学dart语言
最近调研个功能,让我一下子对dart语言表示了兴趣。可以忽略想法:总体感觉跟java语言差不多,但比java更简洁自然,如果社区再强大些,感觉完全可以取代java,kotlin。https://www.dartcn.com/guides/language/effective-dart/先来几个热身:文件名和类名文件名:小写,可以用"_"来分隔两个或两个以上的名字。可以直接取类名的小写...
2020-01-21 17:18:15
262
原创 Android-AES加解密
项目Aes功能背景:早期用的是jni写的aes加密算法,其实android 本身就实现了aes算法。于是封装了一个工具类(实际元素值要变,比如加密模式,偏移量等等),这里写法只是参考,封装的有点欠妥,但思路简介易懂,可以随手修改。加密在线链接做这块要与服务器的算法一致才是可以,所以要对以上的元素(加密模式,填充、数据块,偏移量等元素,仔细校验。)偏移量最少:16字节长度 那就是填00...
2020-01-21 16:42:58
558
原创 IM数据库模型设计
以TB_USER为例,对应的数据模型如下。其中要明白uuid的概念import org.hibernate.annotations.*;import javax.persistence.CascadeType;import javax.persistence.*;import javax.persistence.Entity;import javax.persistence.T...
2019-12-29 11:47:13
1835
原创 IM客户端准备
服务器:Service负责接收和回送请求,部分逻辑;Factory负责数据库操作;Model数据库建模和API请求与返回。客户端:app:主要的界面实现;common:公共的基础类;lang:项目语言包;factory:项目的逻辑实现(包括契约、实现、网络、逻辑处理、缓存、数据库操作)...
2019-12-29 11:40:14
173
原创 python调试
假定你已经有了调试的概念,对于调试一个程序的技能是必备。有了IDE(集成开发环境,集成了运行、调试,等等)开发环境可以忽略。那么在python如何通过命令调试?在python叫pdb(类似于c语言调试)准备一个phthon程序phython3 -m pdb xxx.py命令l---->list 显示当前的代码n---->next 向下执行一行代码c----&...
2019-12-22 11:19:01
125
原创 kotlin重构任务--遇到的问题
掌握基础的知识点,不必深入,随着项目遇到的问题再深入理解对应知识点有些地方照样可以用java,比如依赖库转成kotlin代码,还需要要人工重构的点碰到的问题转成kotlin代码,还需要要人工重构的点findviewbyid 代码协程重构Rxjava等引入线程部分的代码碰到的问题在哪里可以体现greendao 可以支持kotlin版本。不必修改,依赖库不需修改成kotli...
2019-11-01 18:42:16
331
原创 Dart基础重要回顾
https://book.flutterchina.club/chapter1/dart.html基础上做补充。varvar类似于JavaScript中的var,它可以接收任何类型的变量,但最大的不同是Dart中var变量一旦赋值,类型便会确定,则不能再改变其类型var t;t = "hi world";// 下面代码在dart中会报错,因为变量t的类型已经确定为String,//...
2019-10-13 11:27:26
237
原创 python-基础快速入门
基本操作print()函数也可以接受多个字符串,用逗号“,”隔开,就可以连成一串输出:>>> print('The quick brown fox', 'jumps over', 'the lazy dog')The quick brown fox jumps over the lazy doginputname = input('please enter y...
2019-10-03 18:04:00
121
原创 Python-模块笔记
模块是一组Python代码的集合,可以使用其他模块,也可以被其他模块使用。创建自己的模块时,要注意:模块名要遵循Python变量命名规范,不要使用中文、特殊字符;模块名不要和系统模块名冲突,最好先查看系统是否已存在该模块,检查方法是在Python交互环境执行import abc,若成功则说明系统存在此模块。标准文件模板#!/usr/bin/env python3 # 第1行注释可...
2019-10-03 17:59:03
188
原创 Android软键盘处理
弹起来的时候第一个参数View,最好是 EditText 或者它的子类。布局必须加载完成。(通过延时加载的方式来解决,View.postDelayed() 是一个解决方案)隐藏的时候需要依赖于一个view还是通过延迟处理来完成,会有效果如果还是没效果,那就把时间弄大点,比如300ms软键盘隐藏部分组件的处理 TODO/** * 软键盘显示 * ...
2019-09-24 18:39:19
267
原创 BottomBarLayout源码学习
github地址是对下方底部的封装如果不封装的话,更多的是大的布局轮廓是 外面是一个大的容器(比如LinearLayout),里面是四个小的容器(比如LinearLayout)而BottomBarLayout是上面大的容器的自定义View封装,BottomBarItem是下面每个四个小容器的自定义View的封装所以大致思路清晰了,不是一件特别复杂的,就把它自定义组合布局去看如何封装布局...
2019-09-24 12:04:45
222
原创 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
646
原创 greendao(3)--- 源码分析
https://www.jianshu.com/p/4c15d8061bc6官方Code,值得一看特点 (对我们的来说就是框架的功能,平时阅读源码注意如何实现)(1) Rock solid: greenDAO has been around since 2011 and is used by countless famous apps 非常稳定,自从 2011 年开始就被无数...
2019-09-20 18:50:52
139
原创 Greendao(2) ---实战
android.database.sqlite.SQLiteException: no such table: FRIEND_CLASS (code 1 SQLITE_ERROR): , while compiling: INSERT OR REPLACE INTO “FRIEND_CLASS” ("_id",“NAME”) VALUES (?,?)Android:android.databa...
2019-09-20 18:50:22
490
原创 Greendao(1)---基础学习
参考文章:https://www.jianshu.com/p/cf47707185a1 Android 数据库 – greenDAOhttps://www.jianshu.com/p/3ee00bd99593 数据库学习之 GreenDAO 实战https://www.jianshu.com/p/53083f782ea2https://blog.youkuaiyun.com/IO_Field/a...
2019-09-20 18:49:51
204
原创 Android 原生数据库sqlite 基础回顾
建表 —SQLiteOpenHelper升级表方式表关联传统的存储数据方式传统的修改和删除数据方式传统的查询数据方式传统的聚合函数用法参考链接建表 —SQLiteOpenHelper这个类集创建和升级数据库于一身,并且自动管理了数据库版本第一次创建表会回调onCreate,后面就不会了// 获取到SQLiteDatabase的实例,数据库表就会自动创建了SQLiteOpe...
2019-09-18 22:28:01
128
原创 Android-Debug-Database亲测使用ok
如何在手机查看对应的sql文件官方连接第一种通过这个(推荐)https://github.com/amitshekhariitbhu/Android-Debug-Database(仔细看官方说明)参考文章https://blog.youkuaiyun.com/yu75567218/article/details/78908245https://blog.youkuaiyun.com/weixin_3988615...
2019-09-16 15:16:46
279
PhoneGap实战
2016-02-02
高焕堂Android设计招式之美(1-15章全)_简体中文版
2016-01-09
Android商城项目实战,黑马教程,红孩子客户端和服务端源代码及开发文档
2015-10-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人