Android基础
文章平均质量分 69
科克蛙
了吃好最的么什子包
展开
-
Cursor query
public Cursor query (boolean distinct, String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit) 其中各种参数意思如下(如果其中某个参数不设置,转载 2016-07-11 10:17:11 · 516 阅读 · 0 评论 -
主要看设置缓存算法
本文主要介绍一个支持自动向前或向后获取新数据的缓存的使用及功能。Android图片内存缓存可见ImageCache。 主要特性:(1).使用简单 (2).可自动预取新数据 (3).可选择多种缓存算法(包括FIFO、LIFO、LRU、MRU、LFU、MFU等15种)或自定义缓存算法 (4).省流量性能佳(有且仅有一个线程获取数据) (5).支持不同类型网络处理 (6)缓存可序列化到转载 2016-07-18 21:58:12 · 729 阅读 · 0 评论 -
ThreadPool四种线程池
线程池使用对象的概念,目的是减小对象的创建和注销的开支,减轻JVM的压力。为什么使用线程池呢?因为newTread有很多弊端。1.新建对象性能差;2.线程之间缺乏统一管理,可能无限创建线程,相互之间竞争会带来过多的系统损耗, 到最后司机或者oom;3.缺乏更多的功能,例如定时执行,定期执行,线程中断,可以基本理解为线程池扩展许多新功能;Java可以通过Execut原创 2016-07-18 19:34:02 · 15857 阅读 · 0 评论 -
SQLite简单创建
数据库---数据的仓库首先介绍一个名词:数据持久化。数据持久化本质上是内存数据写入到文件中,下次运行的时候可以直接进行读取,从而达到数据的长时间储存。数据库就是一套软件,实现可对数据的存储,是通过一些指令(SQL语句)的方式来进行的;现在主流的数据库是关系数据库,可以简单的理解为表格;’数据库按处理的数据量的大小分三类:1.大型数据库:Oracle DB22.中型原创 2016-07-07 22:40:22 · 370 阅读 · 0 评论 -
AsynTack使用简介
AsynTask异步任务就是说在UI线程之外再异步的完成一些任务,例如:上传,下载等耗时性的操作。AsyncTask就相当于安卓给我们提供了一个多线程的框架,器介于Thread和Handle之间,使用时继承AsyncTask,并实现特定的方法即可,无需过多的关心线程问题。使用过程:步骤一:在布局文件中添加相应的控件步骤二:声明属性并进行初始化public class M原创 2016-07-06 22:20:19 · 330 阅读 · 0 评论 -
BaseAdapter使用简介
步骤一:创建一个布局文件,对Item控件进行布局<ListView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/listView">步骤二:在对应的Activity中添加ListView控件private ListV原创 2016-07-06 20:39:35 · 500 阅读 · 0 评论 -
SimpleAdapter
http://schemas.android.com/apk/res/android" androidrientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"><ImageView android:id="@+id/image" andro原创 2016-07-05 23:33:50 · 238 阅读 · 0 评论 -
TabLayout
步骤一:将TabLayout和VIewPager添加到布局文件里步骤二:创建适配器,进行数据和界面之间的适配步骤三:将数据和界面进行关联原创 2016-07-05 08:50:55 · 303 阅读 · 0 评论 -
uses-permission权限列表
Android.permission.ACCESS_CHECKIN_PROPERTIES允许读写访问”properties”表在checkin数据库中,改值可以修改上传android.permission.ACCESS_COARSE_LOCATION允许一个程序访问CellID或WiFi来获取粗略的位置android.permission.ACCESS_FINE_LOCATION转载 2016-07-08 17:31:36 · 320 阅读 · 0 评论 -
SharedPreferences缓存
数据持久化就是讲某些数据进行存储,可以实现在某些时机去除想要的数据;Android中有四种实现数据持久化的方式分别是1.文件(IO流)读写文件,例如保存网络图片 2.SOLite数据库嵌入式数据库,例如保存网络数据 3.SharedPreferences,如APP的配置信息 4.ContentProvider原创 2016-07-19 21:11:54 · 803 阅读 · 0 评论 -
SQLiteOpenHelper以及ContentProvite
布局如上。我们要做的效果是如按钮所示。首先,要创建一个类继承制SQLiteOpenHelper,生成两个方法分别是创建数据库和更新数据库,和一个构造方法。public class MyDataHelper extends SQLiteOpenHelper{// 构造方法,这个方法必须要有 public MyDataHelper(Context context, St原创 2016-07-09 17:08:39 · 509 阅读 · 0 评论 -
ViewPager实现页卡方法--TabLayout
效果图: 添加依赖包: compile 'com.android.support:appcompat-v7:24.0.0'布局文件:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:转载 2016-07-29 21:38:30 · 409 阅读 · 0 评论 -
Android控件,App Widget 之 RemoteViews
Android 之窗口小部件高级篇--App Widget 之 RemoteViews 在之前的一篇博文( Android 之窗口小部件详解--App Widge t)中,已经介绍了App Widget的基本用法和简单实例。这篇主要讲解 App Widget 的高级内容,即通过 RemoteViews 去管理Widget的中GridView、ListView、StackView等内容转载 2016-07-21 21:09:25 · 543 阅读 · 0 评论 -
网络解析多接口
Fragment_Home MyPagerAdapter mypageradapter; ViewPager viewpager; List<CommendClass> list; View view, view1, view2, view3, view4, view5; TextView home_tv1, home_tv2, home_tv3, home_tv4,原创 2016-08-18 22:00:38 · 233 阅读 · 0 评论 -
setConnectTimeout和setReadTimeout的问题
1、问题描述 这几天测试重构后的下载框架,发现在下载过程中如果网络中断或网络较差,个别应用的下载就会阻塞卡住,一直卡在 “正在下载 xx%”。2、问题排查和定位 思考:网络差不应该报网络异常的错误或者直接抛timeout异常吗?所以马上去检查Http请求的地方:发现在DownloadThread中使用HttpURLConnection进行网络请求时只是设置了connectTimeout,这样在建转载 2016-08-15 09:40:54 · 2876 阅读 · 0 评论 -
网络请求,JSON解析
MainActivitypackage com.baozilichao.test2;import android.database.Cursor;import android.os.AsyncTask;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log原创 2016-08-13 23:24:07 · 1135 阅读 · 0 评论 -
引导页效果
package com.baozilichao.superone.activity;import android.app.Activity;import android.content.Intent;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Matr原创 2016-08-11 23:20:01 · 714 阅读 · 0 评论 -
ViewFlipper自动滑动播放
// 声明ViewFlipper ViewFlipper viewflipper;//初始化 viewflipper= (ViewFlipper) view.findViewById(R.id.viewflipper); for (int i = 0; i <7; i++) { ImageView iv=new ImageView(getConte转载 2016-08-07 21:58:46 · 1437 阅读 · 6 评论 -
Dialog提示对话框
提示对话框、这里主要说四个:一,常规对话框,首先要先创建对话提示框AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);给对话框的各个属性对象赋值builder.setTitle("表头信息").setMessage("提示信息").setIcon(R.drawable.***表头图原创 2016-07-16 22:25:46 · 452 阅读 · 0 评论 -
Android系统发送短信
对于一个App,会经常出现访问短信,电话的功能。其实就是调用了系统已经封装好的电话和短信功能,调用方法如下;首先,去AndroidManifest中设置权限,包括: (电话) (短信)然后声明控件并就是添加响应事件;在onCreate中,要显示的提醒用户是否允许ADK使用短信发送功能,ActivityCompat.requestP原创 2016-07-16 21:41:56 · 414 阅读 · 0 评论 -
Android PopupWindow的使用和分析
本质区别为:AlertDialog是非阻塞式对话框:AlertDialog弹出时,后台还可以做事情;而PopupWindow是阻塞式对话框:PopupWindow弹出时,程序会等待,在PopupWindow退出前,程序一直等待,只有当我们调用了dismiss方法的后,PopupWindow退出,程序才会向下执行。这两种区别的表现是:AlertDialog弹出时,背景是黑色的,但是当我们点击背景,A转载 2016-07-16 17:42:43 · 255 阅读 · 0 评论 -
contacts(通讯录)数据库
Android通讯录有关通讯录的资料都放在contacts2.db中这个数据库放在/data/data/com.android.providers.contacts/databases/contacts.db通话记录表calls字段名称说明_id索引Key,自增长number通话电话号码date拨打该电话号码的开始时间(以1970-01-01 00:00:0转载 2016-07-11 14:37:25 · 647 阅读 · 0 评论 -
Android的Canvas绘制正弦函数图像
package com.baozilichao.test009;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.support.v7.app.AppCompatActivity;import android.os.Bundle转载 2016-07-11 18:32:33 · 1701 阅读 · 0 评论 -
自定义组件一
Paint类表示画笔,用来描述图形的颜色和风格,如线宽、颜色、透明度和填充效果等信息。 使用Paint类时,需要先创建该类的对象,这可以通过该类提供的构造方法来实现,通常情况下,只需要使用Paint()方法来创建一个使用默认设置Paint对象。使用Paint可以基本分为三步:1.通过构造方法创建出一个Paint的实例出来;2.通过各类set方法对该Paint对象进行原创 2016-07-11 21:53:22 · 319 阅读 · 0 评论 -
ContentProvider获取联系人信息
调用系统提供的ContentProvider系统在写联系人这个APP的时候,就已经提供好了一个联系人的ContentProvider。包括1.raw_contacts表Contact_id存放联系人的id该表保存了所有创建过的手机测联系人,每个联系人占一行,表里有一列标识该联系人是否被删除,该表保存了两个ID:RawContactID和ContactID,从而将contacts转载 2016-07-11 13:40:31 · 1479 阅读 · 0 评论 -
Service的理解和使用
相信大多数朋友对Service这个名词都不会陌生,没错,一个老练的Android程序员如果连Service都没听说过的话,那确实也太逊了。Service作为Android四大组件之一,在每一个应用程序中都扮演着非常重要的角色。它主要用于在后台处理一些耗时的逻辑,或者去执行某些需要长期运行的任务。必要的时候我们甚至可以在程序退出的情况下,让Service在后台继续保持运行状态。不过,虽然Se转载 2016-07-22 22:03:55 · 435 阅读 · 0 评论 -
include标签布局以及自定义标题
在Android的性能优化是,可以使用抽象布局标签(include,ViewStub,merge),去除不必要的嵌套和View节点,减少不必要的inflate以及其他Layout。include标签常用于将布局中的公共部分提取出来供其他layout公用,以实现布局模块化,这在布局编写方便提供了便利。示例代码:activity_main.xmlandroid:layout_wid原创 2016-07-12 19:41:46 · 2979 阅读 · 0 评论 -
RecyclerView实现自定义布局.一
RecyclerView这东西可厉害了,不仅可以实现ListView和ViewPager的大部分功能,而且使用起来更容易,更自定义,视觉效果也更多样化,今儿主要说三个有关的标签:LinearLayoutManager(线性排布,类似于ListAdapter);GridLayoutManager(可以将多个layout放在一个布局中);StaggeredGridLayoutManag原创 2016-07-13 21:59:55 · 3918 阅读 · 0 评论 -
深入理解Android之Gradle
Gradle是当前非常“劲爆”得构建工具。本篇文章就是专为讲解Gradle而来。介绍Gradle之前,先说点题外话。一、题外话说实话,我在大法工作的时候,就见过Gradle。但是当时我一直不知道这是什么东西。而且大法工具组的工程师还将其和Android Studio大法版一起推送,偶一看就更没兴趣了。为什么那个时候如此不待见Gradle呢?因为我此前一直是做ROM开发。在这个层面上,我们用转载 2016-07-25 20:04:24 · 575 阅读 · 0 评论 -
Fresco简单使用
参考资料:http://fresco-cn.org/docs/getting-started.html#_ http://www.wfuyu.com/technology/23636.htmlfresco是facebook推出的一款强大的android图片处理库, github地址:https://github.com/facebook/fresco 里面有官方的使用配置文档,而且是中转载 2016-07-25 20:17:46 · 238 阅读 · 0 评论 -
Recycler自定义组件二
这是要做的效果图同样需要RecyclerView,所以说这玩意好强大。由图看出,需要两个layout分别左对齐右对齐,还需要个LinearLayoutManager就可以简单实现,。步骤嘛如下:1.首先,两个布局分别和两边对齐,这个看个人喜好了,想弄多难看就弄多难看,反正现在没人看;2.别忘了导个RecyclerVIew包,没她你嘛事都做不了,在主布局放入这个RecyclerV原创 2016-07-14 22:05:20 · 302 阅读 · 0 评论 -
Android动画Animation
动画Animation动画有两种分类:1.补间动画:对View控件进行变换(平移,缩放,旋转,透明度)来产生动画效果。2.帧动画:由多帧图片,通过连续变化产生动画效果。一.帧动画 Frame帧动画有两种实现方式:一种是静态实现,一种是动态实现静态通过建一个xml,调用,利用item将一帧帧的画面逐个添加,xmlns:android="http:/原创 2016-07-26 21:59:00 · 305 阅读 · 0 评论 -
Animation动画
帧动画(Frame) 使用多张连续的图片逐帧播放出来 1.静态实现(通过xml组员文件) a.》res/drawable在该文件夹中创建动画的xml资源文件 b.》根节点 每一帧的节点 item节点中的两个属性原创 2016-07-27 09:45:15 · 602 阅读 · 0 评论 -
几种算法
一,菲波那切数列;这个由兔子繁殖引发的数字排列问题,原题目是说有一对兔子自出生第3个月起每个月都生一对兔子,小兔子涨到3个月后又每个月生一对兔子,排除兔子有死亡的限制,问每个月的兔子总数;现指一个数列:0,1,1,2,3,5,,8,13,21,34,55.........由数列分析发现,从第三个数开始,每个数的值都是它前两位的数之和,进而我们可以用公式表示:f1,f2,f3=f1+原创 2016-07-16 12:30:23 · 376 阅读 · 0 评论 -
android 6.0权限全面详细分析和解决方案
一、Marshmallow版本权限简介android的权限系统一直是首要的安全概念,因为这些权限只在安装的时候被询问一次。一旦安装了,app可以在用户毫不知晓的情况下访问权限内的所有东西,而且一般用户安装的时候很少会去仔细看权限列表,更不会去深入了解这些权限可能带来的相关危害。所以在android 6.0 Marshmallow版本之后,系统不会在软件安装的时候就赋予该app所有其申请的权转载 2016-07-16 14:23:41 · 368 阅读 · 0 评论 -
Android M(6.0) 权限爬坑之旅
有一篇全面介绍Android M 运行时权限文章写的非常全面(翻译的):Android M 新的运行时权限开发者需要知道的一切,但是实施过程中还是遇到一些坑。坑一:用Android5.0编译的apk,在Android6.0上运行完全没有问题。 在Android6.0以上才需要在运行时请求权限,在旧Android版本上保留原有逻辑,安装时授予权限。 用旧版本sdk编译的apk,都使用转载 2016-07-16 14:39:00 · 429 阅读 · 1 评论 -
Android Dialog的多种对话框整理案例
package com.android.dialog;import java.util.ArrayList;import java.util.Calendar;import java.util.Iterator;import android.annotation.SuppressLint;import android.app.Activity;import andr转载 2016-07-15 19:52:38 · 868 阅读 · 0 评论 -
Android中pendingIntent的深入理解
pendingIntent字面意义:等待的,未决定的Intent。 pendingIntent对象,使用方法类的静态方法 : getActivity(Context, int, Intent, int)------->跳转到一个activity组件、 getBroadcast(Context, int, Intent, int)------>打开一个广播组件转载 2016-07-16 16:54:18 · 420 阅读 · 0 评论 -
首次进入App
package com.baozilichao.superone.activity;import android.app.Activity;import android.content.Intent;import android.content.SharedPreferences;import android.os.Handler;import android.os.Message;imp原创 2016-08-11 23:20:36 · 663 阅读 · 0 评论