Android随记
文章平均质量分 66
随记android文章
SickeyLee
努力学习,天天向上,最美的诗和远方!
展开
-
使用和避免null
null本身不是对象,也不是Objcet的实例原创 2023-01-03 14:04:02 · 435 阅读 · 0 评论 -
Android内存问题 (内存溢出 内存泄漏 内存抖动)
Android内存问题原创 2021-12-28 22:27:30 · 316 阅读 · 0 评论 -
Android虚拟机相关
面试时 虚拟机是一个高频考点,非常容易考到,如果面试的好 是一个加分项原创 2021-12-27 21:35:48 · 1104 阅读 · 0 评论 -
Android开发屏幕适配
Android开发屏幕适配问题说明由于Android系统的开放性,任何用户、开发者、OEM厂商、运营商都可以对Android进行定制,修改成他们想要的样子。OpenSignalMaps发布了第一份Android碎片化报告,2013年,支持Android的设备共有11868种。2014年,支持Android的设备共有18796种。屏幕尺寸这么多,为了让我们开发的程序能够比较美观的显示在不同尺...原创 2019-06-12 22:19:22 · 635 阅读 · 0 评论 -
Android产品研发(十六)-->开发者选项
上一篇文章中我们讲解了Android中内存对象的序列化方式。由于Android开发涉及到不同Activity的数据传递,对于基本数据类型数据的传递是没有问题的,但是一旦涉及到复杂数据类型,就需要将数据序列化以便传输,在文章中我们主要讲解了两种数据序列化的方式:实现Serializable接口和实现Parcelable接口,同时也比较了它们各自的优缺点和实现方式。具体关于内存对象序列化方面的知识可参考转载 2016-11-03 21:26:26 · 454 阅读 · 0 评论 -
Android项目练手
最近利用闲暇时间,写了一款生活工具类的应用,开始的目的也主要是为了熟练一些老框架和熟悉一些新框架或者第三方库,大家可以把它看成一款练手的 Demo 应用吧!这里把自己在这个应用中用的库总结一下,还有一些大家感兴趣的实现效果也在这里给大家说明一下,大家在开发中作为一种参考吧。源码及下载地址这里是这款应用的下载地址和演示视频,大家可以下载把玩一下:小秋魔盒下载地址:https://mobile...原创 2018-05-18 10:13:29 · 10122 阅读 · 5 评论 -
是时候了解 ViewPager2重大更新,支持offscreenPageLimit
前言最近ViewPager2发布了1.0.0-alpha04版本,新增offscreenPageLimit功能,该功能在ViewPager上并不友好,现在官方将此功能延续下来,这回是骡子是马呢?赶紧拉出来溜溜;阅读指南:内容基于ViewPager21.0.0-alpha04版本讲解,由于正式版还未发布,如有功能变动有劳看官指出 内容重点:介绍ViewPag...原创 2019-05-19 09:59:37 · 730 阅读 · 0 评论 -
Android产品研发(二十五)-->MVC/MVVM/MVP简单理解
上一篇文章中我们讲解了关于Android开发过程中常见的内存泄露场景与检测方案。Android系统为每个应用程序分配的内存是有限的,当一个应用中产生的内存泄漏的情况比较多时,这就会导致应用所需要的内存超过这个系统分配的内存限额,进而造成了内存溢出而导致应用崩溃。在实际的开发过程中我们由于对程序代码的不当操作随时都有可能造成内存泄露。具体更多关于Android常见内存泄露与检测的内容可参考我的上篇文章转载 2016-11-03 21:38:06 · 509 阅读 · 0 评论 -
Android设计模式系列(0)--开篇
看了很多年的设计模式,也看了很多种设计模式,也在工作中用了几个常见的设计模式。 android中,包括源码和一些开源项目,用到了很多经典设计模式,而且也用的非常的精彩。 学习android也有一些日子了,有空的时候看看源代码,看看开源项目的代码,自己也会再工作中写写代码。 今天,斗胆,基于android(其实就是java),把自己对设计模式的一些粗浅认识,默默的分享出来,希望能得到各位同仁的指原创 2016-11-08 15:27:07 · 268 阅读 · 0 评论 -
Android产品研发(八)-->App数据统计
上一篇文章中我们介绍了Android社区中比较火的热修复功能,并介绍了目前的几个比较流行的热修复框架,以及各自的优缺点,同时也介绍了一下自身项目中对热修复功能的实践。目前主流的热修复原理上其实分为两种,一种是通过利用dex的加载顺序实现热修复功能,一种是通过native层实现指针替换实现热修复功能,两种各有利弊可以根据自身产品的需要选择不同的方案,具体可参考: Android产品研发(七)–>Apk转载 2016-11-03 18:16:46 · 306 阅读 · 0 评论 -
Android产品研发(二)-->启动页优化
上一篇文章中我们介绍加单说明了一下Android的编码规范,这里我是强烈建议大家在团队合作中约定编码规范的,哪怕是一个并不是十分规范的规范总比没有规范好得多,尤其是团队产品的研发,对产品的持续迭代过程中你会越发的意识到编码规范对产品迭代的好处,当然了,这里并不是要求大家一定按照文中给出的编码规范作为团队中使用的编码规范,而是希望大家在团队合作中能够约定出自身的编码规范,哪怕其并不是十分的规范,具体的转载 2016-11-03 18:01:43 · 246 阅读 · 0 评论 -
Android Jetpack之Lifecycles
Android Jetpack之LifecyclesAndroid Jetpack之LifecyclesAndroid中大多数的组件都有生命周期函数,生命周期由操作系统或者framework层的代码来管理,它们是Andorid的核心运行方式。我们平时写程序必须遵循生命周期的原则,否则会造成内存泄露甚至程序崩溃我们通常会在activity和fragment的生命周期函数内来做一些初始...原创 2019-08-22 23:19:49 · 319 阅读 · 0 评论 -
Android之在子线程更新UI(二)
Android在子线程中更新UI的方法汇总(共七种)1、常规写法:new Handler()的handleMessage()和handler.sendMessage(msg) Handler handler = new Handler() { @Override public void handleMessage(Message msg) { ...原创 2019-06-02 19:59:13 · 95 阅读 · 0 评论 -
来两篇利于发展的博客
http://www.jikedaohang.com/#part5http://www.androidcat.com/?step=1&view=CatFragmenthttp://www.codesocang.com/http://mobdevgroup.com/https://github.com/Arisono/MarksToAndroid原创 2016-11-09 17:15:01 · 282 阅读 · 0 评论 -
Android产品研发(十九)-->Android studio中的单元测试
上一篇文章中我们讲解了webview中问题集锦,讲解了webview的性能优化、webview种入Cookie信息、activity退出的时候清除webview信息报错、如何通过Java代码和js代码相互交互、webview如何下载文件以及腾讯的X5浏览服务等知识,这些都是我在使用webview中遇到的问题,难点,实践等,更多关于这些问题的说明,可以参考我的:Android产品研发(十八)–>web转载 2016-11-03 21:29:56 · 338 阅读 · 0 评论 -
Android文件各种存储路径的比较
1、File cacheDir = context.getCacheDir();应用内部存储空间(数据文件私有)文件存储到这个路径下,不需要申请权限,当应用被卸载的时候,目录下的文件会被删除。需要注意的是,这个文件的目录和应用的存储位置有关,当应用被移动到外部存储设备的时候,文件的绝对路径也是变化的,所以建议当数据存储到这个目录的时候,用相对路径。这个目录和getFilesDir()目录...原创 2019-04-30 10:14:41 · 573 阅读 · 0 评论 -
Android数据存储之SQLCipher数据库加密
Android数据存储之SQLCipher数据库加密前言: 最近研究了Android Sqlite数据库(文章地址:Android数据存储之Sqlite的介绍及使用)以及ContentProvider程序间数据共享(Android探索之ContentProvider熟悉而又陌生的组件),我们清晰的知道Sqlite数据库默认存放位置data/data/pakage/database目录下,对于已经...原创 2018-04-10 10:07:53 · 154 阅读 · 0 评论 -
Android设计模式系列(1)--SDK源码之组合模式
Android中对组合模式的应用,可谓是泛滥成粥,随处可见,那就是View和ViewGroup类的使用。在android UI设计,几乎所有的widget和布局类都依靠这两个类。组合模式,Composite Pattern,是一个非常巧妙的模式。几乎所有的面向对象系统都应用到了组合模式。1.意图将对象View和ViewGroup组合成树形结构以表示"部分-整体"的层次结构(View可以转载 2016-11-08 15:28:50 · 242 阅读 · 0 评论 -
Android产品研发(十七)-->Hybrid开发
上一篇文章中我们介绍了Android开发中经常会涉及到但又常常被忽视掉的开发者模式。主要讲解了包括如何打开手机的开发者模式,开发者模式中各个菜单的意义和作用,如何清除手机App数据,以及清除手机App数据具体清除那些数据等知识点,具体关于Android中开发者模式的知识,可参考我的: Android产品研发(十六)–>开发者选项本文将介绍Android中hybrid开发相关的知识点。hybrid开发转载 2016-11-03 21:27:53 · 331 阅读 · 0 评论 -
Android唤醒、解锁屏幕代码实例
这篇文章主要介绍了Android唤醒、解锁屏幕代码实例,本文讲解了唤醒、解锁屏幕需要的权限和操作代码实例,代码中包含详细注释,需要的朋友可以参考下所需权限:复制代码 代码如下:< uses-permission android:name="android.permission.WAKE_LOCK" /><uses-permission android:nam...原创 2019-05-27 20:46:09 · 2537 阅读 · 0 评论 -
多渠道打包
多渠道打包01-应用的打包签名打包是什么?打包就是根据签名和其他标识生成安装包。签名是什么?1.在android应用文件(apk)中保存的一个特别字符串2.用来标识不同的应用开发者:开发者A,开发者B3.一个应用开发者开发的多款应用使用同一个签名>就好比是一个人写文章,签名就相当于作者的署名。> 如果两个应用都是一个开发...原创 2019-06-10 21:42:24 · 497 阅读 · 0 评论 -
View onDraw、dispatchDraw、invalidate和computeScroll介绍
结合View.Java的源码,在draw方法中:public void draw(Canvas canvas) {/* View的绘制过程分为下面几步:Draw the background 绘制背景If necessary, save the canvas’ layers to prepare for fading 如有必要,颜色渐变淡之前保存画布层(即锁定原有的画布内容)Draw v原创 2016-11-06 16:59:36 · 354 阅读 · 0 评论 -
Android产品研发(十)-->尽量不使用静态变量保存数据
上一篇文章中我们讲解了Android开发过程中几种常见网络协议:xml,json,protobuf等,以及它们各自的优缺点,一般而言当我们的App涉及到了网络传输时都会有这方面的内容,具体可根据项目的需求确定各自的网络传输协议。更多关于网络传输协议的内容可参考我的: Android产品研发(九)–>App网络传输协议而本文讲解的其实并不是一个技术方面,而是一个Android产品研发过程中的技巧:尽量转载 2016-11-03 21:16:43 · 502 阅读 · 0 评论 -
Android总结的网站
http://blog.csdn.net/crazymo_/article/details/50351025 Handler的源码解析http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0326/2643.html OKHttp源码解析https://foofish原创 2017-03-04 12:25:53 · 307 阅读 · 0 评论 -
Android的缓存机制(java序列化)
实现一个封装请求网络json数据的工具类,要求请求的数据的时候先读缓存,如果缓存有效(有效时间为3分钟),则读取缓存中的json数据,如果缓存无效,则读取网络中的json数据,并缓存起来。读取到数据的时候只需要打印一下json数据,无需写回调。public class NetUtil {public static final Class TAG = NetUtil.class;/**原创 2016-11-04 22:43:53 · 596 阅读 · 0 评论 -
Android设计模式系列(2)--SDK源码之观察者模式
观察者模式,是一种非常常见的设计模式,在很多系统中随处可见,尤其是涉及到数据状态发生变化需要通知的情况下。本文以AbstractCursor为例子,展开分析。观察者模式,Observer Pattern,是一个很实用的模式,本人曾经接触到的各种平台以及曾经参与项目中打印模板解释器中都用到了此模式。1.意图定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对转载 2016-11-08 15:31:23 · 266 阅读 · 0 评论 -
JNI的简单介绍
.简单介绍一下NDK和JNINDK:NDK是Native Development Kit的缩写,是Google提供的一套工具集,可以让你其他语言(C、C++或汇编)开发 Android的 JNI。NDK可以编译多平台的so,开发人员只需要简单修改 mk 文件说明需要的平台,不需要改动任何代码,NDK就可以帮你编译出所需的so库。JNI:JNI是Java Native Interface的缩写,它提...原创 2018-05-18 10:10:21 · 215 阅读 · 0 评论 -
Android产品研发(十二)-->App长连接实现
上一篇文章中我们讲解了Android应用内页面跳转协议-scheme协议,通过该协议我们可以跳转至指定的Activity,并在该Activity中解析scheme用于跳转到指定的页面,我们可以利用scheme协议实现应用内页面跳转、H5页面与Native页面相互跳转、通知栏消息跳转相应页面等,具体可参考: Android产品研发(十一)–>使用scheme实现页面跳转。而本文中我们将讲解一下App的转载 2016-11-03 21:21:08 · 586 阅读 · 0 评论 -
Android:答题APP的设计与实现(mysql+jsp+Android)
Android:答题APP的设计与实现(mysql+jsp+Android) 还没有整理完,待续…… 学校开了Android课,最后让交一个大作业。正好拿来练练手,记录下思路。也希望能给有需要的朋友们一些帮助。恩,纯小白教程,大神们可以绕路了。 作业的题目是这样的: 考试APP系统: 1)要求有用户登陆...原创 2018-06-11 10:00:48 · 2975 阅读 · 32 评论 -
JNI开发的流程
JNI开发的流程规范,中间人,中间件 c/c++ <---> javaNDK: native develop kits 谷歌给安卓程序员提供的一个做jni开发的工具NDK开发工具的目录结构doc 开发帮助文档 build c语言编译的工具链 cygwin platform 平台: 指定了编译针对的Android平台 arm 处理器架构 手机平板电脑 三星 摩托 ...原创 2019-06-07 12:10:12 · 190 阅读 · 0 评论 -
Afinal框架讲解
1.FinalBitmap 请求图片FinalBitmap finalBitmap = FinalBitmap.create(this);// 网络请求图片时默认显示的图片 finalBitmap.configLoadingImage(R.drawable.photo);// 开始加载图片 finalBitmap.display(iv_afinal,”http://img5.mtime.cn/原创 2016-11-22 19:16:51 · 250 阅读 · 0 评论 -
Android产品研发(二十)-->代码Review
上一篇文章中我们讲解了如何在Android studio中进行单元测试。实际开发过程中有一些功能性的需求,比如测试工具类,测试数据存储等测试工作,如果还是通过重复执行apk文件的编译,安装,运行等会浪费大量的时间,而这些功能与Android的开发环境无太大的关系,我们完全可以使用单元测试来执行。Android studio中默认是支持进行单元测试的,并提供了获取Context等系统对象的API,我们转载 2016-11-03 21:31:16 · 335 阅读 · 0 评论 -
认识ijkplayer
1.认识ijkplayer最近公司准备开发一款视频播放及直播的应用,找了许多开源的框架,大部分都是基于ffmpeg开发的。最开始准备用Vitamio框架开发的,相关的文章也比较丰富,结果对于非个人移动应用均需购买Vitamio使用授权。不过B站开源的ijkplayer也不错,而且也不需要商业授权。 ijkplayer是一个基于FFmpeg的轻量级Android/iOS视频播放器。FFmpeg的是全...原创 2018-05-18 14:45:00 · 596 阅读 · 0 评论 -
到底应该怎么介绍项目 ---AndroidFire
介绍:一款新闻阅读 App框架,基于 Material Design + MVP + RxJava + Retrofit + Glide,基于此框架可以快速开发一个app运行效果:使用说明:安装地址目前模块包括:新闻:头条、科技、财经、NBA等类型,可自主选择订阅美图:美图壁纸视频:包括热点、搞笑、娱乐、精品视频关注:包括朋友圈、日夜模式切换(无原创 2016-11-11 14:07:09 · 462 阅读 · 0 评论 -
Android版本28使用http请求报错not permitted by network security policy
Android版本28使用http请求报错not permitted by network security policyandroid模拟器调试登录的时候报错 CLEARTEXT communication to to 52.76.xx.xxx not permitted by network security policy2018-10-17 20:42:09.532 18048-18...原创 2019-05-31 19:32:07 · 328 阅读 · 0 评论 -
Android底部导航栏的玩法
1、通常来说,一般情况下,我们的app的BottomTab会有下面几种实现方式。 自定义view,然后自己写逻辑去实现。 使用RadioGroup+RadioButton去实现底部的Tab, 自由度比极高,如果想实现搞复杂度的话可以重写 RadioButton。 使用google design包里面的 TabLayout去实现。 可上、可下、可以滑动 偷懒的话可以根...转载 2018-12-20 09:28:53 · 220 阅读 · 0 评论 -
js与java的互掉
package com.example.jsnativedemo;import com.example.webviewjs.R;import android.app.Activity;import android.content.Intent;import android.graphics.Bitmap;import android.os.Bundle;import andro...原创 2019-06-12 22:25:27 · 465 阅读 · 0 评论 -
App移动端项目管理
项目流程一款应用的开发大体流程如下:1、项目立项:产品经理2、需求确认:产品经理3、业务确认:产品经理,技术经理,架构师4、业务架构:技术经理,架构师5、UI确认:产品经理,设计人员,开发人员全体6、UI交互确认:产品经理,移动端,前段开发人员7、接口确认:架构师,接口开发人员,移动端、前端开发人员8.1、UI工时评估:产品经理,设计人员8.2、接口工时原创 2016-11-11 12:13:37 · 794 阅读 · 0 评论 -
Android产品研发(二十一)-->Android中的UI优化
上一篇文章中我们讲解了Android产品研发过程中的代码Review。通过代码Review能够提高产品质量,增强团队成员之间的沟通,提高开发效率,所以良好的产品开发迭代过程中,代码Review是一个必不可少的步骤。那么如何进行代码Review呢?我们主要讲解了团队成员之间的代码Review,代码lint检查,开发规范等方面的知识点,更多关于代码Review相关的知识可参考我的:Android产品研发转载 2016-11-03 21:32:20 · 194 阅读 · 0 评论 -
android 键盘按键监听
onKeyDown方法:该方法是接口KeyEvent.Callback中的抽象方法,所有的View全部实现了该接口并重写了该方法,该方法用来捕捉手机键盘被按下的事件。public boolean onKeyDown (int keyCode, KeyEvent event)参数keyCode,该参数为被按下的键值即键盘码,手机键盘中每个按钮都会有其单独的键盘码,在应用程序都是通过键盘码才知道用户按...原创 2018-05-21 12:05:00 · 6175 阅读 · 0 评论