![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android 理论知识
文章平均质量分 65
吴庆森
这个作者很懒,什么都没留下…
展开
-
Maven-将jar包发布到本地maven仓库与私服
创建一个项目,并创建 library ,不会参考下面:https://blog.csdn.net/wuqingsen1/article/details/103178567如果 maven 还没有安装,请参考下面:https://blog.csdn.net/wuqingsen1/article/details/104020039发布到本地maven仓库我的 libra...原创 2020-01-17 17:55:57 · 1460 阅读 · 1 评论 -
Maven-Mac下载与安装
首先去下面网站下载并解压:http://maven.apache.org/download.cgi解压后如下图所示:接下来配置环境变量;在用户下面点击 shift+command+. 显示隐藏文件,找到 .base_profile 文件,打开如下图所示:打开该文件在后面追加export M2_HOME=/Users/wuqingsen/ASProject...原创 2020-01-17 15:31:37 · 2143 阅读 · 1 评论 -
腾讯bugly热更新开发
bugly 支持异常上报,应用升级与热更新;异常上报与应用升级使用较为简单,也没有什么难点。下面看一下热更新,官网的文档说的虽然非常明白,但是罗里吧嗦,看的让人头大。下面给出一个特别简单的集成与使用方式。打开下面 bugly 给出的 GitHub 示例,下面是链接:https://github.com/BuglyDevTeam/Bugly-Android-Demo下...原创 2019-11-26 17:13:34 · 634 阅读 · 0 评论 -
Android 发布项目到jitpack
下面的内容主要是 Android 自己创建依赖提交到 GitHub 并且发布到 jitpack 中,以供更多的人使用;首先创建一个项目,编译完成之后,点击 File ==> New ==> New Module ,如下图所示:然后选择第二个 Android Library ,如下图所示:然后完成即可,就可以看到,已经创建好了 Module ,如下图...原创 2019-11-23 15:54:07 · 468 阅读 · 0 评论 -
Android封装SDK的使用
介绍 Android 封装 SDK使用前,先了解几个文件格式:so 库:是 C或 C++ 语言而打包成的库;jar 包:里面包含了 class 文件与清单文件,不包括图片、页面等资源文件,是 Java 常用的方式;aar 包:里面包含了所有资源,包括图片、页面等,是 Android 常用的方法;了解完这三种文件格式,下面就来介绍一下用 AS 打 aar 包...原创 2019-11-21 12:48:53 · 2060 阅读 · 0 评论 -
Android冷启动-实现APP秒开
我们第一次打开 APP 的时候,如果没有做过处理,会经历一段白屏的时间,然后再开始看到我们的主页面;如下图所示:白屏的时间根据手机硬件配置来决定,一般在 500 - 2000 毫秒之间。什么是冷启动?冷启动就是,当 APP 进程被杀死,第一次打开该APP 启动,它的启动过程就是冷启动。冷启动的缺点是什么?在没有做任何处理的情况下,当我们打开 APP ,屏幕...原创 2019-11-20 18:12:28 · 2030 阅读 · 1 评论 -
Android Tinker热更新,非TinkerPlatform
下面的文章只是和微信的 tinker 有关,和收费的 tinkerPlatform 还有 buglyTinker 无关。下面是 tinker 在 GitHub 给出的官网文档:https://github.com/Tencent/tinkertinker 的优势以及和QZone、AndFix、Robust 的对比效果就不再说了,想了解自行搜索。下面是 tinker Android 版...原创 2019-11-15 16:49:59 · 190 阅读 · 0 评论 -
Android Charles抓包
下面是 Mac 使用 Charles 抓包工具抓包;1.下载安装 Charles打开下面网址:https://xclient.info/s/charles.html点击下载即可,如果打不开,搜索xclient.info ,打开后搜索 Charles 即可;我下载版本为:4.2.8;下载完毕,会提示输入密码,密码为: xclient.info打...原创 2019-11-08 16:43:28 · 3163 阅读 · 0 评论 -
Android Log日志保存到本地并读取
Android Log 日志添加保存到本地并读取,下面是效果图:GitHub 下载地址:https://github.com/wuqingsen/LogUtilscsdn 下载地址:https://download.csdn.net/download/wuqingsen1/11925706下面添加了三个工具类,分别是变量存储工具类、Log 日志存储并读取、Log 日志添加;...原创 2019-10-25 15:48:26 · 5622 阅读 · 1 评论 -
scrollTo、scrollBy、smoothScrollTo和smoothScrollBy
下面是 scrollTo、scrollBy、smoothScrollTo 和 smoothScrollBy 效果图:按钮添加的代码如下: scrollTo.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v...原创 2019-10-21 16:21:02 · 5337 阅读 · 0 评论 -
Android涂鸦简单制作
在了解 Android 中Paint 和 Canvas 的简单使用后,下面做一个简单的涂鸦功能先看下效果图: 那么来看一下是如何完成的:/** * author: wu * date: on 2018/12/11. * describe:涂鸦 */public class MyView3 extends View { private Paint myPain...原创 2018-12-12 10:49:43 · 1412 阅读 · 3 评论 -
Android中Paint和Canvas的简单使用
在 Android 中,Canvas 相当于画布,而 Paint 相当于画笔;那么这两个配合使用就可以画出来我们想要的形状了。首先我们新建一个类,名字叫 MyView,重写 onDraw() 方法,代码如下:@SuppressLint("AppCompatCustomView")public class MyView1 extends View { private Paint ...原创 2018-12-11 18:29:46 · 756 阅读 · 1 评论 -
View的绘制流程简单理解
在 Android 中,我们会用到很多控件(如:TextView 等)、容器(如:LinearLayout 等);其中控件都是继承于 View ;而容器都是继承于 ViewGroup ;那么这些控件、容器是如何显示到屏幕上的呢?无论是控件还是容器都要经过三个最主要的过程,从而显示到屏幕上的;即:onMeasure()、onLayout 和 onDraw;1. onMeasure()...原创 2018-12-10 18:14:32 · 413 阅读 · 0 评论 -
Android 计时器Timer用法
1.计时器Timer基本用法,完成倒计时public class TimeActivity extends AppCompatActivity { private Timer timer; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(sav...原创 2018-12-07 15:49:48 · 10523 阅读 · 3 评论 -
View的滑动
在熟悉了View的基础知识之后,下面看一下 View 的滑动。在 Android 设备中,滑动是必不可少的部分;因为手机屏幕是有限的,如果想呈现更多的内容,需要通过滑动来实现显示和隐藏一些内容,因此掌握基础的滑动是很有必要的。(部分内容摘自Android开发艺术探索)我们实现滑动效果有三种常用的方式:第一种是通过 View 自身的 scrollTo/scrollBy 方法实现滑动效果;第二...原创 2018-12-14 18:23:48 · 243 阅读 · 0 评论 -
View的基础知识
下面主要说一些 View 的基础知识,从而为后面更好的理解 View 做铺垫。主要内容有: View 的位置参数、 MotionEvent 和 TouchSlop 对象、VelocityTracker、GestureDetector 和 Scroller 对象。下面来了解一些这些基础的概念吧。(部分内容摘自Android开发艺术探索) 1. View 的位置参数View 的位置...原创 2018-12-13 17:22:58 · 278 阅读 · 0 评论 -
Android 偏好设置储存List数据
//偏好设置存储list public static <T> void saveVideoSP(Context context, String tableName, String key, List<T> datalist) { SharedPreferences preferences = context.getSharedPrefere...原创 2019-03-04 09:25:24 · 620 阅读 · 0 评论 -
Android动态添加布局LayoutInflater简单用法
下面是关于 LayoutInflater 简单用法:直接看例子,我想在 activity_main 文件中动态的添加一个布局;下面是 activity_main 文件中的代码:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="matc...原创 2018-12-06 14:38:41 · 5242 阅读 · 2 评论 -
Android内存泄漏
内存泄漏:当一个无用的对象仍然被其它对象所持有引用,从而造成该对象无法被系统回收,以致该对象在堆中所占用的内存单元无法被释放而造成内存空间浪费;这就是内存泄漏。 单例造成内存泄漏在自定义工具类时,经常会使用到单例模式,也经常这么写代码:public class Utils { private static Utils utils; private Context ...原创 2018-12-18 16:14:27 · 823 阅读 · 0 评论 -
Android 中文字符转UTF-8编码
String str = "转码"; try { String strGBK = URLEncoder.encode(str, "GBK"); Log.e("=====strGBK", strGBK); Strin...原创 2019-01-25 11:19:24 · 1936 阅读 · 0 评论 -
Android获取手机型号、系统版本号、手机IMEI、手机厂商等
添加工具类 SystemUtil :public class SystemUtil { /** * 获取当前手机系统语言。 * 例如:当前设置的是“中文-中国”,则返回“zh-CN” */ public static String getSystemLanguage() { return Locale.getDefault()....原创 2019-01-26 18:28:05 · 1834 阅读 · 0 评论 -
Android 屏幕适配中的一些概念
相关概念屏幕尺寸、屏幕分辨率、屏幕像素密度。dp、dip、dpi、sp、px 是什么,以及相关联系。mdpi、hdpi、xdpi、xxdpi 是什么,如何计算和区分。 屏幕尺寸屏幕对角线的长度,单位是英寸,1英寸 = 2.54厘米比如常见的屏幕尺寸有:5.0、5.5、6.0屏幕分辨率在横纵向上的像素点数总和,单位是 px ,1px = 1 个像素点如1080...原创 2019-01-22 16:44:15 · 135 阅读 · 0 评论 -
Android屏幕简单适配
Android 常用手机屏幕大小有 4.5、 4.7、 5.0、 5.5、 5.7、 6.0 等。常用的屏幕分辨率有 320x480、480x800、720x1280、1080x1920。面对多种多样大小的手机,屏幕的适配也成为了一个重要的问题。下面就分享一波简单的屏幕适配,下面直接看一个简单的例子;上面是一个设计图,可以看出图片大小为 165 dp,在写程序时,将图片大小设置为固定的...原创 2019-01-22 18:15:14 · 452 阅读 · 1 评论 -
Android图片的三级缓存
图片的三级缓存目的主要目的是为了节省流量、加快加载速度;每个 app 都会有大量的网络图片存在,当我们不做处理,每次打开 app 都去加载大量网络图片时,会耗费大量的流量,当网速不好时加载速度很慢;三级缓存介绍以及优点三级缓存即:内存缓存、本地缓存和网络缓存内存缓存:加载速度快、不耗费流量、优先加载本地缓存:加载速度快、不耗费流量、次级加载网络缓存:加载速度...原创 2019-04-02 16:03:02 · 586 阅读 · 1 评论 -
Android截屏并保存图片到本地
使用下面方法即可://截取屏幕public void screenShort() { View dView = getWindow().getDecorView(); dView.setDrawingCacheEnabled(true); dView.buildDrawingCache(); Bitmap bitmap = Bitmap.createBitm...原创 2019-06-06 18:23:47 · 1833 阅读 · 0 评论 -
Android WIFI开发:获取wifi列表,连接指定wifi,获取wifi加密方式,监听wifi网络变化等
下面是 Android 开发中 WiFi 的常用配置,如:获取当前 WiFi ,扫描 WiFi 获取列表,连接指定 WiFi ,监听网络变化等等。下面是效果图:GitHub 下载地址:https://github.com/wuqingsen/WifiDemoWucsdn 下载地址 :https://download.csdn.net/download/wuqingsen1/1...原创 2019-09-06 16:11:15 · 8456 阅读 · 3 评论 -
Android 利用 Terminal 打包
首先将 jks 文件放到项目中,再在 app 的 build.gradle 代码中加入: signingConfigs { release { storeFile file("key/make-friends.jks") storePassword "123456" ...原创 2019-10-08 16:06:14 · 830 阅读 · 0 评论 -
Android 五大布局
五大布局分别是:LinearLayout(线性布局)、RelativeLayout(相对布局)、FrameLayout(帧布局)、TableLayout(表格布局)、AbsoluteLayout(绝对布局);比较常用的为前两个。下面是简单介绍,主要还是靠自己练习。1.LinearLayout(常用,一般用于简单布局)特点:排列方式只有水平排列和垂直排列两种,orientation 设置...原创 2018-09-03 11:29:03 · 3886 阅读 · 0 评论 -
Android权限获取
开发中,很多时候要去动态的获取权限,效果图如下:直接看代码,首先加入权限: <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.WRITE_SETTINGS" /> ...原创 2018-12-05 15:16:07 · 1912 阅读 · 0 评论 -
Facebook-Rebound弹簧效果
在 Android 使用动画,除了属性动画比较好用,还有 Facebook-Rebound 的动画效果,今天就来通过几个小的动画效果来初步了解以下 Facebook-Rebound 。下面是效果图:效果十分的酷炫,下面就来看一下如何实现的;上面一共有三个动画效果,下面就来分别看一下Facebook-Rebound 官网:http://facebook.github.io/rebound...原创 2018-11-29 16:30:28 · 1567 阅读 · 0 评论 -
Android的数据存储方式
android 提供了五种数据存储的方式:1. SharePreference:采用XML格式将数据存储到设备中,只能在同一包名内使用;2. 文件存储:存储文件到 /data/data/包名/files 内存里面,默认是私有的访问权限;3. SQLite数据库:Android自带的轻量级嵌入式数据库,支持SQL语句;4. ContentProvider:主要用于应用程序之间的数据交...原创 2018-09-26 11:07:18 · 566 阅读 · 1 评论 -
如何安全退出已调用多个Activity的Application
如何安全退出已调用多个 Activity 的 Application ?思路如下:建一个工具类,在里面管理 activity 的添加,移除和退出 app 的操作;第一步,创建一个名字为 ActivityManage 的工具类,里面有添加 activity ,移除 activity 和退出 activity 的方法,代码如下:public class ActivityManage {...原创 2018-09-25 14:00:54 · 272 阅读 · 1 评论 -
Android Handler
多线程的应用在Android开发中是非常常见的,常用方法主要有:1.继承Thread类(继承 Thread 类和实现 Runnable 接口的区别)2.实现 Runnable 接口(继承 Thread 类和实现 Runnable 接口的区别)3.Handler4.AsyncTask(异步任务)5.HandlerThread下面就来看一下关于Handler 的理解和用法:...原创 2018-09-14 16:51:21 · 1413 阅读 · 1 评论 -
如何将 Activity 设置为窗口模式
1.利用系统提供的 theme 在清单配置文件中设置其属性。效果图如下:在 AndroidManifest.xml 清单配置文件对应的 Activity 中加入如下代码:<activity android:name=".DialogActivity" android:theme="@style/Base.Theme.AppCompat.Dialog"...原创 2018-09-25 11:09:35 · 3787 阅读 · 0 评论 -
Android Choreographer
1.在说 Choreographer 前先了解一下 CPU、帧率、垂直同步等概念:1.1 CPU、GPU在 Android 的绘制架构中,CPU 主要负责视图的测量、布局、记录、并且把内容计算成 Polygons(多边形) 或者 Texture(纹理) ,GPU主要复制把多边形和纹理进行 Rasterization(栅格化) 。如此才能在屏幕上成像。有时使用硬件加速后,GPU 会分担 CP...原创 2018-09-07 17:43:14 · 2351 阅读 · 0 评论 -
Android 窗口机制
1.熟悉窗口结构图:2.对 PhoneWindow,DecorView,WindowManager,ViewRootImpl 等关键词理解。2.1 PhoneWindow每个 Activity 都有一个 Window 对象的实例,这个实例实际上是 PhoneWindow 类型的,由此看出:PhoneWindow 是 Window 的子类。知识:每一个Activity都有一个 P...原创 2018-09-06 18:19:28 · 939 阅读 · 1 评论 -
ImageView 的 scaleType 属性图解
ImageView 的 scaleType 属性提供了八中属性,下面对着八中属性做出解释:下面是原图:注:ImageView 控件长宽都为 200dp,图中蓝色部分为 ImageView 背景样式,粉色为屏幕主背景色属性名称 介绍 样式 center 展示图片的中心部分 centerCrop 图片会被等比缩放直到完全填充整个ImageView...原创 2018-09-04 13:41:59 · 206 阅读 · 0 评论 -
Android 动画:逐帧动画,补间动画和属性动画
1.三种动画的介绍现在 Android 常用的动画有三种: 逐帧动画,补间动画和属性动画;FrameAnimation(逐帧动画):将多张图片组合起来进行播放,很多 App 的加载动画是采用这种方式(如:美团,去哪儿)。TweenAnimation(补间动画):补间动画由 Animation 类来实现具体效果,包括平移(TranslateAnimation)、缩放(ScaleAnima...原创 2018-09-04 09:34:55 · 2109 阅读 · 2 评论 -
Android 事件分发机制
在结合资料和项目开发过程中遇到的问题(更多好内容戳下面:https://blog.csdn.net/wuqingsen1),下面是本人对 Android 事件分发机制的了解:1. 事件分发的对象是谁? 答:点击事件( Touch 事件 )。Touch 事件的相关细节(发生触摸的位置、时间等)被封装成 MotionEvent 对象。2.事件的类型分为几种? 答:分为四种,具体...原创 2018-08-29 17:36:36 · 546 阅读 · 1 评论 -
RelativeLayout 和 LinearLayout 性能分析
在写布局文件中 RelativeLayout 和 LinearLayout 用的是较多的两种布局;而这两种哪一种方式性能更高?1.首先了解 View 的绘制流程。不管简单的 TextView 还是复杂的 RelativeLayout ,他们的共同基类都是 View ;所以它们都有三个重要的绘制方法(不详细介绍):Measure(测量),Layout(布局) 和 Draw(绘制);2.对...原创 2018-08-31 16:58:15 · 624 阅读 · 1 评论