
android应用开发
lywyb112
八年程序员生涯,android、跨平台、php开发,热衷于拥抱新技术
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Android创建和使用数据库详细指南
Android创建和使用数据库详细指南(1) 摘要:每个应用程序都要使用数据,Android应用程序也不例外,Android使用开源的、与操作系统无关的SQL数据库--SQLite,本文介绍的就是如何为你的Android应用程序创建和操作SQLite数据库。 数据库支持每个应用程序无论大小的生命线,除非你的应用程序只处理简单的数据,那么就需要一个数据库系统存储你的结构化数据,And转载 2013-01-06 15:15:24 · 602 阅读 · 0 评论 -
Android四种启动模式结合实例分析
Android四种启动模式:一. Standard 标准模式 定义: 每次启动Activity都会创建一个新的实例入栈,无论这个实例是否存在(这是Activity默认的启动模式,如果没有设置启动模式,默认使用该模式。)。 举例: 我们在从ActivityA中点击跳转到ActivityB,再从ActivityB中跳转到ActivityB,这时候返回时需要点两次才能返...原创 2018-12-29 08:07:17 · 3176 阅读 · 0 评论 -
Android Handler之更新ui使用分析
在Android中Handler相信大家都很熟悉了,主要用在:将工作线程中需要操作UI的消息传递到主线程,主线程收到消息后根据需求更新UI。这里举个例子看下:@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setCon...原创 2018-12-29 10:18:26 · 4498 阅读 · 2 评论 -
Android Handler 之原理分析
本文主要从几个方面分析Handler:1.分析Handler的源码2.简单介绍消息机制中几个成员:Message、MesageQueue、Lopper3. Handler、Message、MesageQueue、Lopper之间的关系一.Handler的源码分析: 上篇文章已经对Handler的使用做了介绍,这里将结合源码进行分析: 1.首先看下Handler的构造...原创 2018-12-29 16:31:48 · 2930 阅读 · 2 评论 -
Android造成内存泄漏原因及解决方案
开发app中对内存的使用,一定是大家最关心的问题之一,因为内存的使用直接影响到app的性能。内存使用中内存泄漏是开发Android应用中常见的,Android中可以使用LeakCanary来检测内存泄漏。 那么什么是内存泄漏?内存泄漏简单解释就是:完全无用的对象,无法被被GC回收的现象就是内存泄漏。 内存泄漏会造成什么问题呢?每个app可分配的内存是有限的,内存泄漏就会...原创 2019-01-02 14:53:37 · 5373 阅读 · 0 评论 -
Android组件化初探
一. 组件化定义: 组件化就是一个项目根据业务功能划分成不同的业务模块,每个模块都相当于一个单独的app可以单独编译和运行,模块之间通过路由交互。 二.为什么要组件化? 对于一个大型app来说,版本会不断迭代,功能会不断增加,业务也会越来越复杂,每个业务模块的代码不断增加,这样发展下去,项目的维护和开发人员会都要熟悉整个项目的代码,每次编译都要编译整个项目,...原创 2019-02-15 13:53:56 · 284 阅读 · 0 评论 -
Android性能优化之使用Android profile跟踪耗时方法
AndroidStudio3.0之后增加了anroid profile,Profile分为三大块分析:CPU、内存和网络,本篇主要介绍内存分析。这里我们主要通过Android profile 的CPU分析功能来定位耗时方法,以优化应用的流畅度。 这里我们直接通过操作实例来解决问题:一.首先看这里需要解决的问题: app中点击如下按钮到见到页面会有明显的停顿时间:针对...原创 2019-02-22 14:57:28 · 7587 阅读 · 1 评论 -
Android架构进化之mvc-mvp-mvvm
一.为什么要引入架构设计? 我们的项目为什么要引入架构设计?架构设计的目的是使你的项目模块化,实现模块内部高聚合、模块之间低耦合,这样做的好处是在协同开发中,每个开发人员可以更专注的开发某一点,提高开发效率,并且项目结构清晰、可维护性高。 二.Android架构演变 Android的发展中,不同时期流行的架构演变主要是从MVC到MVP到MVVM,这里我们就来介绍下三个项目架...原创 2019-02-19 11:29:32 · 634 阅读 · 0 评论 -
阿里巴巴Android开发规范
阿里云出的阿里巴巴Android开发手册,这几天看了下个人感觉不错,里面的知识点虽然都很基础,但是都是开发中很实用和很容易碰到的问题。主要讲了命名规范、组件使用注意、安全等问题,有兴趣的同学可以下载看看,下载地址:https://edu.aliyun.com/course/813还可以在阿里云的网站上参加阿里云认证考试,需要交9.9参加考试,考试比较简单,只要看看开发手册基本都能过,考...原创 2019-04-10 14:19:18 · 1582 阅读 · 0 评论 -
阿里巴巴android开发手册阅读笔记之命名规范
命名规范在日常开发中有着至关重要的作用,命名规范可以提高项目的可读性、可维护性。本文中的规范说明全部来自阿里巴巴开发手册,是本人觉得在日常开发中常用和重要的方面截取出来做记录,如果公司没有统一的规范和没有形成自己的一套规范的同学可以参考使用。一.java语言命名规范1.命名不能使用美元符号和下划线开始和结束2.命名不能使用拼音和中文3.类命名使用:UpperCa...原创 2019-04-08 11:50:50 · 1804 阅读 · 0 评论 -
Android如何在Service中执行耗时操作
一.Service能不能执行耗时操作?Service是Android四大组件之一,是运行在后台的服务,可用来执行不需要在前台展示的动作,如播放音乐等;有些人可能会认为,Service竟然是在后台运行的那不就可以用来执行耗时操作了,这样也不会影响前台页面,其实不行,因为Service也是运行在主线程,所以Service是不能用来执行耗时操作的。二.Service中开启线程...原创 2019-04-08 15:26:38 · 8479 阅读 · 0 评论 -
Android在onStop/onPause中还是在onDestory中释放资源
一.为什么不在onDestory中执行释放资源操作?这里我们先大概回顾下Activity的生命周期:oncreate()->onstart()->onResume()->onRestart()->onPouse()->onStop()->onDestory()可以看到Activity生命周期的最后一个执行方法就是onDestory,因此不少时候...原创 2019-04-09 11:21:24 · 2540 阅读 · 0 评论 -
android SDK manager更新提示403报错
今天更新下sdk发现报错了,记录下报错处理方式。android SDK manager更新的时候提示403报错,是因为没有设置代理或者设置的代理不能使用了。下面介绍个设置镜像代理设置步骤:1.打开Android skd manager时,如下图点击:2.选择Preferences:3.在下图中输入代理地址,这边使用地址:mirrors.neusoft.edu.cn...原创 2019-04-16 10:43:31 · 1297 阅读 · 0 评论 -
Kotlin 初探之创建项目
AndroidStudio创建Kotlin:主要是勾选Include Kotlin support,其他步骤同创建java项目一样:看下项目结构,同java项目不同的是创建的是.kt文件:gradle中引入了kotlin:这是kotlin的activity类:布局文件同java一样。这样就可以把这个 helloword demo跑起来了...原创 2019-04-17 11:33:54 · 865 阅读 · 0 评论 -
Kotlin 初探之Android 控件绑定和使用
Android 的控件大家都很熟悉,在java中绑定控件也很简单,直接使用:findViewById就可以了,这里我们讲下控件在kotlin的绑定。在kotlin绑定控件更简单方便:1.引入kotlin扩展,这个新建项目的时候就自动引入了:apply plugin: 'kotlin-android-extensions'2.在activity中导入kotl...原创 2019-04-18 13:39:35 · 4689 阅读 · 0 评论 -
使用kotlin写的android简单计算器demo
使用kotlin写的android简单计算器demo,适合初入门的朋友参考使用,完整项目代码地址:https://github.com/linwenbing/KotlinCounterDemo1.项目代码:import android.support.v7.app.AppCompatActivityimport android.os.Bundleimport android.ut...原创 2019-04-19 14:46:45 · 4360 阅读 · 4 评论 -
android View.post()分析
大家都知道每个View都有一个post()和postDelayed()方法,那么这两个方法是做什么用呢?什么时候需要用呢?我们带着这两个问题来分析一下:首先我们看下这两个方法的源码,首先看post():/** * <p>Causes the Runnable to be added to the message queue. * The runnable will b...原创 2018-12-28 13:38:49 · 6305 阅读 · 0 评论 -
Android View之事件分发
Android view的事件分发机制是开发中的一个重点,因此掌握它的真正意义是非常必要的。一.什么是view的事件分发机制呢? 将点击事件传递到具体某个view处理的整个过程,就叫做事件分发。 二.为什么要有事件分发呢? 因为Android的view是树形结构的,view可能会重叠,当点击的地方多的时候,为了解决点击事件传递给谁的时候,就要用到事件分发了,因此也可以...原创 2018-12-21 16:18:23 · 4806 阅读 · 0 评论 -
ble与设备进行大量数据交互时(如ota升级)容易断开问题
app与设备进行大数据交互时,容易断:解决方法:修改设备的蓝牙连接间隔在10-20ms连接间隔修改方法:1.设备中有做好接收app发送指令后修改的:根据设备商提供的协议往设备上发送连接间隔时间(如ti芯片就有该功能)2.芯片厂商没有的:在android5.0以上系统有:ble 中requestConnectionPriority这个方法 修改设备连接参数requestCon...原创 2018-12-07 10:52:25 · 2746 阅读 · 1 评论 -
定义整个项目的控件样式
有时候我们在开发应用时想对某个控件的样式,要让它在整个应用中都能应用自定义的样式时,如果是在每个用到的地方都去定义就会显得很麻烦,所以这里就来修改能一次定义整个应用都能用到的控件样式,修改方法:1.首先在styles中定义style:从Theme.Holo中找到对于的要改的控件属性:如改Button的属性就在:@style/ButtonThe上面的ButtonThe是我原创 2013-01-06 15:57:15 · 1624 阅读 · 0 评论 -
android开发中的代码优化建议
1.For each比其它的循环方式高效;2.访问本地局部变量比类变量高效;3.字符串拼接StringBuilder比String高效;4.用静态内部类往往会更高效;5.Handler传递消息比Broadcast Receiver广播高效;6.Parcelable比Serializable高效;7.插入多条数据到数据库用事务比循环插入多条数据高效;转载 2013-01-06 14:47:46 · 1256 阅读 · 0 评论 -
android appwidget 开发
简单AppWidget开发步骤:1.建一个类继承AppWidgetProvider 覆写onUpdate方法,实现定时更新2.在androidMenifest.xml文件中添加receiver标签指向刚建的类3.在xml文件夹里编写provider文件信息, android:minWidth="300dip"//这两个高度宽度设置一直打不到所要的要求,好像是说系统会自适应。原创 2013-01-06 15:44:21 · 693 阅读 · 0 评论 -
Android 开发规范
一、Android编码规范1.java代码中不出现中文,最多注释中可以出现中文2.局部变量命名、静态成员变量命名只能包含字母,单词首字母出第一个外,都为大写,其他字母都为小写3.常量命名只能包含字母和_,字母全部大写,单词之间用_隔开4.layout中的id命名命名模式为:view缩写_模块名称_view的逻辑名称view的缩写详情如转载 2013-01-08 09:29:28 · 500 阅读 · 0 评论 -
点击Listview弹出PopWindow的用法
先来张截图:如图点击listview中的Item在item的下方弹出一个框框,这个框框就是用的Popwindow。用法很简单:首先写一个PopupWindow并自定义它的布局: LayoutInflater layoutInflater = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFL原创 2013-03-07 11:37:00 · 2510 阅读 · 2 评论 -
Google Map Android v2开发: 安装运行Google Map Android v2 示例程序
V2 版本有几个注意事项:只能运行在Android2.2以及以上版本的设备上 不能运行在模拟器中 在开发环境中安装Goole Play service SDK.(参考: http://developer.android.com/google/play-services/setup.html)在Eclipse中打开 Windows>Android SDK M转载 2013-05-17 11:39:37 · 881 阅读 · 0 评论 -
android防止代码被反编译
作为Android应用开发者,不得不面对一个尴尬的局面,就是自己辛辛苦苦开发的应用可以被别人很轻易的就反编译出来。Google似乎也发现了这个问题,从SDK2.3开始我们可以看到在android-sdk-windows/tools/下面多了一个proguard文件夹,proguard是一个java代码混淆的工具,通过proguard,别人即使反编译你的apk包,也只会看到一些让人很难看懂的代码,从转载 2013-07-22 11:34:15 · 774 阅读 · 0 评论 -
开发应用时避免内存泄漏的注意事项
1、 数据库的cursor没有关闭2、 构造adapter没有使用缓存contentview 衍生的listview优化问题:减少创建View的对象,充分使用contentview,可以使用静态类来处理优化getView的过程3、Bitmap对象不使用时采用recycle()释放内存4、Activity中的对象生命周期大于Activity5.避免Context相关的内存原创 2013-07-22 11:35:42 · 669 阅读 · 0 评论 -
对Android开发者有益的40条优化建议
下面是开始Android编程的好方法: 找一些与你想做事情类似的代码 调整它,尝试让它做你像做的事情 经历问题 使用StackOverflow解决问题对每个你像添加的特征重复上述过程。这种方法能够激励你,因为你在保持不断迭代,不经意中你学到了很多。然而,当你发布应用时你还要做一些更深入的事情。从一些可正常工作的代码到一个可怕的应用程序是一个巨大的跳跃,相比iOS平台Android更转载 2014-05-12 17:31:22 · 664 阅读 · 0 评论 -
android代码优化
通常我们写程序,都是在项目计划的压力下完成的,此时完成的代码可以完成具体业务逻辑,但是性能不一定是最优化的。一般来说,优秀的程序员在写完代码之后都会不断的对代码进行重构。重构的好处有很多,其中一点,就是对代码进行优化,提高软件的性能。下面我们就从几个方面来了解Android开发过程中的代码优化。1)静态变量引起内存泄露在代码优化的过程中,我们需要对代码中的静态变量特别留意。静态变量转载 2014-05-12 17:58:40 · 720 阅读 · 0 评论 -
mac Android studio3.2版本安装+环境搭建
Android studio3.2安装:1.下载android studio2.下载sdk manager3.打开sdk manager 4.sdk manager需要设置代理才可以正常更新:mirrors.zzu.edu.cn80 5.配置环境变量(1)命令输入:open ~/.bash_profile打开环境变量设置地址export PATH=${...原创 2018-12-06 14:21:17 · 10193 阅读 · 0 评论 -
android flutter安装
1.clone flutter到本地git clone -b beta https://github.com/flutter/flutter.git2.//把 安装目录/flutter/binexport PATH=`pwd`/flutter/bin:$PATH3.配置环境变量(1)open ~/.bash_profile (2)在该文件下加入:expo...原创 2018-12-06 14:22:09 · 3328 阅读 · 0 评论 -
Android View之绘制流程
android view是大家实现各种漂亮ui的基础,因此对于它的重要性,就可想而知了;网上关于android view分析的文章也是非常的多,之所以还写这篇文章主要还是,通过看大家的分析和自己的理解做一个整理和记录,这样会有个更加深刻的印象。android view 有几万行的代码,本文主要针对view绘制流程的主要三个方法进行分析:测量(Measure)、布局(Layout)、绘制(d...原创 2018-12-19 16:37:15 · 4513 阅读 · 0 评论 -
mac 下启动模拟器时提示HAXM is not installed:
mac 下启动模拟器时提示HAXM is not installed:1.安装这个 2./Users/user/android/android-sdk-macosx/extras/intel:文件夹下有个dmg文件,点击安装安装时有个写入注册表的权限需要在安全性隐私那边点击允许才行,否则安装成功后开模拟器会提示:/dev/kvm is not found...原创 2018-12-07 10:46:47 · 8555 阅读 · 2 评论 -
android ble常见问题收集
1.oppo ble难扫描的问题oppo 手机只扫描一次,所以经常扫不到修改方式:开启线程1秒执行一次scanLeDevice(false);scanLeDevice(false);scanLeDevice(true); Runnable runnable=new Runnable() { @Override public void run() {...原创 2018-12-07 10:50:33 · 3510 阅读 · 0 评论 -
打包项目报错Caused by: java.io.IOException: Duplicate zip entry [a.class == 4.jar:ThreadPoolCached.class]
正常直接用android_studio运行项目时不会出错,打包时就报错了,报错信息如下:打包项目报错Caused by: java.io.IOException: Duplicate zip entry [a.class == 4.jar:ThreadPoolCached.class]折腾了好就,最后发现是在lib中存在两个类名和包名一样的类:ThreadPoolCached.class,...原创 2019-07-12 14:38:29 · 1216 阅读 · 0 评论