- Android系统冻屏、黑屏问题的分析思路
sino lee
图形显示系统黑屏冻屏图层SurfaceFlinger
在Android系统开发过程中,偶尔会遇到显示异常的问题,如画面不再刷新,也就是冻屏,或者屏幕变黑,如果对图形显示系统不熟悉,遇到此类问题还是比较棘手的。如果在工作中遇到类似的问题,或者对图形显示系统感兴趣,可参考清华大学出版社出版的《Android图形显示系统》。图形显示系统是Android系统中最为核心、复杂的子系统,掌握它对于理解Android系统会有一个很大的提升,是一门进阶课题。下面主要
- Android 设置开机自启动
Marlon_IT
前段时间在做智能机器人等定制android系统开发的应用,因为机器人定制应用,需要在系统启动的时候就运行程序,不需要展示系统桌面,这里需要用到系统开机应用自启动,也就是常说的开机自启动。记录一下实现流程:1、权限引入在AndroidManifest.xml文件中配置监听启动权限2、创建监听启动完成的广播接收者新建一个监听广播接收者BootReceiverpublicclassBootReceive
- Android Media API 使用介绍
大飞飞鱼
WebRTC视频直播技术移动直播技术Android多媒体接口
从事多媒体开发的同学,在对Android系统开发时,Android系统已经给我们提供了对视音频的强大支持,本文介绍Android的几个和视音频相关的类,通过这几个类的组合使用,其实是能变换出许多视音频处理的相关功能,下面就对这几个类进行简单介绍。MediaMetadataRetriever:用来获取视频的相关信息,例如视频宽高、时长、旋转角度、码率等等。MediaExtractor::视音频分离器
- Android9、11 有线网络开关设置
峥嵘life
androidAndroid网络Android系统网络java开发语言
Android9有线网络开关设置一、定义数据1、Setting中定义数据2、定义默认值3、添加默认定义值Android9、11有线网络开关设置Android系统开发中发现,Android8以后有线网络开关没有api了,需要自己进行通路建造,或者自己实现开关控制。这部分修改在Framework的Java层进行修改即可完成。总体思路:1、有线网络开关控制是在EthernetService.java,但
- 开始写博客了
九州沐
从事android系统开发将近十来年了,踩坑无数;最近再三思索,不能枉费曾经的宝贵时光,决定逐步把自己积累的写入博客,以不负韶华。
- Android分布式编译学习(一)distcc实现分布式编译 —— Ubuntu12.04上部署distcc分布式编译
阿强的一亩三分地
Android
Android代码庞大,如果你是做android系统开发的会经常做fullbuild,代码编译时间一般4核CPU你得2个小时左右吧,一天你也就编译那么几次了得了,象我们用的40核的服务器一般做fullbuild18分钟左右,但是一般的工程师在自己的PC上如何编译的更快呢?网上查看了一些资料大部分都是用的distcc,distcc已经好几年的使用时间了,其主要是针对C,C++进行分布式编译的,而且效
- Android 预编译优化笔记
南国樗里疾
Android编译aospandroid
做Android系统开发,碰到了首次开机会很久的问题,这里针对改善措施做下记录。以下修改在6.0、8.0上做过验证,是OK的。1.打开预编译优化修改device/xxx/xxx/BoardConfigCommon.mk,添加WITH_DEXPREOPT:=trueDEX_PREOPT_DEFAULT:=nostripping去掉WITH_DEXPREOPT_BOOT_IMG_ONLY:=true#
- GPT-4惨遭削弱,偷懒摸鱼绝不多写一行代码,OpenAI已介入调查
QbitAl
西风发自凹非寺量子位|公众号QbitAIGPT-4再次遭网友“群攻”,原因是“懒”得离谱!有网友想在Android系统开发一个能够与OpenAIAPI实时交互的应用。于是把方法示例链接发给GPT-4,让它参考用Kotlin语言编写代码:没成想,和GPT-4一来二去沟通半天,GPT-4死活给不出一个能正常运行的完整代码。反而解释了一通“应该怎么做”。这让网友着实恼火,发推文吐槽“两周前能写好的代码,
- Android系统开发中遇到的蓝牙问题
Love~妍芯~燕~Love
系统开发android蓝牙
一、关于蓝牙的加载流程1,插入USB蓝牙后,bluedroid会读取设备型号,然后添加设备,同时会去打开蓝牙驱动2,蓝牙驱动的打开是调用的安卓标准的硬件设备流程,BluetoothManagerService会调用jni,jni会通过调用hardware下面的hw_get_module来获取蓝牙库文件,(system/lib/hw/)。3,hw_get_module在获取到后,会调用内核rtk_b
- 学得懂的 Android Framework 教程之 AOSP 急速上手
程序员阿豪
androidubuntulinux
在几个Android的技术交流群里经常看见做App开发的同学想要学习AndroidFramework进而转行Android系统开发。同时对于现有的书籍和网络博客,很多同学表示说看不懂学不会。这些书籍和博客都写得很好,但是主要面向的对象是具有linux系统开发经验的同学,App开发的同学学习起来就会有点吃力。学得懂的AndroidFramework教程聚焦成为让App开发同学学得懂,学得快,用得上的
- 初识Android系统
佳哥的技术分享
androidflutter
Android系统启动篇1,《android系统启动流程简介》2,《androidinit进程启动流程》3,《androidzygote进程启动流程》4,《AndroidSystemServer进程启动流程》5,《androidlauncher启动流程》6,《AndroidActivity启动过程详解》Android系统开发准备篇1,《Android源码下载和编译》2,《android11源码编译
- Android Framework实战开发-Socket让app实现shell命令行执行
千里马学框架
framework教程AndroidFrameworkandroid测试工具
csdn在线学习课程,课程咨询答疑和新课信息:QQ交流群:422901085进行课程讨论android跨进程通信实战视频课程(加群获取优惠)AndroidFramework实战开发-Socket让app实现shell命令行执行1、项目背景在android系统开发过程中,经常会有这样一个需求,就是可能需要让自己app执行一个shell脚本,但是目前app的一般方法都是getRumtimeexec方式
- Android Settings解析
八归少年
AOSPSettingsAndroid13SettingsLibAOSPPreference系统应用
AndroidSettings系列文章:AndroidSettings解析SettingsIntelligenceSettingsProvider首语Android设置应用是Android系统中一个非常重要的系统应用,它允许用户调整和设置系统的各种参数和功能(系统设置/自定义设置/控制应用权限/开发者选项/系统信息等),使用户获得更好的使用体验。同时它一般也是Android系统开发者了解深入的第一
- Flutter原理与美团的实践
weixin_33744854
移动开发ui嵌入式
2019独角兽企业重金招聘Python工程师标准>>>Flutter是Google开发的一套全新的跨平台、开源UI框架,支持iOS、Android系统开发,并且是未来新操作系统Fuchsia的默认开发套件。自从2017年5月发布第一个版本以来,目前Flutter已经发布了近60个版本,并且在2018年5月发布了第一个“ReadyforProductionApps”的Beta3版本,6月20日发布了
- Android系统层面限制应用开机自启动详解
佳哥的技术分享
android系统开发实战android
Android系统启动篇1,《android系统启动流程简介》2,《androidinit进程启动流程》3,《androidzygote进程启动流程》4,《AndroidSystemServer进程启动流程》5,《androidlauncher启动流程》6,《AndroidActivity启动过程详解》Android系统开发准备篇1,《Android源码下载和编译》2,《android11源码编译
- Android系统开发篇(一) —— 建立Android系统开发环境之VMware Workstation Pro
闹闹偶尔也会有脾气
Android系统开发androidubuntu
首先简单自我说明,从事多年的android应用开发,由于最近工作需要的原因,接触到源码去给设备定制系统。说实在的,这也是我从事android这么多年来第一次接触到系统开发,也算是新领域的小白吧。当然在android系统源码编译方面网上已经有很多优秀的文章,那为什么还要写这个系列呢,首先呢是我的一个自我总结和积累,其次呢也是想给后来者留点参考!接下来会把个人从0到1的一个学习和应用过程做成系列,把日
- Android13 通知栏和设置显示中添加副屏亮度条,调节副屏亮度
最乱纷飞的code
Android系统python开发语言
由于台式的Android设备,存在着两个屏幕显示的情况,故需要对Android系统开发一个可以调节副屏亮度的功能。提交副屏亮度调节的效果如下:涉及修改的文件如下:frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.javaframeworks/base/services/core/java/
- 迅为RK3568开发板保姆级3900页手册_415期视频_426G文档
mucheni
RK3568开发板RK3568
专为3568编写,16大分类,35个手册,满足学习和开发不同的需求。1、快速使用指南(必看)2、开发板启动和测试3、开发环境搭建4、开发板源码编译5、开发板镜像烧写6、Android系统开发7、Linux系统开发8、人工智能开发9、开发板外设接口开发10、开发板多屏显示开发11、开发板编解码开发12、开发板NVR系统开发13、开发板鸿蒙系统开发14、开发板硬件开发15、开发板原厂文档16、开发板学
- Android系统开发
dieling4341
Android系统开发视频课程和源码的对应关系、下载方法请看"源码下载方法xxxxx.TXT"视频和源码的对应关系:视频源码第1课第1节_编写第1个Android应用程序实现按钮和复选框APP_0001_LEDDemov1,v2,v3第1课第2节_让Android应用程序访问C库APP_0001_LEDDemov4,v5;HAL_0001_LEDv1,v2第1课第3节_Android程序操作LED
- 2022-03-26 Android开发 网络adb的使用教程(需要先接usb线版本)
Donald Linux
开发工具Androidandroid
一、一般情况下Android系统开发调试的时候,都是使用USB接口的adb工具进行调试,方便简单,除了能使用MicoUSB进行数据流传输以外,还能使用网络进行adb调试,本文就介绍adb网络调试。二、网络adb调试开启步骤1、把Android平板或者手机WiFi连接到跟PC机子同一个网段的网络,在设置-系统-关于-状态下面查看设备IP,然后查看PC是否可以ping通手机的设备的IP。2、先通过手机
- Android系统开发之Android蓝牙SPP通信客户端实现详解
爱桥代码的程序媛
Android技术androidjava开发语言
开启权限AndroidManifest中定义权限动态申请权限privatefinalintREQUEST_PERMISSION_CODE=1000;privatefuninitPermission(){valpermissionList:ArrayList=ArrayList()if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.S){//Androi
- Android异常日志快速定位分析小技巧
哆啦安全
Android系统定制android
推荐阅读Android异常日志快速定位分析小技巧Android挂载system文件夹读写权限Ubuntu系统开机报错(无法开机启动)Linux启动报错或无法启动的解决方法KernelSUAndroid上基于内核的Root方案基于WSL2环境的Aosp12源码开发环境搭建Android系统开发过程快速查找定位代码的方法Windows11使用WSL2下载Android12系统源码VisualStudi
- Framework精编内核解析——带你步入Android系统开发的殿堂
弦听你的梦
androidframework
Android系统一共分为4层:1、Application2、FrameWork层3、Library层+AndroidRuntime4、LinuxKernel其中Framework在第二层,他是把一些基本的的或者和设备打交道的服务抽象起来作Api给Application应用调用。这里是用Android中最底层的java代码。里面通过JNI调用c、c++(Library)来和设备打交道,最终调用到L
- android日志系统详解
佳哥的技术分享
android系统开发必备android
Android系统启动篇1,《android系统启动流程简介》2,《androidinit进程启动流程》3,《androidzygote进程启动流程》4,《AndroidSystemServer进程启动流程》5,《androidlauncher启动流程》6,《AndroidActivity启动过程详解》Android系统开发准备篇1,《Android源码下载和编译》2,《android11源码编译
- Android系统Handler详解
佳哥的技术分享
android
Android系统启动篇1,《android系统启动流程简介》2,《androidinit进程启动流程》3,《androidzygote进程启动流程》4,《AndroidSystemServer进程启动流程》5,《androidlauncher启动流程》6,《AndroidActivity启动过程详解》Android系统开发准备篇1,《Android源码下载和编译》2,《android11源码编译
- Android 系统开发工具
帅气的铅笔
androidframework学习笔记Frameworkandroid
Android系统开发工具1、SSH服务与TabbyTerminal1.1配置Ubuntussh服务2、Samba服务器搭建3、Idegen+AndroidStudio查看源码3.1修改android.iml文件(可选)4、AIdegen+AndroidStudio查看源码4.1准备工作4.2AndroidStudio配置4.2.1添加源码中的jdk和sdk4.2.2配置项目的sdk4.2.3在A
- Android系统开发-入门篇
江西省遂川县常驻深圳大使
android
参见:[视频教程]写给应用开发的AndroidFramework教程——玩转AOSP篇之Android系统开发工具推荐-掘金前置条件:android系统源码位于linux服务器,ssh地址假如为:
[email protected]本机为windows1、本机:下载VSCode,安装remote-ssh插件打开Git-Gui程序,执行“
[email protected]”,输入ssh密
- android系统开发知识框架和遇到的坑
迷途无归
总结android驱动android系统android5.1
1、android设备竖、横屏android5.1launcherpackages\apps\Launcher2packages\apps\Launcher3AndroidManifest.xmlandroid:screenOrientation="sensor"设置由传感器转屏另外经验证,【测试发现强制转换无效:android:screenOrientation="landscape"】是由于设
- Android Activity启动过程详解
佳哥的技术分享
android系统启动android
Android系统启动篇1,《android系统启动流程简介》2,《androidinit进程启动流程》3,《androidzygote进程启动流程》4,《AndroidSystemServer进程启动流程》5,《androidlauncher启动流程》6,《AndroidActivity启动过程详解》Android系统开发准备篇1,《Android源码下载和编译》2,《android11源码编译
- Android系统Handler详解
佳哥的技术分享
android
Android系统启动篇1,《android系统启动流程简介》2,《androidinit进程启动流程》3,《androidzygote进程启动流程》4,《AndroidSystemServer进程启动流程》5,《androidlauncher启动流程》6,《AndroidActivity启动过程详解》Android系统开发准备篇1,《Android源码下载和编译》2,《android11源码编译
- 继之前的线程循环加到窗口中运行
3213213333332132
javathreadJFrameJPanel
之前写了有关java线程的循环执行和结束,因为想制作成exe文件,想把执行的效果加到窗口上,所以就结合了JFrame和JPanel写了这个程序,这里直接贴出代码,在窗口上运行的效果下面有附图。
package thread;
import java.awt.Graphics;
import java.text.SimpleDateFormat;
import java.util
- linux 常用命令
BlueSkator
linux命令
1.grep
相信这个命令可以说是大家最常用的命令之一了。尤其是查询生产环境的日志,这个命令绝对是必不可少的。
但之前总是习惯于使用 (grep -n 关键字 文件名 )查出关键字以及该关键字所在的行数,然后再用 (sed -n '100,200p' 文件名),去查出该关键字之后的日志内容。
但其实还有更简便的办法,就是用(grep -B n、-A n、-C n 关键
- php heredoc原文档和nowdoc语法
dcj3sjt126com
PHPheredocnowdoc
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Current To-Do List</title>
</head>
<body>
<?
- overflow的属性
周华华
JavaScript
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml&q
- 《我所了解的Java》——总体目录
g21121
java
准备用一年左右时间写一个系列的文章《我所了解的Java》,目录及内容会不断完善及调整。
在编写相关内容时难免出现笔误、代码无法执行、名词理解错误等,请大家及时指出,我会第一时间更正。
&n
- [简单]docx4j常用方法小结
53873039oycg
docx
本代码基于docx4j-3.2.0,在office word 2007上测试通过。代码如下:
import java.io.File;
import java.io.FileInputStream;
import ja
- Spring配置学习
云端月影
spring配置
首先来看一个标准的Spring配置文件 applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi=&q
- Java新手入门的30个基本概念三
aijuans
java新手java 入门
17.Java中的每一个类都是从Object类扩展而来的。 18.object类中的equal和toString方法。 equal用于测试一个对象是否同另一个对象相等。 toString返回一个代表该对象的字符串,几乎每一个类都会重载该方法,以便返回当前状态的正确表示.(toString 方法是一个很重要的方法) 19.通用编程:任何类类型的所有值都可以同object类性的变量来代替。
- 《2008 IBM Rational 软件开发高峰论坛会议》小记
antonyup_2006
软件测试敏捷开发项目管理IBM活动
我一直想写些总结,用于交流和备忘,然都没提笔,今以一篇参加活动的感受小记开个头,呵呵!
其实参加《2008 IBM Rational 软件开发高峰论坛会议》是9月4号,那天刚好调休.但接着项目颇为忙,所以今天在中秋佳节的假期里整理了下.
参加这次活动是一个朋友给的一个邀请书,才知道有这样的一个活动,虽然现在项目暂时没用到IBM的解决方案,但觉的参与这样一个活动可以拓宽下视野和相关知识.
- PL/SQL的过程编程,异常,声明变量,PL/SQL块
百合不是茶
PL/SQL的过程编程异常PL/SQL块声明变量
PL/SQL;
过程;
符号;
变量;
PL/SQL块;
输出;
异常;
PL/SQL 是过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的编程语言PL/SQL 是对 SQL 的扩展,sql的执行时每次都要写操作
- Mockito(三)--完整功能介绍
bijian1013
持续集成mockito单元测试
mockito官网:http://code.google.com/p/mockito/,打开documentation可以看到官方最新的文档资料。
一.使用mockito验证行为
//首先要import Mockito
import static org.mockito.Mockito.*;
//mo
- 精通Oracle10编程SQL(8)使用复合数据类型
bijian1013
oracle数据库plsql
/*
*使用复合数据类型
*/
--PL/SQL记录
--定义PL/SQL记录
--自定义PL/SQL记录
DECLARE
TYPE emp_record_type IS RECORD(
name emp.ename%TYPE,
salary emp.sal%TYPE,
dno emp.deptno%TYPE
);
emp_
- 【Linux常用命令一】grep命令
bit1129
Linux常用命令
grep命令格式
grep [option] pattern [file-list]
grep命令用于在指定的文件(一个或者多个,file-list)中查找包含模式串(pattern)的行,[option]用于控制grep命令的查找方式。
pattern可以是普通字符串,也可以是正则表达式,当查找的字符串包含正则表达式字符或者特
- mybatis3入门学习笔记
白糖_
sqlibatisqqjdbc配置管理
MyBatis 的前身就是iBatis,是一个数据持久层(ORM)框架。 MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。MyBatis对JDBC进行了一次很浅的封装。
以前也学过iBatis,因为MyBatis是iBatis的升级版本,最初以为改动应该不大,实际结果是MyBatis对配置文件进行了一些大的改动,使整个框架更加方便人性化。
- Linux 命令神器:lsof 入门
ronin47
lsof
lsof是系统管理/安全的尤伯工具。我大多数时候用它来从系统获得与网络连接相关的信息,但那只是这个强大而又鲜为人知的应用的第一步。将这个工具称之为lsof真实名副其实,因为它是指“列出打开文件(lists openfiles)”。而有一点要切记,在Unix中一切(包括网络套接口)都是文件。
有趣的是,lsof也是有着最多
- java实现两个大数相加,可能存在溢出。
bylijinnan
java实现
import java.math.BigInteger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class BigIntegerAddition {
/**
* 题目:java实现两个大数相加,可能存在溢出。
* 如123456789 + 987654321
- Kettle学习资料分享,附大神用Kettle的一套流程完成对整个数据库迁移方法
Kai_Ge
Kettle
Kettle学习资料分享
Kettle 3.2 使用说明书
目录
概述..........................................................................................................................................7
1.Kettle 资源库管
- [货币与金融]钢之炼金术士
comsci
金融
自古以来,都有一些人在从事炼金术的工作.........但是很少有成功的
那么随着人类在理论物理和工程物理上面取得的一些突破性进展......
炼金术这个古老
- Toast原来也可以多样化
dai_lm
androidtoast
Style 1: 默认
Toast def = Toast.makeText(this, "default", Toast.LENGTH_SHORT);
def.show();
Style 2: 顶部显示
Toast top = Toast.makeText(this, "top", Toast.LENGTH_SHORT);
t
- java数据计算的几种解决方法3
datamachine
javahadoopibatisr-languer
4、iBatis
简单敏捷因此强大的数据计算层。和Hibernate不同,它鼓励写SQL,所以学习成本最低。同时它用最小的代价实现了计算脚本和JAVA代码的解耦,只用20%的代价就实现了hibernate 80%的功能,没实现的20%是计算脚本和数据库的解耦。
复杂计算环境是它的弱项,比如:分布式计算、复杂计算、非数据
- 向网页中插入透明Flash的方法和技巧
dcj3sjt126com
htmlWebFlash
将
Flash 作品插入网页的时候,我们有时候会需要将它设为透明,有时候我们需要在Flash的背面插入一些漂亮的图片,搭配出漂亮的效果……下面我们介绍一些将Flash插入网页中的一些透明的设置技巧。
一、Swf透明、无坐标控制 首先教大家最简单的插入Flash的代码,透明,无坐标控制: 注意wmode="transparent"是控制Flash是否透明
- ios UICollectionView的使用
dcj3sjt126com
UICollectionView的使用有两种方法,一种是继承UICollectionViewController,这个Controller会自带一个UICollectionView;另外一种是作为一个视图放在普通的UIViewController里面。
个人更喜欢第二种。下面采用第二种方式简单介绍一下UICollectionView的使用。
1.UIViewController实现委托,代码如
- Eos平台java公共逻辑
蕃薯耀
Eos平台java公共逻辑Eos平台java公共逻辑
Eos平台java公共逻辑
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年6月1日 17:20:4
- SpringMVC4零配置--Web上下文配置【MvcConfig】
hanqunfeng
springmvc4
与SpringSecurity的配置类似,spring同样为我们提供了一个实现类WebMvcConfigurationSupport和一个注解@EnableWebMvc以帮助我们减少bean的声明。
applicationContext-MvcConfig.xml
<!-- 启用注解,并定义组件查找规则 ,mvc层只负责扫描@Controller -->
<
- 解决ie和其他浏览器poi下载excel文件名乱码
jackyrong
Excel
使用poi,做传统的excel导出,然后想在浏览器中,让用户选择另存为,保存用户下载的xls文件,这个时候,可能的是在ie下出现乱码(ie,9,10,11),但在firefox,chrome下没乱码,
因此必须综合判断,编写一个工具类:
/**
*
* @Title: pro
- 挥洒泪水的青春
lampcy
编程生活程序员
2015年2月28日,我辞职了,离开了相处一年的触控,转过身--挥洒掉泪水,毅然来到了兄弟连,背负着许多的不解、质疑——”你一个零基础、脑子又不聪明的人,还敢跨行业,选择Unity3D?“,”真是不自量力••••••“,”真是初生牛犊不怕虎•••••“,••••••我只是淡淡一笑,拎着行李----坐上了通向挥洒泪水的青春之地——兄弟连!
这就是我青春的分割线,不后悔,只会去用泪水浇灌——已经来到
- 稳增长之中国股市两点意见-----严控做空,建立涨跌停版停牌重组机制
nannan408
对于股市,我们国家的监管还是有点拼的,但始终拼不过飞流直下的恐慌,为什么呢?
笔者首先支持股市的监管。对于股市越管越荡的现象,笔者认为首先是做空力量超过了股市自身的升力,并且对于跌停停牌重组的快速反应还没建立好,上市公司对于股价下跌没有很好的利好支撑。
我们来看美国和香港是怎么应对股灾的。美国是靠禁止重要股票做空,在
- 动态设置iframe高度(iframe高度自适应)
Rainbow702
JavaScriptiframecontentDocument高度自适应局部刷新
如果需要对画面中的部分区域作局部刷新,大家可能都会想到使用ajax。
但有些情况下,须使用在页面中嵌入一个iframe来作局部刷新。
对于使用iframe的情况,发现有一个问题,就是iframe中的页面的高度可能会很高,但是外面页面并不会被iframe内部页面给撑开,如下面的结构:
<div id="content">
<div id=&quo
- 用Rapael做图表
tntxia
rap
function drawReport(paper,attr,data){
var width = attr.width;
var height = attr.height;
var max = 0;
&nbs
- HTML5 bootstrap2网页兼容(支持IE10以下)
xiaoluode
html5bootstrap
<!DOCTYPE html>
<html>
<head lang="zh-CN">
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">