
Android
kotlin笔记
这个作者很懒,什么都没留下…
展开
-
通过ViewTreeObserver拿到当前view 真实高度
通过ViewTreeObserver拿到当前view 真实高度原创 2022-06-15 14:40:47 · 206 阅读 · 1 评论 -
edit获取焦点弹出软键盘
折磨了我很长时间 各种方法都试过了internal fun Context.showKeyboard(view: View) { if (view.requestFocus()) { val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as? InputMethodManager view.postDelayed({ imm?.showSoftInput(view, Inp原创 2021-08-26 15:06:10 · 272 阅读 · 0 评论 -
Rxjava2教程链接
https://www.jianshu.com/p/81fac37430dd转载 2021-06-09 16:37:55 · 128 阅读 · 0 评论 -
Android简历知识点模板
https://blog.youkuaiyun.com/qq_27248989/article/details/107966787转载 2021-03-14 10:11:24 · 200 阅读 · 0 评论 -
bat 打印手机崩溃信息
新建txt文件 输入以下内容 改为bat 运行@ECHO OFFfor /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"SET timeStamp=%dt:~0,4%-%dt:~4,2%-%dt:~6,2%_%dt:~8,2%-%dt:~10,2%-%dt:~12,2%SET mutID=_mut@ECHO ONadb logcat -v time > .\"%m原创 2021-02-23 16:15:00 · 138 阅读 · 0 评论 -
Java反射获取JavaBean的属性值或者设置属性值
https://blog.youkuaiyun.com/qq_39470733/article/details/84391091转载 2021-02-23 16:13:29 · 287 阅读 · 0 评论 -
binder原理(简单)
https://www.jianshu.com/p/4920c7781afe转载 2020-05-29 15:57:08 · 243 阅读 · 0 评论 -
Android gradle task 任务具体说明
官方给gradle task的介绍Android tasksandroidDependencies 显示项目的android依赖项signingReport 显示每个渠道包签名信息source set 打印项目中定义所有的资源Build tasks (打包时用的比较多)assemble 打包所有的应用程序和依赖的所有渠道包assembleAndroidTest 打包所有测试类型的应用程序assembleDebug 打包所有debug版本assembleRelea...转载 2020-05-21 10:05:44 · 558 阅读 · 0 评论 -
Android APK签名流程
为了防止APK再传送的过程中被第三方篡改 GOOGLE引入了签名机制签名过的APK文件比未签名的APK文件多了一个META-AF文件夹 包含了一下三个文件 签名的信息就在这三个文件中1 对APK文件夹中的文件逐一遍历SHA(或者SHA256)算法计算文件的信息摘要 然后进行BASE64编码后 作为"SHA1-Digest"属性的值写入到MANIFEST.MF文件中的一个块中 改块有一个...原创 2020-04-02 11:53:37 · 347 阅读 · 0 评论 -
Android APK 打包原理
AndroidManifest.xml程序全局配置文件classes.dex dalvik字节码resource.arsc 资源索引表 解压缩resource.ap就能看到res 该目录存放资源文件assets 该目录可以存放一些配置文件src Java源码文件libs 存放应用程序依赖的库gen 编译器根据资源文件生成的Java文件bin 由编译器生成的apk文件...原创 2020-04-01 16:14:54 · 405 阅读 · 0 评论 -
数字签名
数字签名技术结合Hash算法和加密算法,来防止小心被篡改和进行身份验证1 发送方使用Hash算法对原文产生信息摘要,原文不变则信息内容不变2 发送方使用自己的私钥信息摘要产生数字签名 并和加密的密文一起发送3 接受方使用发送方的公钥解密获取数字签名4 接收方使用Hash算法对源文件信息摘要与解密的信息摘要作对比 成功表示未篡改未成功表示篡改...原创 2020-03-31 15:21:16 · 206 阅读 · 0 评论 -
HTTPS网络安全
HTTP:数据内容是明文传输的,容易被流量攻击HTTPS:数据是加密的,采用SSL/TLSSSL/TLS防止安全风险1 窃听风险2 篡改风险3 冒充风险SSL/TLS放置的安全风险原理1 加密:非对称加密+对称加密 主要解决窃听风险2 校验:数字签名,主要解决的是篡改风险3 证书:数字证书,主要解决的是冒充风险...原创 2020-03-30 09:36:32 · 226 阅读 · 0 评论 -
React Native笔记
核心原理1.js/react用于开发层面2.c++层,负责js react和原生交互进行通信(JavaScript RunTime引擎)3 原生 android/ios原创 2020-03-26 14:39:13 · 169 阅读 · 0 评论 -
AtomicReference
AtomicReference的源码比较简单。它是通过"volatile"和"Unsafe提供的CAS函数实现"原子操作。(01) value是volatile类型。这保证了:当某线程修改value的值时,其他线程看到的value值都是最新的value值,即修改之后的volatile的值。(02) 通过CAS设置value。这保证了:当某线程池通过CAS函数(如compareAndSet函数)...原创 2020-03-23 16:40:46 · 287 阅读 · 0 评论 -
view不拦截子类事件
@Overridepublic boolean onInterceptTouchEvent(MotionEvent ev) { // 让父类不要拦截该view的事件 getParent().requestDisallowInterceptTouchEvent(false); return super.onInterceptTouchEvent(ev);}...原创 2020-02-24 09:35:37 · 343 阅读 · 0 评论 -
卡顿优化 内存优化
笔记:blockcanaryex(卡顿工具)内存:leakcanary mat原创 2020-01-06 13:53:44 · 243 阅读 · 0 评论 -
哪些操作可以减少内存使用压力
1.较大的内存缓存类可以使用弱引用和软引用(bitmap)2.字符串拼接尽量使用stringbuffer和stringbulder3.功能需要才去使用静态变量4.大量字符串存储建议使用文件存储,不用sp5.耗时操作放入异步任务6.成员变量转化局部变量,在适当的时机释放7.尽量使用效率高的代码,增强for循环,减少枚举使用8.三种常见布局优化9.方法中尽量减少局部变量...原创 2019-12-27 17:53:41 · 336 阅读 · 1 评论 -
java 内存
堆区:存储的全是对象,(class可执行文件)只有一个堆区,而且被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身和数组本身栈区:每个线程只包含一个栈区,栈中只存储基础数据本身和自定义对象引用每个栈数据是私有的栈分为三个部分 基本类型变量区 执行环境上下文 操作指令区方法区:被所有线程共享,方法区包含所有的class方法区中包含都是在整个程序中唯一的元素,如cl...原创 2019-12-27 14:17:20 · 163 阅读 · 0 评论 -
Android面试连接
Android面试连接原创 2019-12-01 13:46:45 · 644 阅读 · 0 评论