Android开发杂项
liuyi1207164339
这个作者很懒,什么都没留下…
展开
-
Android Eclipse快捷键
用Eclipse开发,不知道快捷键可不行啊。 自动补充import Package Ctrl+Shift+O,这里O代表Organize Import的意思。 格式化代码缩进 Ctrl+Shift+F,这里面我们可以记忆F为Format格式化的意思(让代码布局变得清晰)。 快速查找代码 Ctrl+F,撤消到上一次Ctrl+Z 智能内容感知 Alt+/ ,该快转载 2015-09-26 21:53:59 · 488 阅读 · 0 评论 -
加快activity显示速度,提高用户体验
来自:http://blog.csdn.net/rev_fycd/article/details/9993133 项目里某个activity在显示前总是会先黑屏一会儿,然后才显示页面,感觉影响用户体验,要求优化。好吧,从activity的生命周期方法开始吧。因为业务逻辑的关系,只用到onCreate和onResume(事实上,个人感觉,除了这俩生命周期方法以及相对应的两个方法,转载 2016-03-19 15:15:19 · 681 阅读 · 0 评论 -
Android开发优化之——对Bitmap的内存优化
来自:http://blog.csdn.net/arui319/article/details/7953690在Android应用里,最耗费内存的就是图片资源。而且在Android系统中,读取位图Bitmap时,分给虚拟机中的图片的堆栈大小只有8M,如果超出了,就会出现OutOfMemory异常。所以,对于图片的内存优化,是Android应用开发中比较重要的内容。转载 2016-03-21 16:38:31 · 468 阅读 · 0 评论 -
Android开发优化之——使用软引用和弱引用
来自:http://blog.csdn.net/arui319/article/details/8489451Java从JDK1.2版本开始,就把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期。这四种级别由高到低依次为:强引用、软引用、弱引用和虚引用。这里重点介绍一下软引用和弱引用。如果一个对象只具有软引用,那么如果内存空间足够,垃转载 2016-03-21 16:51:21 · 430 阅读 · 0 评论 -
Android开发优化之——从代码角度进行优化
来自:http://blog.csdn.net/arui319/article/details/8537588通常我们写程序,都是在项目计划的压力下完成的,此时完成的代码可以完成具体业务逻辑,但是性能不一定是最优化的。一般来说,优秀的程序员在写完代码之后都会不断的对代码进行重构。重构的好处有很多,其中一点,就是对代码进行优化,提高软件的性能。下面我们就从几个方面来了解Android开发转载 2016-03-21 17:05:48 · 391 阅读 · 0 评论 -
Android开发优化之——对界面UI的优化(2)
在一个应用程序中,一般都会存在多个Activity,每个Activity对应着一个UI布局文件。一般来说,为了保持不同窗口之间的风格统一,在这些UI布局文件中,几乎肯定会用到很多相同的布局。如果我们在每个xml文件中都把相同的布局都重写一遍,一个是代码冗余,可读性很差;另一个是修改起来比较麻烦,对后期的修改和维护非常不利。所以,一般情况下,我们需要把相同布局的代码单独写成一个模块,然后在用到的时候转载 2016-03-21 17:58:49 · 383 阅读 · 0 评论 -
Android开发优化之——对界面UI的优化(3)
来自:http://blog.csdn.net/arui319/article/details/8561757本篇博文主要讨论一下复杂界面中常用的一种技术——界面延迟加载技术。 有时候,我们的页面中可能会包含一些布局,这些布局默认是隐藏的,当用户触发了一定的操作之后,隐藏的布局才会显示出来。比如,我们有一个Activity用来显示好友的列表,当用户点击Menu中转载 2016-03-21 18:05:47 · 497 阅读 · 0 评论 -
Android开发优化之——对界面UI的优化(1)
来自:http://blog.csdn.net/arui319/article/details/8549849在Android应用开发过程中,屏幕上控件的布局代码和程序的逻辑代码通常是分开的。界面的布局代码是放在一个独立的xml文件中的,这个文件里面是树型组织的,控制着页面的布局。通常,在这个页面中会用到很多控件,控件会用到很多的资源。Android系统本身有很多的资源,包括各转载 2016-03-21 19:12:53 · 573 阅读 · 0 评论 -
Android开发之Socket编程以及注意事项
注意:以下文字部分为转载部分,程序部分为原创。一,网络编程中两个主要的问题一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。而TCP层则提供面向应用的可靠(tcp)的或非可靠(UDP)的数据传输机制,这是网络编程的主要对象,转载 2016-03-23 10:54:03 · 18249 阅读 · 6 评论 -
深入理解 Looper、Handler、Message三者关系
1、首先Looper.prepare()在本线程中保存一个Looper实例,然后该实例中保存一个MessageQueue对象;因为Looper.prepare()在一个线程中只能调用一次,所以MessageQueue在一个线程中只会存在一个。2、Looper.loop()会让当前线程进入一个无限循环,不端从MessageQueue的实例中读取消息,然后回调msg.target.dispat转载 2016-02-27 10:47:54 · 1083 阅读 · 0 评论 -
解决Android中的SQLite数据库并发访问
来自:http://blog.csdn.net/rockcode_li/article/details/39024497并发的情况下,如何安全的访问sqlite数据库呢?假设你已经有一个自己的SQLiteOpenHelper。public class DatabaseHelper extends SQLiteOpenHelper { ... } 现在你想要转载 2016-03-23 21:15:32 · 4073 阅读 · 2 评论 -
解决Execution failed for task ':app:clean'. > Unable to delete directory问题
在使用Android Studio编译工程的时候,出现了如下错误:FAILURE: Build failed with an exception.* What went wrong:Execution failed for task ':watch:clean'.> Unable to delete directory: F:\Android\AndroidStudioWorkSpac原创 2016-04-26 12:05:33 · 32571 阅读 · 10 评论 -
Android代码规范
基本的命名法Java编程比较常见的有下面三种命名方式驼峰(Camel)命名法:又称小驼峰命名法,除首单词外,其余所有单词的第一个字母大写。帕斯卡(pascal)命名法:又称大驼峰命名法,所有单词的第一个字母大写下划线命名法:单词与单词间用下划线做间隔一般建议拿来做命名的单词要比较精悍短小,这样即使两三个单词一起拼装成一个命名,也不至于显得很冗长。当然有些单词我们也可以直接写成一些约转载 2016-06-16 15:29:00 · 523 阅读 · 0 评论 -
Android数据存储之——外部存储
在API Level 8之前,所有的文件都是建议放在Environment.getExternalStorageState()目录下的;从API Level 8开始,对于应用程序的私有文件应该放在Context.getExternalFilesDir目录下,非私有的(shared)的文件应该放在目录下Environment.getExternalStoragePublicDirectory原创 2016-03-06 11:24:23 · 782 阅读 · 0 评论 -
关于调用adapter.notifydatasetchanged()没有效果的问题
最近在使用ListView的时候,发现调用其Adapter的notifydatasetchanged()并没有刷新数据,代码如下:首先是初始化ListView:list = dbHelper.getalluser(); if (list.size() == 0) { Toast.makeText(MainActivity.this, "没有查询到任何数据", Toast.LENG原创 2016-06-05 21:48:48 · 2172 阅读 · 1 评论 -
启动远程service的两种方式:显示和隐式
1、显式启动Service端:需要声明android:exported="true",这样别的APP才能访问。 android:exported= "true">客户端:需要知道Sercvice的名字以及其Application所在的包名。public static final String NAME_GESTURE_DETEC原创 2016-06-19 10:48:53 · 11137 阅读 · 0 评论 -
Android之MVC模式
来自:http://www.cnblogs.com/devinzhang/archive/2012/01/26/2329869.html MVC (Model-View-Controller):M是指逻辑模型,V是指视图模型,C则是控制器。一个逻辑模型可以对于多种视图模型,比如一批统计数据你可以分别用柱状图、饼图来表示。一种视图模型也可以对于多种逻辑模型。使用MVC的目的是将转载 2016-03-19 14:44:51 · 472 阅读 · 0 评论 -
Intent的常用Flag参数
FLAG_ACTIVITY_CLEAR_TOP:例如现在的栈情况为:A B C D 。D此时通过intent跳转到B,如果这个intent添加FLAG_ACTIVITY_CLEAR_TOP 标记,则栈情况变为:A B。如果没有添加这个标记,则栈情况将会变成:A B C D B。也就是说,如果添加了FLAG_ACTIVITY_CLEAR_TOP标记,并且目标Activity在栈中已经存在,则将会原创 2016-03-18 16:42:01 · 335 阅读 · 0 评论 -
Activity四种启动模式
来源:http://www.cnblogs.com/meizixiong/archive/2013/07/03/3170591.html一、启动模式介绍 启动模式简单地说就是Activity启动时的策略,在AndroidManifest.xml中的标签的android:launchMode属性设置; 启动模式有4种,分别为standard、singleTop、singl转载 2016-03-18 16:25:22 · 406 阅读 · 0 评论 -
百度的Android招聘面试题
一般简单题1. Android dvm的进程和Linux的进程,应用程序的进程是否为同一个概念?DVM指dalivk的虚拟机。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。而每一个DVM都是在Linux 中的一个进程,所以说可以认为是同一个概念。2. SIM卡的 EF 文件有何作用?sim卡的文件系统有自己规范,主要是为转载 2015-09-29 09:01:14 · 868 阅读 · 0 评论 -
Android如何控制系统的输入法显示和隐藏
当点击某个View对输入法进行操作:显示或者隐藏 // toogle输入法 public static void hidenOrShowInputMethod(View view,Context context) { InputMethodManager inputMethodManager = (InputMethodManager) context.getApplicati原创 2015-10-24 17:18:53 · 2889 阅读 · 0 评论 -
Android点击EditText文本框之外任何地方隐藏键盘的解决办法
1,实现方法一:通过给当前界面布局文件的父layout设置点击事件(相当于给整个Activity设置点击事件),在事件里进行键盘隐藏: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/traceroute_rootview" android转载 2015-10-24 17:40:03 · 469 阅读 · 0 评论 -
Android开发之Eclipse中使用git简单步骤
1、分享本地工程到git远程仓库1、首先在磁盘上新建一个目录,比如git,专门用来放置需要提交到远程git仓库的Android工程。2、然后新建一个Android工程,放置到我们刚刚新建的目录下面。3、工程建好之后,右击Team->share project,在工程目录中新建一个本地git仓库。4、然后就是本地提交commit。5、提交到远程git仓库,team->remote原创 2015-11-03 10:39:32 · 1160 阅读 · 0 评论 -
Android开发之PoupWindow详解
大家都用过微信的语音,当我们按下按钮的时候开始录音,同时弹出一个显示音量的对话框,如下所示:并且当这个对话框弹出的时候,下面的activity不变暗!一看到这个可能我们第一反应就是自定义布局,使用DialogFragment来实现。但是我们知道默认的AlertDialog或者DialogFragment弹出的时候都会导致其下的Activity失去焦点,变暗,且我一时没找到怎么让屏幕不变暗的方法!原创 2015-11-02 23:24:19 · 2115 阅读 · 0 评论 -
关于android官方提供的BluetoothChat源码连接不上蓝牙适配器的问题
当我使用官方提供的BluetoothChat源码进行蓝牙开发的时候,我发现连接不上我自己的蓝牙适配器HC-05!然后,首先检查HC-05是否设置为了从模式,再检查程序是不是哪里有问题,始终不得其解!偶然,当我在查看 tmp = device.createRfcommSocketToServiceRecord(MY_UUID_SECURE);这个API的时候,在弹出的API释义当中的最后面出原创 2015-12-14 08:58:19 · 2231 阅读 · 0 评论 -
关于ActionBar的几个小细节的解决方案
1、当我们点击我们手机上的菜单键时,Android默认是在底部弹出菜单项!但是如果我们还是想在ActionBar的溢出菜单弹出菜单项的话,就可以使用下面定义的方法。private void forceShowActionBarOverflowMenu() { try { ViewConfiguration conf原创 2015-12-14 09:01:37 · 384 阅读 · 0 评论 -
自定义进度条ProgressBar的实现
官方提供的进度条样式比较丑陋,下面我们进行自定义样式。我们以粗水平长条进度条@android:style/Widget.ProgressBar.Horizontal为例来进行说明。首先我们超链接查看@android:style/Widget.ProgressBar.Horizontal的内容如下所示: false @android:drawable/pro原创 2015-12-14 09:32:49 · 1672 阅读 · 0 评论 -
关于Slidingmenu的若干问题
Slidingmenu库下载地址:https://github.com/jfeinstein10/SlidingMenu 在使用Slidingmenu的时候发现,当Activity继承自SlidingFragmentActivity的时候,不能使用getSupportActionBar()!查看了SlidingFragmentActivity的源代码发现它是继承自FragmentA原创 2015-12-14 09:15:27 · 402 阅读 · 0 评论 -
关于APP开机自启动的简单实现
有的时候需要在手机开机的时候就启动APP,怎么实现呢? 当开机完成之后,系统会发出一个android.intent.action.BOOT_COMPLETED广播,所以,我们只需要响应这个广播就可以了! 首先在AndroidManifest文件中注册一个receiver,如下所示:原创 2015-12-14 09:22:18 · 9775 阅读 · 0 评论 -
Should you use a service or a thread?
Thread和Service的使用场景区别(来自官方文档) A service is simply a component that can run in the background even when the user is not interacting with your application. Thus, you should create a service原创 2015-12-14 09:43:26 · 445 阅读 · 0 评论 -
HandlerThread的学习心得
Android中Handler的使用,一般都在UI主线程中执行,因此在Handler接收消息后,处理消息时,不能做一些很耗时的操作。为了解决这个问题,Android中专门提供了HandlerThread类,来解决该类问题。HandlerThread类是一个线程专门处理Hanlder的消息,依次从Handler的队列中获取信息,逐个进行处理,保证安全,不会出现混乱引发的异常。Hand原创 2015-12-14 09:57:09 · 467 阅读 · 0 评论 -
Eclipse背景颜色设置
Eclipse背景颜色修改操作界面默认颜色为白色。对于我们长期使用电脑编程的人来说,白色很刺激我们的眼睛,所以我经常会改变workspace的背景色,使眼睛舒服一些。设置方法如下: 1、打开window->Preference,弹出Preference面板 2、展开General标签,选中Editors选项,展开。 3、选中 Test Editors,右边出现Test转载 2015-11-29 14:53:05 · 6589 阅读 · 0 评论 -
Android开发:一个SharedPreference的工具类,方便保存和读取数据
我们平常保存一些数据,都会用到SharedPreferences,但是对它操作会有点麻烦,所以这里写了一个工具类SharedPreferencesHelper,代码如下,采用单例模式进行封装:public class SharedPreferencesHelper { private static final String FILE_NAME = "im_simple_data"; pri原创 2015-11-29 16:16:37 · 6482 阅读 · 0 评论 -
AsyncTask使用在哪些场景?它的缺陷是什么?如何解决?
AsyncTask 运用的场景就是我们需要进行一些耗时的操作,耗时操作完成后更新主线程,或者在操作过程中对主线程的UI进行更新。AsycnTask是一个抽象类,有三个泛型参数,分别对应启动任务执行的输入参数类型,后台任务完成的进度值类型,执行结果类型。我们需要重载四个方法,onPreExecute()执行初始化工作;doInBackground(Params...)用于耗时操作;可以调用p转载 2016-03-04 20:10:36 · 2664 阅读 · 0 评论 -
设计模式在Android中的应用
详情:http://www.cnblogs.com/qianxudetianxia/tag/Android设计模式系列/一直不清楚在Android中使用了哪些设计模式,今天看到了以为大神的博客,受益匪浅,特此记录!组合模式将对象View和ViewGroup组合成树形结构以表示"部分-整体"的层次结构(View可以做为ViewGroup的一部分)。组合模式使得用户对单个对转载 2016-03-11 23:12:40 · 950 阅读 · 0 评论