// Path: saklib/src/main/java/com/wanjian/sak/utils/LoopQueue.java
// public class LoopQueue<T> {
//     private int size;
//     private LinkedList<T> queue;
//     private int cursor;
// 
//     public LoopQueue(int size) {
//         if (size < 1) {
//             throw new IllegalArgumentException();
//         }
//         this.size = size;
//         queue = new LinkedList<T>();
//     }
// 
//     public T take() {
//         if (has() == false) {
//             throw new IllegalStateException("end!");
//         }
//         return queue.get(cursor++);
//     }
// 
//     public void append(T t) {
//         if (queue.size() == size) {
//             queue.remove(0);
//             cursor--;
//             if (cursor < 0) {
//                 cursor = 0;
//             }
//         }
//         queue.add(t);
//     }
// 
//     public boolean has() {
//         return cursor != queue.size();
//     }
// 
//     public int maxSize() {
//         return size;
//     }
// 
//     public int size() {
//         return queue.size();
//     }
// 
//     public void reset() {
//         cursor = 0;
//     }
// 
//     public void clean() {
//         cursor = 0;
//         queue.clear();
//     }
// }


import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.view.View;
import com.wanjian.sak.utils.LoopQueue;
package com.wanjian.sak.support;



public class FPSView extends View {
    private Paint paint;
    private float density;
    private Path path = new Path();
// Path: saklib/src/main/java/com/wanjian/sak/utils/LoopQueue.java
// public class LoopQueue<T> {
//     private int size;
//     private LinkedList<T> queue;
//     private int cursor;
// 
//     public LoopQueue(int size) {
//         if (size < 1) {
//             throw new IllegalArgumentException();
//         }
//         this.size = size;
//         queue = new LinkedList<T>();
//     }
// 
//     public T take() {
//         if (has() == false) {
//             throw new IllegalStateException("end!");
//         }
//         return queue.get(cursor++);
//     }
// 
//     public void append(T t) {
//         if (queue.size() == size) {
//             queue.remove(0);
//             cursor--;
//             if (cursor < 0) {
//                 cursor = 0;
//             }
//         }
//         queue.add(t);
//     }
// 
//     public boolean has() {
//         return cursor != queue.size();
//     }
// 
//     public int maxSize() {
//         return size;
//     }
// 
//     public int size() {
//         return queue.size();
//     }
// 
//     public void reset() {
//         cursor = 0;
//     }
// 
//     public void clean() {
//         cursor = 0;
//         queue.clear();
//     }
// }


// Path: saklib/src/main/java/com/wanjian/sak/support/FPSView.java
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.view.View;
import com.wanjian.sak.utils.LoopQueue;

package com.wanjian.sak.support;



public class FPSView extends View {
    private Paint paint;
    private float density;
    private Path path = new Path();
    private LoopQueue<Long> data;