- 谷歌将 Android OS 完全转变为 “内部开发”
自不量力的A同学
android
2025年3月27日,据AndroidAuthority报道,谷歌证实将从下周开始完全在内部分支机构闭门开发安卓操作系统。相关信息如下:背景:多年来,谷歌同时维护着两大安卓主要分支,一是面向公众开放的“安卓开源项目(AOSP)分支”,二是谷歌内部使用的“内部开发分支”。AOSP分支可供任何人访问,而谷歌的内部分支仅限于拥有谷歌移动服务(GMS)许可协议的公司。谷歌一直在其“内部开发分支”开发安卓的
- android 字体大小 根据分辨率 自动调整
2401_87022338
androidjava开发语言
((Button)v).setTextSize(adjustFontSize+2);}elseif(vinstanceofTextView){if(v.getId()==R.id.title_msg){//顶部标题((TextView)v).setTextSize(adjustFontSize+4);}else{((TextView)v).setTextSize(adjustFontSize);}
- Android中自定义蓝牙的MTU
MasonYyp
Android
1、最大传输单元(MaximumTransmissionUnit,MTU)MTU是指在一个协议数据单元中(ProtocolDataUnit,PDU)有效的最大传输Byte。2、蓝牙MTU默认23个Bytecorespec中ATT的默认MTU为23个Byte,ATT的Opcode占1个Byte、ATT的Handle2个Byte、GATT占20个Byte。23Byte(ATT)=1Byte(Opcod
- Android Audio基础——MediaPlayer播放音频(二十一)
c小旭
AndroidAudioandroidAudio开发
AndroidSDK提供了3套音频播放的API,分别是:MediaPlayer,SoundPool,AudioTrack。简单来说,MediaPlayer更加适合在后台长时间播放本地音乐文件或者在线的流式资源。SoundPool则适合播放比较短的音频片段,比如游戏声音、按键声、铃声片段等等,它可以同时播放多个音频。而AudioTrack则更接近底层,提供了非常强大的控制能力,支持低延迟播放,适合流
- H5与原生通讯之二 (DSBrige,H5,IOS,Android源码实例)
极客雨露
HTML5H5和原生
H5与原生通讯之二(DSBrige,H5,IOS,Android源码实例)H5和natvie通讯方式简介1.H5和IOS通讯2.H5和Android通讯H5和natvie通讯具体实现1.通过DSBrige方式1.1H5和IOS端源码解析1.2dbbridge安卓端源码解析1.3dbbrigejs代码1.4IOS端使用DSBridge框架API1.4.1集成源码1.4.2Api使用1.4.3Api注
- Android学习总结之通信篇
每次的天空
android学习
一、Binder跨进程通信的底层实现细节(挂科率35%)高频问题:“Binder如何实现一次跨进程方法调用?”候选人常见错误:仅回答“通过Binder驱动传输数据”,缺乏对内存映射和线程调度的描述混淆Binder驱动与AIDL的角色满分答案:Binder的跨进程通信依赖于三层协作模型:1.用户空间与内核空间的交互:Client通过BinderProxy调用transact(),将请求封装为Parc
- 2025 前端 JS 源码逆向实战:6 种绕过限制查看源码的合法方法
阿贾克斯的黎明
网络安全状态模式
目录引言:为何需要绕过前端JS限制?一、浏览器开发者工具深度用法1.动态断点拦截(Chrome117+增强功能)2.Overrides功能持久化修改二、代理工具拦截与响应篡改1.BurpSuite2025动态解混淆三、浏览器扩展生态应用1.资源嗅探与下载(2025新版插件)四、本地代码劫持与Hook技术1.覆盖原生JavaScript方法五、移动端源码提取方案1.Android混合应用逆向六、源码
- 关于Android模块编译
你好,工程师
Androidandroidjavaapache
1、m:编译整个安卓系统makesfromthetopofthetree2、mm:编译当前目录下的模块,当前目录下需要有Android.mk这个makefile文件,否则就往上找最近的Android.mk文件。buildsallofthemoudlesinthecurrentdirectorymma:当前目录新增或删除文件后,可以用mma重新编译。3、mmm:编译指定路径下的模块,指定的路径下面需
- 修改Android系统默认语言
你好,工程师
Androidandroidjava
方法一:打开build/target/product/full_base.mk将PRODUCT_LOCALES值修改即可;zh_CN为中文、en_US为英文方法二:修改对应locale属性亦可方法三:设置属性PRODUCT_PROPERTY_OVERRIDES+=\ro.product.locale=zh-CN\ro.product.locale.language=zh\ro.product.lo
- 生怕认可java+flatmap,RxJava 操作符flatMap 与 concatMap详解
木子岛力
本文独家发布到公众号:Android技术杂货铺封面图-pixabay近两年来,RxJava可以说是异常的火爆,受到众多开发者的追捧与青睐,虽然后入门的门槛较高,学习成本较大,但是还是掀起一场学习Rxjava的狂潮。为什么呢?因为RxJava的特性:轻松的线程切换、流式的API写法和强大的操作符。这使得我们做异步操作变得很简单,不用像以前一样写各种Handler来回调主线程,只需要一个操作符一行代码
- Android设计模式之工厂方法模式
木子庆五
设计模式工厂方法模式android
一、定义:定义一个用于创建对象的接口,让子类决定实例化哪个类。二、组成:1.抽象工厂:工厂模式的核心,声明工厂方法,返回抽象产品对象。2.具体工厂:实现工厂方法,返还具体的产品对象。3.抽象产品:定义产品的相关接口。4.具体产品:实现抽象产品的具体类。三、具体例子:抽象产品publicabstractclassProduct{publicabstractvoidmethod();}具体产品Apub
- Android设计模式详解之命令模式
惜许
玩转设计模式命令模式android设计模式
前言命令模式是行为型设计模式之一;定义:将一个请求封装成一个对象,从而让用户使用不同的请求把客户端参数化;对请求排队或者记录日志,以及支持可撤销的操作;使用场景:需要抽象出待执行的动作,然后以参数的形式提供出来,类似于过程设计中的回调机制,而命令模式正是回调机制的一个面对对象的替代品;在不同的时刻指定、排列和执行请求。一个命令对象可以有与初始请求无关的生存期;需要支持取消操作;支持修改日志功能,这
- 实现类今日头条主界面:ViewPager与TabLayout深度整合
w2361734601
android-studioandroidViewPagerTabLayout
实现类今日头条主界面:ViewPager与TabLayout深度整合指南一、功能概述类今日头条的滑动标签页效果核心由ViewPager+Fragment+TabLayout三大组件构成。本文将深度解析各组件特性,并提供完整的实现方案。二、环境配置(2023最新)//build.gradle(Module)dependencies{implementation'androidx.viewpager2
- Google 停止开源 Android?
云水木石
开源android
今天看到有很多消息称谷歌将停止开源Android,比如这一篇《谷歌决定终止开源Android》。对此消息有些将信将疑,毕竟这些年被各种反转虐了无数回。抱着掌握第一手材料的态度,去外面的世界看了看。谷歌确实对Android开发方式有所改变,但并非将Android闭源。比如下面这篇就将前因后果讲得比较清楚:https://www.androidauthority.com/google-android-
- python子线程调用主线程的控件显示_Python+PyQT5的子线程更新UI界面的实例
weixin_39529463
子线程里是不能更新UI界面的,在移动端方面。Android的UI访问是没有加锁的,多个线程可以同时访问更新操作同一个UI控件。也就是说访问UI的时候,android系统当中的控件都不是线程安全的,这将导致在多线程模式下,当多个线程共同访问更新操作同一个UI控件时容易发生不可控的错误。所以Android中规定只能在UI线程中访问UI,相当于从另一个角度给Android的UI访问加上锁,一个伪锁。在P
- Android 腾讯bugly监听奔溃信息
氤氲息
安卓原生学习android
接入网站implementation'com.tencent.bugly:crashreport:latest.release'同意隐私协议后初始化//初始化buglyprivatevoidinitBugly(){//创建UserStrategy对象CrashReport.UserStrategystrategy=newCrashReport.UserStrategy(this);//设置应用渠道
- Android图片选择器使用详解
不会写代码的猴子
Androidandroid
一、概述在Android开发中,图片选择器是一个常见的功能需求,它为用户提供了从设备本地存储中选择图片的能力。这个功能在很多应用中都有广泛的应用,如社交分享、图片编辑、上传头像等。本文将详细探讨Android图片选择器的使用方法,从基本设置到高级配置,帮助开发者更好地实现这一功能。二、基本使用方法首先,要实现图片选择器功能,我们需要在应用的AndroidManifest.xml文件中添加读取外部存
- Android地址选择器的实现
龙旋
原创Android地址选择器
最近在做地址管理的功能,新建地址的时候,需要根据后台提供的省市区的数据,让用户进行地址的选择,最近项目比较赶,本来想网上找一个的,可是找了很久都没找到我想要的效果,所以就根据后台提供的数据,弄了一个。1.先看实现的效果图本来数据是根据请求后台接口返回的数据,我这里就不请求后台数据了,直接把请求成功后的数据写死,可是把全国省市区的数据太多,导致报错:字符串数据太长,所以我这里只获取了北京的数据。2.
- Android 浮动窗口进阶——画中画,浮动视频
一叶知秋dong
androidapp开发
今天继续上一篇Android顶层窗口、浮动窗口的进阶应用。上一篇主要讲解了WindowManager服务和如何使用WindowManager编写一个顶层窗口。今天主要是讲讲如何在顶层窗口里面播放视频,这个功能对很多嵌入式设备来说十分有用。例如现在手机和平板上一些视频播放器就可以实现画中画功能,只显示一部分小窗口播放,用户可以继续操作其他功能。当你在看视频的时候收到短信,你只要进入画中画功能,视频可
- Android笔记【17】返回数据的两种方法
m0_72696598
Android开发android笔记
目录一、问题二、具体分析1、代码2、区别1.目的和使用场景resultLauncherstartActivity2.数据传递方式3.返回结果的管理4.代码示例对比使用resultLauncher启动活动并处理返回结果:使用startActivity启动活动(不处理返回):总结3、使用startActivity启动活动,也可以返回信息。因为有putExtra区别总结示例对比1.使用startActi
- 一文带你轻松入门Flutter开发
网络安全天地
httpudphttpswebsocket网络安全网络协议tcp/ip
文章目录一、Flutter简介二、开发环境搭建2.1安装FlutterSDK2.2安装DartSDK2.3设置AndroidSDK2.4配置IDE2.5配置模拟器三、第一个Flutter应用3.1创建项目3.2运行项目3.3分析代码结构四、基础组件与布局4.1常用组件介绍4.2布局技巧与实践五、状态管理基础5.1状态管理的重要性5.2简易状态管理方法六、总结与展望一、Flutter简介Flutte
- Android系统编译
niepengpeng333
android系统编译androidmakefileshellcommandbuildinclude
摘自:http://blog.csdn.net/chen_chun_guang/article/details/6078314Android编译系统分析之返璞归真自Android开源以来,引起了嵌入式行业一股热潮,很多嵌入式开发者表示对Android有很强的兴趣,并下载Android源码进行编译和移植。Android源码的巨大(repo下来,大概2G)给人以Android相当复杂的错觉。本文从An
- 硬件独立性
你一身傲骨怎能输
安卓操作系统系统架构
硬件独立性与HAL的作用硬件抽象层(HAL)定义:HAL是Android操作系统中的一个关键组件,它提供了一组标准接口,使得应用程序能够与底层硬件进行交互,而不需要了解硬件的具体实现细节。HAL将硬件功能抽象为统一的接口,简化了应用程序的开发过程。设备兼容性:由于HAL提供了硬件独立性,开发者可以编写一次应用程序代码,然后在不同的Android设备上运行,而无需针对每种设备进行特定的调整。这种兼容
- 《探索 HarmonyOS NEXT(5.0):开启构建模块化项目架构奇幻之旅 —— 模块化基础篇》
JasonYin~
HarmonyOSNEXT纯血鸿蒙1024程序员节
从无到有,打造模块化项目。构建一个开箱即用的项目,从Git上拉取下来即可直接进行开发,其中涵盖路由通信、上下拉刷新、网络请求、事件通知、顶部tab封装等功能,项目里调用API为鸿洋大佬的wanAndroidAPI。后期将持续完善,若有不足之处,诚邀各位大佬多提宝贵建议,共同进步成长。为啥要模块化在一些公司,员工可能接手几年前甚至更久远的项目,其架构常是所有代码在一个包中,导致代码混乱,降低可读性和
- CocoaPods使用详解
xiangzhihong8
iOS开发大揭秘iosios开发
CocoaPods简介什么是CocoaPods?每种语言发展到一个阶段,就会出现相应的依赖管理工具。好比Java语言的Maven,nodejs的npm,Android的grandle。而对于ios平台来说,CocoaPods是ios开发平台一个非常流行的第三方库管理工具。在开发过程中,根据项目复杂程度,通常我们会需要外链很多的第三方库。而添加这些第三方库的过程有时候会变成一场灾难。因此使用Coco
- 蓝牙遥控小车实战项目
轮胎技术Tyretek
本文还有配套的精品资源,点击获取简介:本项目旨在通过蓝牙技术,利用Arduino和Android上位机控制一辆小型车辆。它涉及电子工程、嵌入式系统和移动应用开发等领域。学生将学习蓝牙遥控原理,使用Arduino和AndroidStudio开发控制系统,并设计硬件接口。通过完成此项目,学生将掌握蓝牙通信、嵌入式编程和移动应用开发的实际技能。1.蓝牙遥控原理蓝牙遥控系统通过无线蓝牙技术实现对远程设备的
- 全面掌握Android开发:Android API应用指南
宁南山
本文还有配套的精品资源,点击获取简介:AndroidAPI作为开发Android应用的核心接口,为开发者提供构建多样化应用程序所需的丰富功能和工具。文档详细描述了AndroidAPI的各个层次,包括硬件抽象层、系统服务、应用框架四大组件、Intent通信系统以及丰富的View组件。同时,提供了类库参考,涵盖所有类、接口和常量,以及它们的使用示例。此外,文档还介绍了资源管理、权限控制、网络通信、数据
- Android手机蓝牙连接热敏打印机 打印票据
郭陈同学
Android开发笔记蓝牙手机
手机蓝牙连接热敏打印机打印票据话不多说上代码:项目地址:可直接作为项目依赖引用allprojects{repositories{...maven{url'https://jitpack.io'}}}dependencies{compile'com.github.guochenhome:BluetoothPrint:1.1.2'}如果第一步报Error:Executionfailedfortask'
- 鸿蒙5.0开发【高效使用DevEco】
鸿蒙系统小能手Mr.Li
鸿蒙开发harmonyos华为鸿蒙程序员navpathstackDevEcoopenharmony
1.应用AI翻译代码IMSDK和普通应用的最大差异是逻辑性代码比较多,使用过声明式UI的同学都知道,声明式对于AI很友好,开发效率很高,但是对于逻辑性强的代码就没那么友好,而且IM系统本身有很多逻辑和历史包袱,新的平台的SDK也要兼容这些历史逻辑,有很多新同事对历史逻辑不了解,如果现熟悉的话成本又很高,所以从Android和iOS代码直接翻译成了一个不错的选择,但是手动翻译效率不高,而且还要求同时
- android kernel-6.6编译ko驱动
逐梦云间
c语言android
https://download.csdn.net/download/weixin_47982517/90546147
- java杨辉三角
3213213333332132
java基础
package com.algorithm;
/**
* @Description 杨辉三角
* @author FuJianyong
* 2015-1-22上午10:10:59
*/
public class YangHui {
public static void main(String[] args) {
//初始化二维数组长度
int[][] y
- 《大话重构》之大布局的辛酸历史
白糖_
重构
《大话重构》中提到“大布局你伤不起”,如果企图重构一个陈旧的大型系统是有非常大的风险,重构不是想象中那么简单。我目前所在公司正好对产品做了一次“大布局重构”,下面我就分享这个“大布局”项目经验给大家。
背景
公司专注于企业级管理产品软件,企业有大中小之分,在2000年初公司用JSP/Servlet开发了一套针对中
- 电驴链接在线视频播放源码
dubinwei
源码电驴播放器视频ed2k
本项目是个搜索电驴(ed2k)链接的应用,借助于磁力视频播放器(官网:
http://loveandroid.duapp.com/ 开放平台),可以实现在线播放视频,也可以用迅雷或者其他下载工具下载。
项目源码:
http://git.oschina.net/svo/Emule,动态更新。也可从附件中下载。
项目源码依赖于两个库项目,库项目一链接:
http://git.oschina.
- Javascript中函数的toString()方法
周凡杨
JavaScriptjstoStringfunctionobject
简述
The toString() method returns a string representing the source code of the function.
简译之,Javascript的toString()方法返回一个代表函数源代码的字符串。
句法
function.
- struts处理自定义异常
g21121
struts
很多时候我们会用到自定义异常来表示特定的错误情况,自定义异常比较简单,只要分清是运行时异常还是非运行时异常即可,运行时异常不需要捕获,继承自RuntimeException,是由容器自己抛出,例如空指针异常。
非运行时异常继承自Exception,在抛出后需要捕获,例如文件未找到异常。
此处我们用的是非运行时异常,首先定义一个异常LoginException:
/**
* 类描述:登录相
- Linux中find常见用法示例
510888780
linux
Linux中find常见用法示例
·find path -option [ -print ] [ -exec -ok command ] {} \;
find命令的参数;
- SpringMVC的各种参数绑定方式
Harry642
springMVC绑定表单
1. 基本数据类型(以int为例,其他类似):
Controller代码:
@RequestMapping("saysth.do")
public void test(int count) {
}
表单代码:
<form action="saysth.do" method="post&q
- Java 获取Oracle ROWID
aijuans
javaoracle
A ROWID is an identification tag unique for each row of an Oracle Database table. The ROWID can be thought of as a virtual column, containing the ID for each row.
The oracle.sql.ROWID class i
- java获取方法的参数名
antlove
javajdkparametermethodreflect
reflect.ClassInformationUtil.java
package reflect;
import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtMethod;
import javassist.Modifier;
import javassist.bytecode.CodeAtt
- JAVA正则表达式匹配 查找 替换 提取操作
百合不是茶
java正则表达式替换提取查找
正则表达式的查找;主要是用到String类中的split();
String str;
str.split();方法中传入按照什么规则截取,返回一个String数组
常见的截取规则:
str.split("\\.")按照.来截取
str.
- Java中equals()与hashCode()方法详解
bijian1013
javasetequals()hashCode()
一.equals()方法详解
equals()方法在object类中定义如下:
public boolean equals(Object obj) {
return (this == obj);
}
很明显是对两个对象的地址值进行的比较(即比较引用是否相同)。但是我们知道,String 、Math、I
- 精通Oracle10编程SQL(4)使用SQL语句
bijian1013
oracle数据库plsql
--工资级别表
create table SALGRADE
(
GRADE NUMBER(10),
LOSAL NUMBER(10,2),
HISAL NUMBER(10,2)
)
insert into SALGRADE values(1,0,100);
insert into SALGRADE values(2,100,200);
inser
- 【Nginx二】Nginx作为静态文件HTTP服务器
bit1129
HTTP服务器
Nginx作为静态文件HTTP服务器
在本地系统中创建/data/www目录,存放html文件(包括index.html)
创建/data/images目录,存放imags图片
在主配置文件中添加http指令
http {
server {
listen 80;
server_name
- kafka获得最新partition offset
blackproof
kafkapartitionoffset最新
kafka获得partition下标,需要用到kafka的simpleconsumer
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.
- centos 7安装docker两种方式
ronin47
第一种是采用yum 方式
yum install -y docker
- java-60-在O(1)时间删除链表结点
bylijinnan
java
public class DeleteNode_O1_Time {
/**
* Q 60 在O(1)时间删除链表结点
* 给定链表的头指针和一个结点指针(!!),在O(1)时间删除该结点
*
* Assume the list is:
* head->...->nodeToDelete->mNode->nNode->..
- nginx利用proxy_cache来缓存文件
cfyme
cache
user zhangy users;
worker_processes 10;
error_log /var/vlogs/nginx_error.log crit;
pid /var/vlogs/nginx.pid;
#Specifies the value for ma
- [JWFD开源工作流]JWFD嵌入式语法分析器负号的使用问题
comsci
嵌入式
假如我们需要用JWFD的语法分析模块定义一个带负号的方程式,直接在方程式之前添加负号是不正确的,而必须这样做:
string str01 = "a=3.14;b=2.71;c=0;c-((a*a)+(b*b))"
定义一个0整数c,然后用这个整数c去
- 如何集成支付宝官方文档
dai_lm
android
官方文档下载地址
https://b.alipay.com/order/productDetail.htm?productId=2012120700377310&tabId=4#ps-tabinfo-hash
集成的必要条件
1. 需要有自己的Server接收支付宝的消息
2. 需要先制作app,然后提交支付宝审核,通过后才能集成
调试的时候估计会真的扣款,请注意
- 应该在什么时候使用Hadoop
datamachine
hadoop
原帖地址:http://blog.chinaunix.net/uid-301743-id-3925358.html
存档,某些观点与我不谋而合,过度技术化不可取,且hadoop并非万能。
--------------------------------------------万能的分割线--------------------------------
有人问我,“你在大数据和Hado
- 在GridView中对于有外键的字段使用关联模型进行搜索和排序
dcj3sjt126com
yii
在GridView中使用关联模型进行搜索和排序
首先我们有两个模型它们直接有关联:
class Author extends CActiveRecord {
...
}
class Post extends CActiveRecord {
...
function relations() {
return array(
'
- 使用NSString 的格式化大全
dcj3sjt126com
Objective-C
格式定义The format specifiers supported by the NSString formatting methods and CFString formatting functions follow the IEEE printf specification; the specifiers are summarized in Table 1. Note that you c
- 使用activeX插件对象object滚动有重影
蕃薯耀
activeX插件滚动有重影
使用activeX插件对象object滚动有重影 <object style="width:0;" id="abc" classid="CLSID:D3E3970F-2927-9680-BBB4-5D0889909DF6" codebase="activex/OAX339.CAB#
- SpringMVC4零配置
hanqunfeng
springmvc4
基于Servlet3.0规范和SpringMVC4注解式配置方式,实现零xml配置,弄了个小demo,供交流讨论。
项目说明如下:
1.db.sql是项目中用到的表,数据库使用的是oracle11g
2.该项目使用mvn进行管理,私服为自搭建nexus,项目只用到一个第三方 jar,就是oracle的驱动;
3.默认项目为零配置启动,如果需要更改启动方式,请
- 《开源框架那点事儿16》:缓存相关代码的演变
j2eetop
开源框架
问题引入
上次我参与某个大型项目的优化工作,由于系统要求有比较高的TPS,因此就免不了要使用缓冲。
该项目中用的缓冲比较多,有MemCache,有Redis,有的还需要提供二级缓冲,也就是说应用服务器这层也可以设置一些缓冲。
当然去看相关实现代代码的时候,大致是下面的样子。
[java]
view plain
copy
print
?
public vo
- AngularJS浅析
kvhur
JavaScript
概念
AngularJS is a structural framework for dynamic web apps.
了解更多详情请见原文链接:http://www.gbtags.com/gb/share/5726.htm
Directive
扩展html,给html添加声明语句,以便实现自己的需求。对于页面中html元素以ng为前缀的属性名称,ng是angular的命名空间
- 架构师之jdk的bug排查(一)---------------split的点号陷阱
nannan408
split
1.前言.
jdk1.6的lang包的split方法是有bug的,它不能有效识别A.b.c这种类型,导致截取长度始终是0.而对于其他字符,则无此问题.不知道官方有没有修复这个bug.
2.代码
String[] paths = "object.object2.prop11".split("'");
System.ou
- 如何对10亿数据量级的mongoDB作高效的全表扫描
quentinXXZ
mongodb
本文链接:
http://quentinXXZ.iteye.com/blog/2149440
一、正常情况下,不应该有这种需求
首先,大家应该有个概念,标题中的这个问题,在大多情况下是一个伪命题,不应该被提出来。要知道,对于一般较大数据量的数据库,全表查询,这种操作一般情况下是不应该出现的,在做正常查询的时候,如果是范围查询,你至少应该要加上limit。
说一下,
- C语言算法之水仙花数
qiufeihu
c算法
/**
* 水仙花数
*/
#include <stdio.h>
#define N 10
int main()
{
int x,y,z;
for(x=1;x<=N;x++)
for(y=0;y<=N;y++)
for(z=0;z<=N;z++)
if(x*100+y*10+z == x*x*x
- JSP指令
wyzuomumu
jsp
jsp指令的一般语法格式: <%@ 指令名 属性 =”值 ” %>
常用的三种指令: page,include,taglib
page指令语法形式: <%@ page 属性 1=”值 1” 属性 2=”值 2”%>
include指令语法形式: <%@include file=”relative url”%> (jsp可以通过 include