Android进阶学习

一、标签学习

# 资源文件xml

背景图片样式

        <inset>

        功能:用于设置背景图片边距等;

        参考:关于对android中的inset标签的简单解读_ECHO的博客-CSDN博客

        <shape>

        功能:简单图形绘制

        参考:安卓 Shape 标签(简单图形绘制)_三月的船长-CSDN博客_安卓shape

         <string-array>

        参考:Android 中string-array的用法_不积跬步,无以至千里-CSDN博客

        <vector>

        功能:用于定义矢量图标

        参考:Android vector标签_架构师的成长之路的博客-CSDN博客_android vector

        vector图片资源学习:https://blog.csdn.net/lhzjllh/article/details/78918770

        Android Studio创建vector位图:SVG和Vector的概念和如何在Android Studio中使用 - 简书

        矢量图标黑白反色:https://blog.csdn.net/actionwind/article/details/114400249

        如下就是一个表示“震动”的矢量图标

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:height="19dp"
    android:width="19dp"
    android:viewportHeight="24.0"
    android:viewportWidth="24.0"
    android:tint="?android:attr/textColorPrimary">

    <path
        android:fillColor="#FFFFFFFF"
        android:pathData="M1,9h2v6H1V9zM4,17h2V7H4V17zM21,9v6h2V9H21zM18,17h2V7h-2V17zM17,5.5v13c0,0.83 -0.67,1.5 -1.5,1.5h-7C7.67,20 7,19.33 7,18.5v-13C7,4.67 7.67,4 8.5,4h7C16.33,4 17,4.67 17,5.5zM15,6H9v12h6V6z"/>

</vector>

# Android学习相关博主

        参考:IT先森_CSDN博客

# 布局文件xml

<space>组件

        Android中Space标签于4.0添加的,继承自View主要用于占位,解释如下:

        Space is a lightweight View subclass that may be used to create gaps between components in general purpose layouts.

        Space是一个轻量级的View,一般用于分隔组件,布局或者在组件布局之间产生间隔

打开Space源码发现他的draw方法是空的,这...(相当可以);

        <space>的使用:

<!-- 如果需要占位但是不改变背景颜色,用Space取代View可以节约绘制时间,使用方法也很简单 -->
<android.support.v4.widget.Space
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1" />

 二、函数和类

        # 函数

        # 类

        Notification类

        Notification类的函数与参数详解

        Android开发之使用Notification.Builder_来来来,走一走-CSDN博客

        Notification.Builder()函数

        1. 函数的使用

        另一个网址:Notification.builder的简单使用 - 包清骏 - 博客园

NotificationManager notificationManager=(NotificationManager) getSystemService(NOTIFICATION_SERVICE);//获取系统服务
                Notification noti = new Notification.Builder(MainActivity.this)//实例化Builder
                 .setTicker("sdhsajdsaj")//在状态栏显示的标题
                 .setWhen(java.lang.System.currentTimeMillis())//设置显示的时间,默认就是currentTimeMillis()
                 .setContentTitle("New mail from ")//设置标题
                 .setContentText("111")//设置内容
                 .setSmallIcon(R.drawable.ic_launcher)//设置状态栏显示时的图标
                 .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher))//设置显示的大图标
                 .setContentIntent(PendingIntent.getActivity(MainActivity.this, 0, new Intent(Settings.ACTION_SETTINGS), 0))//设置点击时的意图
                 .setDeleteIntent(PendingIntent.getActivity(MainActivity.this, 0, new Intent(Settings.ACTION_SETTINGS), 0))//设置删除时的意图
                 .setFullScreenIntent(PendingIntent.getActivity(MainActivity.this, 0, new Intent(Settings.ACTION_SETTINGS), 0), true)//这个将直接打开意图,而不经过状态栏显示再按下
                 .setAutoCancel(false)//设置是否自动按下过后取消
                 .setOngoing(true)//设置为true时就不能删除  除非使用notificationManager.cancel(1)方法
                 .build();//创建Notification
               notificationManager.notify(1, noti);//管理器通知

三、AndroidManifest.xml

        # Intent和IntentFilter

         参考:Android的进阶学习(三)--Intent和IntentFilter - 简书

四、常见技术与机制

        # RemoteViews

        功能:用于跨进程跟新view,主要用在通知栏和小部件的更新

        参考:RemoteViews的作用和工作原理 - 简书

        # Callback回调机制

        参考:Android开发——回调(Callback) - 广金 - 博客园

        # 输出编译log到文件中

        参考:如何将编译Log输出到文件中_markvz的博客-CSDN博客_android编译log保存

        # pipeline管道

        大部分图形系统都可以比作工厂中的装配线(Assemble line)或者称为管道(Pipeline)。前一道的输出作为下道工序的输入。主CPU发出一个绘图指令,然后可能由硬件部件完成坐标变换,裁剪,添加颜色或是材质,最后在屏幕上显示出来。

        OpenGL ES 1.x 的工序是固定的,称为Fix-Function Pipeline,可以想象一个带有很多控制开关的机器,尽管加工的工序是固定的,但是可以通过打开或关闭开关来设置参数或者打开关闭某些功能。

OpenGL ES 2.0 允许提供编程来控制一些重要的工序,一些“繁琐”的工序比如栅格化等仍然是固定的。

下图显示了OpenGL ES 1.x 固定管道的结构图:

  • 管道“工序”大致可以分为 Transformation Stage 和 Rasterization Stage两大步。
  • OpenGL ES 支持的基本图形为 点Point, 线Line, 和三角形Triangle ,其它所有复制图形都是通过这几种基本几何图形组合而成。
  • 在发出绘图指令后,会对顶点(Vertices)数组进行指定的坐标变换或光照处理。
  • 顶点处理完成后,通过Rasterizer 来生成像素信息,称为”Fragments“ 。
  • 对于Fragment 在经过Texture Processing, Color Sum ,Fog 等处理并将最终处理结果存放在内存中(称为FrameBuffer)。
  • OpenGL 2.0可以通过编程来修改蓝色的步骤,称为Programmable Shader.

        以上管道中工序可以通过设置来打开或关闭某些功能(比如无需雾化Fog处理),并可以为某个工序设置参数,比如设置Vertext Array。

        比如如下代码:

        gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
        gl.glEnableClientState(GL10.GL_COLOR_ARRAY);

Android常见问题分析

Android造成ANR的常见问题分析

        参考:Android造成ANR的常见原因及示例分析 - 简书

五、Android系统开发

5.1 Android系统中用C语言来编写服务程序并且开机自启动运行服务

        参考:Android系统中用C语言来编写服务程序

Android修改了sdk里面的apk编译push进机器不生效问题 

        参考:Android修改了sdk里面的apk编译push进机器不生效问题-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值