- 博客(19)
- 资源 (2)
- 问答 (1)
- 收藏
- 关注
原创 Android JNI 开发入门
前言本文主要介绍如何在Android Studio上进行Native开发和调试,通过本文希望读者可以了解到以下几个方面:搭建Native相关环境,主要包括NDK、CMake、LLDB 创建一个新的Native项目 CMake命令和脚本编写环境说明本文基于MAC系统和Android Studio 3.5,不同系统版本和AS版本可能不一样,具体参考官方文档。搭建Nat...
2020-02-01 16:29:21
1643
原创 Android消息机制
概述Android的消息机制主要是指Handler的运行机制以及其关联的MessageQueue和Looper的工作过程,要想弄清楚Android的消息机制,需要弄清楚几个重要类的工作原理:ThreadLocal MessageQueue Looper Handler本篇文章主要从对什么这几个类的分析入手来分析Android的消息机制,代码有点多,纯属个人的学习记录,有错误的地方欢...
2019-06-23 15:57:48
224
原创 Android Studio 删除自定义的javadoc tag
Preferences -> Editor -> Inspections -> Javadoc
2019-03-01 19:33:39
603
原创 Android Java和Kotlin互转
安装Kotlin插件 Android Studio选择Preference -> Plugins,搜索Kotlin,然后安装插件,安装成功后重启 Java 转Kotlin 选择要转的Java文件 右键或是选择顶部菜单栏的Code选项 在下拉菜单中再选择"Convert Java File To Kotlin" Kotlin转Java 运行工程生成buil...
2019-02-24 18:40:08
4156
原创 Charles抓包技巧
Mac上抓包时我们一般使用Charles,这里是一些使用技巧的记录:1. MapRemote选择某个地址,右键,看到MapRemote,点击后进入编辑,可以把某个具体的地址映射到另外的地址,例如我们正式服的地址是:xxx.xxxx.xxx,而测试服是一个ip:xx.xx.xx.xx,则可以把正上方的地址映射为测试服的地址2. Focus / Ignore在使用Charles时除...
2018-08-12 11:05:50
420
原创 Android性能优化总结
一.布局优化:优化思想就是尽量减少布局的层次,以达到减少绘制时的工作量优化方法:删除无用的控件和层次使用合适的ViewGroup,如RelativeLayout使用<include> <merge> <Viewstub>尽量使用CompoundDrawable:对于相邻的ImageView 和 TextView,可以通过CompoundDrawable合二为一&...
2018-05-15 17:04:18
194
原创 二叉树的遍历和构建
一.先上图,一个简单的二叉树如下:根据根节点的访问顺序,二叉树的遍历方式可分为三种:前序遍历:先访问根节点,再访问左子树,最后访问右子树中序遍历:先访问左子树,再访问根节点,最后访问右子树后序遍历:先访问左子树,再访问右子树,最后再访问根节点上面二叉树的三种遍历序列分别如下:前序遍历序列:1,2,4,5,3,6中序遍历序列:4,2,5,1,6,3后续遍历序列:4,5,2,6,3,1二.构建二叉树有...
2018-05-04 00:00:39
318
原创 Java的线程和创建方式
一.进程与线程1. 进程:操作系统中运行的基本单元2. 线程:在进程中独立运行的子任务,CPU以不确定的反射或者说是以随即的时间来调用线程中的run方法Thread其实也是实现了Runnable接口,因为Java是单继承的,所以使用继承Thread方式创建线程时,最大的局限就是不支持多继承,此时就可以使用实现Runnable方式。Thread.java中的start方法通知“线程规划器”此线程已经...
2018-04-30 17:53:49
171
原创 IntentService 分析
IntentService 是Android为我们提供的一个类,继承Service类,第一步,先来看看源码里面开头的注释:/*** IntentService is a base class for {@link Service}s that handle asynchronous* requests (expressed as {@link Intent}s) on demand. Clie...
2018-04-03 22:55:44
232
原创 HandlerThread 浅析
一. HandlerThread 源码分析HandlerThread 有三个成员变量:int mPriority; //线程的优先级,默认为:Process.THREAD_PRIORITY_DEFAULTint mTid = -1; //线程的标记Looper mLooper; //线程的LoopermLooper 在 run() 方法中调用 Loo...
2018-04-02 21:58:57
297
原创 Android消息机制之Handler
在Android的异步消息处理机制中,Handler发挥着重要的作用,本文从Handler源码的角度,对Handler的使用进行分析。首先来看看Handler的创建方式:1. 在主线程可以直接通过new创建2. 在子线程中需要先调用Looper.prepare(),再执行new操作,否则会崩溃提示:Can't create handler inside thread that has ...
2018-02-08 23:08:45
205
原创 React Native Navigator
Navigator is deprecated and has been removed from this package. It can now be installed and imported from react-native-deprecated-custom-components自定义 Navigator configureScene
2017-07-15 10:44:09
317
原创 TypeError: expected dynamic type 'string', but had type 'object'
TypeError: expected dynamic type 'string', but had type 'object'
2017-07-15 10:28:03
2820
原创 单例模式浅析
定义: 确保某个类只有一个实例,并且自行实例化和向整个系统提供这个实例。使用场景: 避免产生多个对象消耗过多的资源,或者某种类型的对象有且只能有一个。 例如创建一个对象要消耗过多资源,如要访问IO和数据库等资源,此时就要考虑单例模式。
2017-04-29 16:25:06
465
原创 Android实现类似IOS右滑返回的效果
使用类库SwipeBackLayout https://github.com/Issacw0ng/SwipeBackLayout出现的问题: 1. 主Activity返回时黑屏或者返回只是看到桌面背景而没有看到上一个Activity界面原因: 使用滑动返回需要在Activity的额主题中声明android:windowIsTranslucent=true,而该属性是设置Activity为是否为
2017-03-05 10:50:00
1210
原创 PagerSlidingTabStrip使用遇到的问题一
PagerSlidingTabStrip是Github上的一个项目,地址为: https://github.com/astuetz/PagerSlidingTabStripPagerSlidingTabStrip + ViewPager组合,可以实现滑动切换时Tab的下划线跟着滑动的效果PagerSlidingTabStrip默认的Tab下划线宽度要比Tab的文字在两边长一些,由于项目需求中既有下
2016-06-23 22:44:14
2115
windowIsTranslucent导致卡顿问题
2016-04-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人