资讯专栏INFORMATION COLUMN

Android基础知识总结

darcrand / 624人阅读

摘要:使用来标识数据集,这里的是唯一的,以作为前缀,表示该数据由来管理。帧布局为每一个加入其中的组件创建一个空白区域,每个子组件占据一帧,这些帧根据属性执行自动对齐。这可能是由于图片过大造成的。

Android四大组件

1、Activity

a、Activity是指与用户交互的界面。

b、一个Activity通常就是一个多带带的屏幕(窗口)。

c、Activity之间通过Intent传递数据。

2、service

a、service在后台运行,没有图形界面。

b、service的启动方式有两种:startService,是由其它组件调用startService方式启动的,当服务处于started状态时,与其它组件的生命周期没有联系了,即使其它组件销毁了服务依然处在运行的状态,因此,在服务完成任务后需要调用stopService()或者sotpself()方法停止。 bindService,调用者与服务绑定在一起,一旦调用者销毁,服务也跟着销毁。

c、service需要在AndroidManifest中声明,使用

3、BroadcastReceiver

a、使用它对你应用外部的事件经行过滤,只对感兴趣的外部事件(如当电话呼入、数据网络可用时)接收时做出响应。

b、广播接收器也没有用户界面。它们可以启动一个activity、serice或NotificationManager来响应它们收到的信息.

c、广播接收者的注册方式有两种,一种是静态注册,在AndroidManifast中使用

 

   

   

另一种是动态注册,

MyBroadcaetReceiver broad=new MyBroadcastReceiver();

IntentFilter intentfilter=new IntentFilter();

intentfilter.addAction(ACTION);

registerReceiver(broad);

4、ContentProvider

a、android平台提供了contentProvider使一个应用程序的指定数据集提供给其它应用程序。其它应用程序可以用ContentResolver类从该内容中获取数据。

b、只有需要在多个应用程序之间共享的数据时才需要ContentProvider.

c、ContentProvider用于保存或获取数据,并使其对所有应用程序可见。这是不同应用程序之间数据共享的唯一方式。

d、ContentProvider使用URL来标识数据集,这里的URL是唯一的,以content://作为前缀,表示该数据由ContentProvider来管理。

Android中常用的布局

1.LinearLayout线性布局

LinearLayout容器中的组件一个挨一个排列,通过Android:orientation属性控制各个组件是横向还是纵向排列。

2.FrameLayout帧布局

FrameLayout直接继承ViewGroup组件。帧布局为每一个加入其中的组件创建一个空白区域,每个子组件占据一帧,这些帧根据gravity属性执行自动对齐。

3、RelativeLayout相对布局

为了控制该布局内容的各个组件分布,RelativeLayout提供的一个内部类RelativeLayout.LayoutParams。

4、TableLayout表格布局

TableLayout继承自LinearLayout,本质上仍然是线性布局管理器.表格布局采用行、列的形式来管理UI组件,并不需要明确的声明包含多少行,多少列,而是通过添加TableRow、其它组件来控制表格的行数和列数。每向TableLayout中添加一个TableRow就代表一行,每向TableRow中添加一个组件就代表一列。

5、Android4.0新增的网格布局GridLayout

GridLayout是Android4.0增加的网格布局控件,与TableLayout有些相似,它把整个容器划分为rows*columns个网格,每个网格可以放置一个组件。比TableLayout性能好。

6、AbsoluteLayout绝对布局

AbsoluteLayout是由开发人员通过X、Y坐标来控制组件的位置。每个组件都可以指定layout_x;layout_y;

JSON/XML数据解析

XML

 通过InputStream获取流的方式解析

InputStream is=connent.getInputStream();

XmlPullParser pullparser=Xml.newPullParser();

pullparser.setInput(is,"utf-8");

int type=pullparser.getEventType();

while(type!=XmlPullParser.END_DOCUMENT){

          swith(type){

               case XmlPullParser.START_TAG:

                     String name=pullparser.getName();

                    if("student".equals(name)){

                          String  str= pullparser.getAttrbuteName(0);

                             }else if("sname".equals(name)){

                             String sname=pullparser.nextText();

                              }

               break;     

            case XmlPullParser.END_TAG:

                     break;           

}

       type=pullparser.next();

}

is.close();

JSON解析

InputStream is=connection.getInputStream();

int len=0;

byte[] buf= new byte[1024];

StringBuffer sb=new StringBuffer(); 

while ((len=is.read(buf))!=-1){ 

                  String s=new String(buf,0,len);

                  sb.append(s);

}

BigObject bigObject=JSON.parseObject(sb.toString(),BigObject.class); 

int count=bigObject.getCount();

Log.i("test",count+"");

 List stuList=bigObject.getStudents(); 

         for (Student sss : stuList) {

                 Log.i("test",sss.getSname()+" "+sss.getSsex());

          }

    Android的数据存储方式   

1、SharedPreferences方式     

   SharedPreferences用来存储一些简单的数据,以键值对的方式存储数据。       

2、数据库SQLite

     SQLite是Android所带的一个标准的数据库,支持SQL语句,是一个轻量级的嵌入式数据库。

3、网络存储

  以POST请求方式把数据发送到某一个地址上

4、文件存储

    在Android中,提供了openFileInput和openFileOutput方法读取设备上的文件,

             FileOutputStream fos=openFileOutput("fileName",Contex.MODE_PRIVATE);

             FileInputStream   fls=openFileInput("fileName");

当FileOutputStream指定的文件不存在时,android会自动创建一个。默认情况下会覆盖原来的文件。

5、ContentProvider         

Android内部唯一一个可以实现数据共享的方法。一个ContentProvider类实现了一组标准的方法接口,从而能让其它应用读取。外部的程序通过ContentResolute接口访问ContentProivder提供的数据。

Handler机制、原理              

handler机制是更新UI界面的机制,可以接收消息也可以发送消息。

handler的原理:handler封装消息的发送;Looper 消息封装的载体,内部包含一个MessageQueue,所有的handler发送的消息都走向这个消息队列,Looper.looper方法,就是一个死循环,不断的从MessageQueue中读取消息,如果有消息就处理消息,没有就阻塞;handler负责发送消息,Looper负责接收消息,并把消息传回handler。MessageQueue存储消息的容器。

Android图片的二次采样以及缓存机制

1、二次采样

a、用BitmapFactory解码图片时,有时候会失败。这可能是由于图片过大造成的。因此,需要分配更少的内存空间来存储。BitmapFactory.decodeFile(imageFile);

b、BitmapFactory.Options.inSimpleSize 设置恰当的inSimpleSize可以使BitmapFactory分配更少的空间以消除错误。

c、BitmapFactory.Options提供inJustDecodeBounds属性,inJustDecodeBounds设置位true后,decodeFile就不会分配空间,但可以计算出原始图片的长度和宽度。即可得到一个恰当的inSampleSize。缓存机制,读取:内存--强引用--软引用--文件--网络。详见https://www.cnblogs.com/RabbitLx/p/5792268.html;

Android自定义View的设计和使用

1、首先继承View类

2、必须实现其中的一个构造方法,一般都是实现两个;

3、重写onDraw(canvas)方法进行绘制,画线,画圆,画矩形等;

4、重写onMesure(),调整大小,默认是全屏;

5、如需样式在xml中布置,自定义属性 。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/2905.html

相关文章

  • Android 面试题合集 - 收藏集 - 掘金

    摘要:面试时,你被问到过协议吗掘金前言精通,熟练使用进行网路编程。面试的公司很多,其中有新浪微博面试题掘金年月新浪微博面试题及面试流程。 面试时,你被问到过 TCP/IP 协议吗? - 掘金前言: 精通 TCP/IP,熟练使用 Socket 进行网路编程。 看到这句话,有没有感到很熟悉呀?相信很多人在投递简历的时候都看到过这条要求,很多人会觉得我们在实际开发中一般用不到这些知识,所以对这些东...

    Jingbin_ 评论0 收藏0
  • android知识总结 - 收藏集 - 掘金

    摘要:中简单搞定接口访问,以及简析掘金最近总结的一些经验,对于或中使用接口的一些心得。这里,本文将数据结构之学习总结掘金前言前面介绍了的数据结构,今天抽空学习总结一下另一种数据结构。浅析事件传递掘金中的事件传递主要涉及三个方法和。 Android 系统中,那些能大幅提高工作效率的 API 汇总(持续更新中...) - 掘金前言 条条大路通罗马。工作中,实现某个需求的方式往往不是唯一的,这些不...

    luodongseu 评论0 收藏0
  • android知识总结 - 收藏集 - 掘金

    摘要:中简单搞定接口访问,以及简析掘金最近总结的一些经验,对于或中使用接口的一些心得。这里,本文将数据结构之学习总结掘金前言前面介绍了的数据结构,今天抽空学习总结一下另一种数据结构。浅析事件传递掘金中的事件传递主要涉及三个方法和。 Android 系统中,那些能大幅提高工作效率的 API 汇总(持续更新中...) - 掘金前言 条条大路通罗马。工作中,实现某个需求的方式往往不是唯一的,这些不...

    wangbinke 评论0 收藏0
  • Android-Java面试

    摘要:好不容易在月号这天中午点左右接到了来自阿里的面试电话。这里会不断收集和更新基础相关的面试题,目前已收集题。面试重难点的和的打包过程多线程机制机制系统启动过程,启动过程等等扫清面试障碍最新面试经验分享,此为第一篇,开篇。 2016 年末,腾讯,百度,华为,搜狗和滴滴面试题汇总 2016 年未,腾讯,百度,华为,搜狗和滴滴面试题汇总 各大公司 Java 后端开发面试题总结 各大公司 Jav...

    changfeng1050 评论0 收藏0
  • Android-Java面试

    摘要:好不容易在月号这天中午点左右接到了来自阿里的面试电话。这里会不断收集和更新基础相关的面试题,目前已收集题。面试重难点的和的打包过程多线程机制机制系统启动过程,启动过程等等扫清面试障碍最新面试经验分享,此为第一篇,开篇。 2016 年末,腾讯,百度,华为,搜狗和滴滴面试题汇总 2016 年未,腾讯,百度,华为,搜狗和滴滴面试题汇总 各大公司 Java 后端开发面试题总结 各大公司 Jav...

    TalkingData 评论0 收藏0
  • Android经验分享 - 收藏集 - 掘金

    摘要:一次完整的请求与响应涉及了哪些知识掘金本文以请求和响应的过程来讲解涉及到的相关知识点。线程池详解掘金本篇文章讲述中的线程池问题,同样适用于中的线程池使用。一概述全方位了解,总有你不知道的一面掘金关于,是我们接触时频繁了解的东西。 一次完整的 HTTP 请求与响应涉及了哪些知识? - Android - 掘金本文以HTTP请求和响应的过程来讲解涉及到的相关知识点。 一、 HTTP请求和响...

    JiaXinYi 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<