![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android移动开发
preqel
脚踏实地,才能仰望天空
展开
-
React Native 的Redux
Redux是React Native用来管理全局状态的一个工具。React Native里面用到的是它的一个封装库,React Redux为什么要使用Redux呢?当你的Rn项目越来越庞大的时候,需要机制来管理组件的状态的时候。如何引入Redux?npm install redux react-redux怎么使用Redux呢?Action 每次改变需要发送一个Action通知,可以通过dispatch函数来做到。DispathmapDispatchToProps 用来声明哪些Aciton原创 2020-07-31 00:00:23 · 460 阅读 · 0 评论 -
react native 常用命令整理
react-native start运行react-native bundle生成bundle文件npm start原创 2020-06-30 19:53:19 · 174 阅读 · 0 评论 -
Android JetPack 初探
Jetpack里面分了几个系列,分别是Databinding、LifeCycle、LiveData。其实这些概念我们之前都接触过,比如Databinding就很类似于ButterKnife。原创 2020-03-29 21:19:24 · 154 阅读 · 0 评论 -
jenkins构建android项目
项目中有用到用jenkins自动构建android项目,这里把一些要注意的点罗列一下。 首先是下载jenkins,这个可以去jenkins官网上下载。官网的地址为:https://jenkins.io 然后是配置环境变量。1.jdk环境变量配置 2.AndroidSDk环境变量配置。配置jenkins SDK变量可以在 系统管理–系统设置–全局属性–Environment variables...原创 2020-01-31 11:19:46 · 388 阅读 · 0 评论 -
kotlin的简洁特性
kotlin最大的好处就是使得代码简洁,但也没有使得运行效率比java降低很多。那么kotlin语言对比java语言,有哪些地方是比较简洁的呢?可空判断和非空判断kotlin中可空符号?的出现,让我们对于java中一些对于变量的判空的实现变得简洁if(mText != null )mText.setText(str_content)直接可以简写为mText?.setT...原创 2019-10-26 10:59:13 · 316 阅读 · 1 评论 -
一张Bitmap图片可以压缩成多大内存
Android里面加载大图片的话很容易引起内存溢出,out of memory,因为如果你如果把一张很大的原图加载到ImageView的话,会提示 一张图片在内存中占有多大呢,Bitmap有个函数可以直接获取内存中占有的大小。我们看下Bitmap类里面 /** * Returns the minimum number of bytes that can be used to s...原创 2018-05-30 13:47:06 · 466 阅读 · 0 评论 -
webview自定义缓存方案
今天在项目中遇到的问题,在使用webview的时候想做本地缓存 webview本身提供了缓存机制,可以参照文章 但是现在想把网页中的大图缓存到磁盘本地 实现第一次从网络上加载,加载成功后存到本地后,接下来都是通过webview去本地取 获取缓存的代码如下fun getURLcached(url: String): String { //val imgPath ="/mn...原创 2018-07-20 22:43:49 · 1672 阅读 · 0 评论 -
Android中的注解
我们在很多三方库的源码中都看到注解,注解它不能改变我们的代码,但是注解提供了很多代码外的额外信息,这片文章主要来总结下我们平时在Android开发中用到的一些注解:java中的注解1.系统内置标准注解OverrideOverride表示标注的方法已经重载了父类的方法。同时也起到了一个断言的作用。比如我们写了一个跟父类方法名称一样的方法时而没有标注Override的时候,编译器通...原创 2018-09-15 10:46:19 · 322 阅读 · 0 评论 -
React Native 问题the module react-transform-hmr/lib/index.js 找不到
react native环境搭建好后运行react-native run-android运行的时候提示the module react-transform-hmr/lib/index.js,并且出现红屏。执行adb devices,这时候看到模拟器设备列里adb连接正常的。相信这是 环境配置哪里搞错了,网上找了一下,一种解决方案如下。解决方法 react-native start --res...原创 2018-10-10 14:44:39 · 395 阅读 · 0 评论 -
用mat工具分析Android泄漏解决问题
内存泄漏是Android开发中比较难以解决的问题。这篇文章主要是来探讨如何使用mat工具进行内存泄漏的排查1.leakcanary上提示报错,发现有内存泄漏的提示2.打开Androidstudio 的Profile工具.菜单View-》ToolWindow-》Profiler (我本地的android studio版本是3.4),运行程序app3.在出现问题的页面来回切换4.点...原创 2019-05-22 16:43:28 · 180 阅读 · 0 评论 -
jni知识笔记
1.如何在jni开发中日志打印在ndk层打日志cpp文件里面添加:#define LOGI(...)((void) __android_log_print(ANDROID_LOG_INFO,"native",__VA_ARGS__))cpp的头文件里面引入下面这句话#include <android/log.h>然后在build.gradle里面添加:...原创 2019-06-14 17:20:16 · 126 阅读 · 0 评论 -
单例模式跟静态类比有什么好处
在写代码当中,这两者都很常见,单例模式和静态类都能保证对象在全局只有一个实体。但是面试的时候,面试官往往会问,单例模式比静态类有哪些好处呢?为什么要使用单例模式呢?他们两者都可以是线程安全的。。1.单例模式是可以继承其他类或者实现其他接口的,而静态类不行。所以单例模式的扩展性更加好。2.单例模式是有状态的,而静态类是无状态的。这样的话,单例模式就更加符合面向对象的思想。3.单例对象...原创 2019-06-06 22:36:32 · 913 阅读 · 0 评论 -
触摸事件分发机制的实例分析(二)
在网上搜到了很有意思的一道题,仔细想一下这道题。答案是如果有ACTION_MOVE操作,那么ACTION_DOWN传递给C,ACTION_MOVE和ACTION_UP都传递给B,A没有获得任何事件。如果没有执行滑动操作,那么ACTION_DOWN和ACTION_UP都传递给C。因为事件会先从A-》B依次执行onInterceptTouchEvent,如果那一边返回了true,就说...原创 2019-07-05 10:45:43 · 262 阅读 · 0 评论 -
触摸事件分发机制的实例分析(一)
我们知道android中的事件分发有三个重要方法onInterceptondispatchtoucheventontouchevent他们之间的关系可以用下面的伪代码来阐述:public boolean dispatchTouchEvent(MotionEvent e){ boolean consume = false; if(onInterceptTou...原创 2019-09-08 15:34:48 · 161 阅读 · 0 评论 -
Android Studio 3.0 利用cmake搭建jni环境(很详细哦)
我用的Android Studio是3.0的版本,然后想搭建一下jni的环境。这里把自己遇到的问题和注意点都记录下。 首先是需要在android studio里面安装最基本的环境。 打开Default Preference里面查看SDK Tool选项。 CMake、LLDB、NDK这三个勾选上去,然后安装。 安装好了以后,在File-》Project Structure的SDK Loc...原创 2018-04-14 16:27:14 · 12712 阅读 · 5 评论 -
银行类app如何保证安全性
银行类app对于安全行的要求比较高,这篇文章整理一些日常开发中的基础知识。sharedPreference很多app在使用sharedpreferece储存个人数据,然后这部分储存是不安全的。 1.创建模式要正确MODE_PRIVATE。 因为如果是使用MODE_WORLD_READABLE创建的sharedpreference文件其他app是可以读取到的。如果是使用MODE_WO...原创 2018-03-31 12:06:30 · 5810 阅读 · 0 评论 -
Service的两种启动方式
在Android开发的过程中,Service是一个非常重要的组件。 它的生命周期里面有几个特别重要的方法。Service的生命周期onCreate 当服务创建的时候调用 onStartCommand startServcie的时候会调用这个方法 onBind 当有其他组件想通过bindService()方法绑定这个服务时系统就会调用此方法。在实现的方法里面,必须添加一个供客...原创 2017-07-16 19:12:07 · 1354 阅读 · 0 评论 -
Eclipse项目如何切换成AS项目
如何将eclipse项目转化为AndroidStudio项目,并且用gradle的方式去打包。原创 2017-08-17 20:17:35 · 3533 阅读 · 0 评论 -
自定义解析器【一】
像xml,html这些标记行语言,我们通常会去采用java自带的解析工具去解析,如果我们要自己写一个类似于pull解析器或者dom解析器,能实现吗?这当然是很麻烦的,但是我们这里就写一个简单的解析器。 比如我们要解析的文本是:<xxml><span><button id="btn1" width="40" height="40"/><label id="label1" width="30"原创 2017-08-01 13:42:55 · 1122 阅读 · 0 评论 -
android用okhttp搭建网络通讯(附服务器端代码)
Okhttp是一个处理网络请求的开源项目,是安卓端最火热的轻量级框架。完全可以用来替代HttpUrlConnetion和HttpClient接下来我们就来实现一下这个用okhttp搭建一个android客户端访问java服务端的框架。因为网上有很多这样的例子,但是都是只有android客户端的,这篇文章把服务端代码也贴一下,这样有许多同学就可以完全在自己原创 2017-04-18 16:29:10 · 6607 阅读 · 6 评论 -
Android数据库sqlite封装心得
怎样稍微对Android的SQLiteDatabase进行相应的封装呢?SQLite是Android里面轻量实现的数据库, Android提供了SQLiteDatabase类用来创建和访问数据库对象。 当要打开和创建数据库对象时,会执行SQLiteDatabase .openOrCreateDatabase()方法;当要执行sql语句的时候,我们会执行SQLiteDatabas...原创 2017-02-19 08:37:19 · 4120 阅读 · 0 评论 -
AndFix实例讲解
Andfix是阿里推出的一个热更新的库工程。相比其他热更新框架,它的特点是使用简单,功能强大,有专门团队进行维护。这篇文章来讨论下如何导入使用Andfix框架,并使用Andfix来完成我们一个bug的修复。导入Andfix新建一个android studio 工程,引入Andfix很简单,在build.gradle下面添置语句。 compile ‘com.alipay.euler:a...原创 2017-10-05 15:47:28 · 540 阅读 · 0 评论 -
Andfix实例讲解
Andfix是阿里推出的一个热更新的库工程。相比其他热更新框架,它的特点是使用简单,功能强大,有专门团队进行维护。这篇文章来整理讨论下如何导入使用阿里的Andfix框架来完成我们一个bug的修复。导入Andfix新建一个android studio 工程,引入Andfix很简单,在build.gradle下面添置语句。 compile ‘com.alipay.euler:andfix:0.5.原创 2017-10-05 08:48:13 · 140 阅读 · 0 评论 -
从源码分析Android的Classloader加载过程
现在插件化技术十分热门,其核心原理之一是用到了ClassLoader类加载器。因此有必要来了解下Android中的ClassLoader加载原理。 动态加载dex/jar/apk文件的基础是类加载器ClassLoader,它的包路径是java.lang,由此可见其重要性,虚拟机就是通过类加载器加载其需要用的Class,这是Java程序运行的基础。Java当中的类加载器分类1.Boot...原创 2017-07-01 08:24:25 · 650 阅读 · 0 评论 -
避免常见的Android内存泄漏
Android中的内存泄漏是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。下面归纳下app开发中常见的内存泄漏。1.尽量避免使用static变量因为在Android中,static声明的变量的生命周期跟app是一样的,比如app切换到后台后 ,这时候内存占用率大的activity会优先被回收。而这时候这个acti...原创 2017-06-13 13:55:48 · 387 阅读 · 0 评论 -
观察者模式
概念介绍观察者模式实际在android中用到的地方是非常多的。 比如我们的eventbus,还有listview更新数据,以及最近非常火的rxjava,用到的都是观察者模式。 无论是从事java开发,还是android开发,熟悉设计模式中的观察者模式都是必要的。使用场景观察者模式的主要使用场景有以下: 1.一个抽象模型有两个方面,一个方面依赖另一个方面。 2.一个对象的改变将导致一个或多个其原创 2017-12-30 10:50:15 · 338 阅读 · 0 评论 -
gradle配置笔记
这里我把项目中build.gradle里面的配置整理罗列一下。能力有限,希望多多谅解。常用打包指令(命令端执行)./gradlew assembleDebug 编译并打Debug包 ./gradlew assembleRelease 编译并打Release的包 ./gradlew clean 清除9GAG/app目录下的build文件夹 ./gradlew build 检查依赖...原创 2018-02-26 17:30:39 · 249 阅读 · 0 评论 -
Retrofit2 源码分析
提示:文章比较长,可能需要较长时间阅读理解。一.如何使用Retrofit首先需要在gradle配置里面增加对retrofit的引用。compile'com.squareup.retrofit2:retrofit:2.2.0'我下载到的版本是2.2.0的版本。首先来看一下Retrofit是怎么用的。public interface GithubService{ @G...原创 2017-05-04 15:54:11 · 1095 阅读 · 0 评论