frameworks_frameworks,php - CSDN
精华内容
参与话题
  • FrameWorks-框架

    2020-10-17 02:45:06
    JavaFrameWork-框架概念HibernateSpringIOC 概念 作用 [1]抽取公共问题, [2]开发专注业务, [3]降低维护成本 [4]层级逻辑复用 分层 数据访问层 业务逻辑层 界面层 ... [1]Activiti 工作流 ...

    概念

    作用		
    	[1]抽取公共问题
    	[2]开发专注业务
    	[3]降低维护成本
    	[4]层级逻辑复用
    	
    分层
    	[]表现层		用户展示	SpringMVC、Structs
    	[]服务层		业务逻辑	Spring
    	[]持久层		数据访问	Hibernate、Mybatis、SpringData JPA
    

    JDBC

    区别		
    	[1]直接编译Statement				SQL使用参数		单次连接有效		每次编译
    	[2]预先编译PreparedStatement		SQL使用占位符		整个DB有效		一次编译,每次传参	
    

    DBUtils

    属性		JDBC访问框架_轻量级别
    条件		JavaBean属性与DB字段必须一致
    组成
    	[一]QueryRunner
    	[二]ResultSetHandler		
    		[1]ArrayHandler		结果集第一行,转换数组
    		[2]ArrayListHandler	结果集每一行,转换数组,存放List
    		[3]BeanHandler		结果集第一行,封装JavaBean
    		[4]BeanListHandler	结果集每一行,封装JavaBean,存放List
    		[5]ScalarrHandler	单行单列的结果集
    	[三]c3p0
    		[1]连接数据源			默认扫描 classpath目录的"c3p0-config.xml"
    			private static ComboPooledDataSource dataSource = new ComboPooledDataSource();
    		[2]创建查询实例		封装获取数据源、预编译PreparedStatement、处理结果集
    			QueryRunner queryRunner = new QueryRunner( C3P0Util.getDataSource() );
    		[3]执行查询			封装释放资源 [ 放回连接池与DB的连接 ]
    			queryRunner.query( SQL,new ScalarHandler() ) ;
    		[4]执行操作
    			queryRunner.update( SQL,, );
    安全_防止SQL注入		PrepareStatement		
    
    c3p0-config.xml	
    <?xml version="1.0" encoding="UTF-8"?>
    <c3p0-config>
    	<default-config>
    		<property name="driverClass">com.mysql.jdbc.Driver</property>
    		<property name="jdbcUrl">jdbc:mysql://localhost:3306/mhg</property>
    		<property name="user">root</property>
    	   	<property name="password">k9718</property>
    	    <property name="initialPoolSize">10</property>
    		<property name="maxIdleTime">30</property>
    		<property name="maxPoolSize">100</property>
    		<property name="minPoolSize">10</property>
    		<property name="maxStatements">200</property>
    	</default-config>
    </c3p0-config>
    

    Hibernate

    属性		全自动ORMORM数据访问层框架
    原理		解析xml,反射调用JavaBean方法
    组成
    	[1]*.java			映射类		描述数据库表结构				
    	[2]*.hbm.xml		映射文件		描述数据库表与映射类的关系		属性:字段;类:表;实例:记录
    	[3]*.cfg			配置文件		数据库连接信息
    	[4]*.xml			配置文件		数据库连接信息	
    	[5]*.properties		配置文件		数据库连接信息
    

    MyBatis

    属性		半自动ORM数据访问层框架_轻量级别
    原理		解析xml,反射调用JavaBean方法
    组成
    	[1]配置文件			管理数据源、事务
    	[2]映射文件			管理SQL、JavaBean、映射输入参数、输出参数
    功能		
    	[1]SQL动态生成		配置文件标签拼接	
    	[2]SQL位置分离		配置文件与代码分离
    	[3]SQL集中管理		SQLMapper
    	[4]缓存功能			一级缓存sqlSession级别、二级缓存mapper级别
    	[5]延迟加载
    说明		资源文件mapper.xml,修改后无须重新编译
    
    展开全文
  • Frameworks(不定时更新)

    2019-01-04 03:41:23
    iOS8.4 Frameworks 更新时间:2015年8月17日 Accelerate iOS4.0引入了Accelerate框架,该框架的接口可用于执行数学、大数字以及DSP运算。和开发者个人编写的库相比,该矿建的优点在于它根据现存的各种iOS设备的...

    iOS8.4 Frameworks

    更新时间:2015年8月17日

    • Accelerate

      iOS4.0引入了Accelerate框架,该框架的接口可用于执行数学、大数字以及DSP运算。和开发者个人编写的库相比,该矿建的优点在于它根据现存的各种iOS设备的硬件配置进行过优化。因此,只需一次编码就可以确保它所有设备高效运行。

    • Accounts(账户框架)

      Accounts 框架给某一个用户账户提供一个单一的登录模型。单一的登录改善了用户体验,因为应用程序不再需要提示一个用户分离登录信息去关联一个账户,而且它也为你的应用程序为通过管理账户认证过程你简化了开发模型。你可以使用这个框架结合Twitter framework 去访问用户的Twitter account.

    • AddressBook(地址框架层)

      支持编程访问存储于用户设备中的联系人信息。如果应用程序使用到联系人信息,则可通过该框架访问并修改用户联系人数据库的记录。举个例子:通过使用该框架,聊天程序可以获取一个联系人列表,利用此列表初始化聊天会话,并在联系人视图显示列表的联系人。

    • AddressBookUI(地址本框架)

      是一套Objective-C的编程接口,可以显示创建或者编辑联系人的标准系统界面。该框架简化了应用程序显示联系人信息所需的工作,另外它也可以确保应用程序使用的界面和其他应用程序相同,进而保证了跨平台一致性。

    • AdSupport(广告支持框架)

      AdSupport框架提供存取应用用于广告功能的一个标识。该框架也提供一个知识用户是否选择广告跟踪标志。应用在试图存取广告标识前需要度和判断这个标志。
    • Social(社交框架)

      社交框架(Social.framework)
      提供一个简单的接口来存取用户的社交媒体账号。该框架取代Twitter框架并且增加了其他社交账号,包括Facebook、Sina微博以及其他。
      应用能使用该框架提交状态更新和图像到用户账号。该框架与Accounts框架一起为用户提供单点登录并确保存取的用户账号是经过准许的。

    • MapKit (地图框架)

      该框架提供一个可被嵌入到应用的应用程序地图界面,该界面包含一个可以滚动的地图视图。你可以再视图中添加定制信息,并可将其嵌入到应用程序视图,通过编程的方式设置地图的各种属性(包括当前地图显示的区域以及用户的方位)。也可以使用定制标注或标准标注(使用测针标记)突出显示地图中的某些区域或额外的信息。

    • Twitter

      使用Twitter 框架,让你的应用程序发送微博。当使用Twitter Api的时候你也可以使用这个框架去简化认证过程。
    • CoreText

      使用Core Text框架布局文本和执行字体处理。文本布局API提供高质量的排版,包括字符到字形的转换和定制字形的线条和段落。补充的字体技术提供特点,例如自动字体替换,字体描述符和集合,也包括容易获得字体度量和字形数据。
    • QuartzCore

      包含Core Animation接口。Core Animation是高级动画制作和混合技术,它使用经过优化的渲染路径实现复杂的动画和视觉效果。它提供的高级Ojbective-C接口可对动画效果进行配置,然后在设备硬件中进行渲染,以此来提高程序的性能。Core Animation框架被整合到iOS的许多部分(包括UIKit框架中的许多类(如UIView)),可以为多种系统行为提供动画效果。你也可以使用该框架中的Objective-C接口直接创建定制动画。

    • SystemConfiguration

      该系统配置框架可以用来确定网络的可用性和设备的状态。这个系统配置框架声明了与网络可达性相关的函数,类型,和常量。
    • SenTestingKit

      SenTestingKit.framework,就是OCUnit框架。

    展开全文
  • 通过cocoapods管理应用程序时,在Podfile文件中,use_frameworks!的使用区别如下: 使用use_frameworks!时dynamic frameworks 方式 -&amp;amp;amp;amp;amp;gt; .framework 1、cocoapods会生成对应的 ...

    首先明确一下几个概念
    这里写图片描述
    从iOS8/Xcode6开始,苹果允许使用动态库链接
    通过cocoapods管理应用程序时,在Podfile文件中,**use_frameworks!**的使用区别如下:

    • 使用**use_frameworks!**时dynamic frameworks 方式 -> .framework
    cocoapods会生成对应的 frameworks 文件
    在Link Binary With Libraries:会生成Pods_工程名.framework,包含了其它用cocoapods导入的第三方框架的.framework文件
    

    这里写图片描述

    • 不使用**use_frameworks!**时static libraries 方式 -> 生成.a文件
    cocoapods会生成相应的 .a文件(静态链接库)
    Link Binary With Libraries: libPods-工程名.a 包含了其他用cocoapods导入有第三库的 .a 文件
    

    这里写图片描述

    1、纯OC项目中,通过cocoapods导入OC库时,一般都不使用use_frameworks!
    2、纯swift项目中,通过cocoapods导入swift库时,必须使用use_frameworks!
    3、只要是通过cocoapods导入swift库时,都必须使用use_frameworks!
    4、使用动态链接库dynamic frameworks时,必须使用use_frameworks!

    系统提供的库都是 dylib 动态库

    什么是 tbd?“text-based stud libraries”的缩写,Xcode7开始引入的技术,为了减少Xcode中相应的SDK的体积,实际上是一个文本。

    --- !tapi-tbd-v3
    archs:           [ armv7, armv7s, arm64 ]
    uuids:           [ 'armv7: DEA2F438-8531-392F-85B1-73240DD2A2EC', 'armv7s: A50A77BF-6473-3BBB-B0D1-92E3240D79DC', 
                       'arm64: E53F9393-BFC8-3EF5-8520-B0FE6B193183' ]
    platform:        ios
    install-name:    /System/Library/Frameworks/Foundation.framework/Foundation
    current-version: 1452.23
    compatibility-version: 300
    objc-constraint: none
    exports:         
      - archs:           [ armv7, armv7s ]
        symbols:         [ '$ld$add$os2.0$_OBJC_CLASS_$_NSURL', '$ld$add$os2.0$_OBJC_METACLASS_$_NSURL', 
                           '$ld$add$os2.1$_OBJC_CLASS_$_NSURL',  
    

    其中有支持的架构、二进制文件的位置以及库中所有 symbols 的声明,是动态库的一个描述。

    Xcode动态库的路径:
    /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks

    Foundation.framework也是一个dylib动态库,可以看到目录下有同名的tbd以及Headers(包含开发的API头文件)
    Foundation.framework

    动态库是在程序运行的时候才加载的,在Xcode中导入这些 framework 以及tbd只是对动态库的一个描述,目前是为了告诉编译器动态库中有这些API,以便于成功编译,否则编译不通过,提示 “Symbol not found” 错误。

    真正的动态库存放在哪里?

    在Foundation.framework的tbd文件中,可以看到其动态库的存放路径在“/System/Library/Frameworks/Foundation.framework/Foundation”,但实际上在越狱设备上并不能找到对应的文件,其他的库也是一样。
    **在iOS系统中,系统库文件都被打包到一个缓存的文件中,即 dyld 缓存,位于/System/Library/Caches/com.apple.dyld/目录下,文件名是以“dyld_shared_cache_”**开头,再加上这个动态库 dyld支持的指令集。

    参考链接1
    参考链接2

    展开全文
  • Revision Author Date Description 1.0 一只菠萝 2014.03.31 Creator 1.0 一只菠萝 2015.03.30 Creator Online 一、Android SMS架构 二、短信数据结构 三、发

    一、Android SMS架构

    二、短信数据结构

    三、发送短信流程分析

    四、接收短信流程分析


    一、Android SMS架构

    SMS(Short Messaging Service),短信息服务。在android源代码中已经实现了基本的短信、彩信的发送与接收以及状态报告等相关通信能力,并且将SMS、MMS功能集成在一个应用中的MMS应用。

    SMS的分层结构与Android架构保持一致, 从上到下依次是:MMS应用层、Telephony Frameworks框架层、RIL层。app层如何将发送短信转换成RIL请求以及app如何接收RIL发出的新短信通知相关的代码主要集中在Java Frameworks层,因此本次学习主要关注Frameworks层。

    SMS在Telephony Frameworks层主要有以下几个类:

    1.SmsMessage.java(frameworks/opt/telephony/src/java/android/telephony):定义了短信在framework层的数据结构。

    2.SmsMessageBase.java:容纳实际的短信数据。它有两个子类 SmsMessage.java(frameworks/opt/telephony/src/java/com/android/internal/telephony/gsm)和SmsMessage.java(frameworks/opt/telephony/src/java/com/android/internal/telephony/cdma),负责帮助SmsMessage.java(frameworks/opt/telephony/src/java/android/telephony)来处理GSM/CDMA制式下的数据解析。

    3.SmsManager.java:发送短信的唯一入口。SmsManager类在Telephony Frameworks层提供短信操作的相关接口供application层调用,application层通过获取此类的对象,完成对短信的操作。该类提供了短信拆分、短信发送、将短信复制到SIM卡、从SIM卡删除短信和小区广播等接口。

    4.IccSmsInterfaceManager.java:抽象类,实现了ISms.stub接口,它有两个子类:RuimSmsInterfaceManager和SimSmsInterfaceManager,分别对应USIM卡和SIM卡的操作,不同之处在于电话卡中的短信存储和读取以及小区广播的实现逻辑。

    5.SMSDispatcher.java:继承Handler类,有三个子类:ImsSMSDispatcher、GsmSMSDispatcher和CdmaSMSDispatcher。与RIL.java交互,完成短信的发送和接收。

    6.RIL.java:通过socket与RILC交互,完成短信发送请求与RIL请求之间的转换。


    二、短信数据结构

    1.SMS数据结构

    在telephony.java中,定义了SMS存储到数据库时的主要属性和方法。

    SMS的属性:

    1. TYPE //The type of the message

    2. THREAD_ID //The thread ID of the message

    3. ADDRESS //The address of the other party

    4. PERSON_ID //The person ID of the sender

    5. DATE //The date the message was received

    6. READ //Has the message been read

    7. STATUS //The status of the message

    8. SUBJECT //The subject of the message

    9. BODY //The body of the message

    10.PROTOCOL //The protocol identifier code

    11.SERVICE_CENTER // The service center

    12.REPLY_PATH_PRESENT //Whether TP-Reply-Path bit was set

    13.LOCKED //Has the message been locked

    14.SUB_ID //


    SMS的方法:

           1.query() //

           2.addMessageToUri() //将短信内容保存至数据库

           3.moveMessageToFolder() //将短信内容转移另一个URI

           4.isOutgoingFolder() //

     

    2.SmsMessage数据结构

    在SmsMessage.java(frameworks/opt/telephony/src/java/android/telephony)中,定义了SmsMessage向下传递数据时的主要属性和方法。


    SmsMessage的属性:

    1.mWrappedSmsMessage //SmsMessageBase对象,容纳实际的短信数据。

    2.MessageClass //enum:UNKNOWN,CLASS_0,CLASS_1,CLASS_2,CLASS_3

    3.ENCODING_XXX            //XXbit编码:7BIT/8BIT/16BIT/UNKNOWN 

    4.MAX_USER_DATA_BYTES        //短信最大字节数140

    5.MAX_USER_DATA_BYTES_WITH_HEADER //带header的短信最大字节数134

    6.MAX_USER_DATA_SEPTETS //短信最大7位字节数160

    7.MAX_USER_DATA_SEPTETS_WITH_HEADER   //带header的短信最大7位字节数153

    8.FORMAT_3GPP/FORMAT_3GPP2 //短信format

    9.mSubId //subId


    SmsMessage的方法:

    1.SmsMessage() //

    2.createFromPdu() //

    3.getXXX() //mWrappedSmsMessage.getXXX()

    4.isXXX() //mWrappedSmsMessage.isXXX()

    其中, 属性中的ENCODING_7BIT/ENCODING_8BIT/ENCODING_16BIT分别代表着手机短信的PDU编码方式:7-bit、8-bit和16-bit编码。7-bit编码用于发送普通的ASCII字符,即英文短信,最多可发送160字 符。8-bit编码通常用于发送数据消息。16-bit编码用于发送Unicode字符,可发送中文字符,最多发送70字符。PDU格式参照表1-1

    元素

    名称

    长度

    描述

    SCA

    Service Center Address

    1-12

    短消息服务中心号码

    PDU-Type

    Protocol Data Unit

    1

    协议数据单元类型

    MR

    Message Reference

    1

    所有成功的短信发送参考数目(0..255)

    OA

    Originator Address

    2-12

    发送方地址(手机号码)

    DA

    Destination Address

    2-12

    接收方地址(手机号码)

    PID

    Protocol Identifer

    1

    参数显示消息中心以何种方式处理消息内容(比如FAX,Voice)

    DCS

    Data Coding Scheme

    1

    参数显示用户数据编码方案

    SCTS

    Service Center Time Stamp

    7

    消息中心收到消息时的时间戳

    VP

    Validity Period

    0,1,7

    参数显示消息有效期

    UDL

    User Data Lenghth

    1

    用户数据长度

    UD

    User Data

    0-140

    用户数据

    表1 发送方PDU格式

    在PDU中,DCS数据编码方案占据8bit。其中Bit N0.1与Bit No.0表示短信的类型,即属性中的MessageClass:

    00-Class 0:Immediate Display,短信内容自动显示在屏幕上,看完自动消失

    01-Class 1:Mobile Equipment-specific,会存储在设备上的短信

    10-Class 2:SIM specific Message,会存储在SIM卡的短信

    11-Class 3:Terminate Equipment-specific,直接到终端设备上的短信

    而Bit No.3与Bit No.2则表示PDU编码方式,即属性中的 ENCODING_XXX:

    00-ENCODING_7BIT:默认的字符集,每字符占7bit,此时最大可发送160字符(即属性MAX_USER_DATA_SEPTETS=160)

    01-ENCODING_8BIT:8bit,此时最大可发送140字符(即属性MAX_USER_DATA_BYTES=140)

    10-ENCODING_16BIT:16bit,发送双字节字符集

    11-ENCODING_UNKNOWN:预留

    3.SmsMessageBase

    在SmsMessage中,有一个重要属性基本上所有的方法都会用到它:SmsMessageBase对象mWrappedSmsMessage。SmsMessageBase定义了SmsMessage基本的属性和方法。

    SmsMessageBase的属性:

           1.scAddress //SMSC

           2.originatingAddress //sender

           3.messageBody //messageBody

           4.mPdu //The raw PDU of the message

           5.userData //The raw bytes for the user data 

           …

    SmsMessageBase的方法:

          1.getXXX() //return 属性

          2.isXXX() //

     

    4.SmsMessageBase的两个子类

    由于通信机制分为GSM和CDMA两种,所以SmsMessage也分了两种:

    com.android.internal.telephony.cdma.SmsMessage

    com.android.internal.telephony.gsm.SmsMessage

    在SmsMessage的一些关于处理数据的方法中,会根据短信的format来判断调用gsm.SmsMessage的方法还是cdma.SmsMessage的方法。二者的主要区别就是对数据的解析方式实现不同,如parseXX()。

    gsm.SmsMessage的parseUserData方法会根据ENCODING_XXX的不同,来调用不同的解析方法,得到正确的短信数据。

     

    5.SmsTracker类

    在SMSDispatcher和RIL交互的过程中,不管是将短信发送请求转换至RIL请求,还是回调短信状态,SmsTracker对象一直被传递。现在分析一下SmsTracker类的数据结构。

    SmsTracker类是RIL.java的一个protected内部类。该类只有一个SmsTracker构造方法和一个判断是否是分段短信的isMultipart方法,其余的是声明的成员变量。

    mData //包含着destAddr/scAddr/text/smsc/pdu的HASHMAP

    mSentIntent //短信发送状态的回调intent

    mDeliveryIntent  //短信发送状态的回调intent

    mRetryCount  //短信重发次数计数

    mAppInfo  //app package info

    mDestAddress //短信收件人

    mFormat  //GSM or CDMA

    mImsRetry   //

    mMessageRef  //


    展开全文
  • 提示错误:Frameworks detected: Android framework is detected in the project Configure 解决方案: press CTRL+ALT+SHIFT+Son project setting structure->Facetsclick + button and add Android-...
  • Android Studio--FrameWorks detected解决方法

    万次阅读 2015-11-11 10:20:23
    如果使用Android Studio打开项目出现FrameWorks detected,如下图1,选择Configure.然后选择File->New->Import Project选择你项目中的build.gradle 或 settings.gradle就可以了,也可以参考这个...
  • 错误行为15:52:15 Frameworks detected: Android framework is detected in the project Configure 一般情况下你导入的AndroidStudio文件 不符合,如你导入的是Eclipse工程,或者是文件夹里才是 死丢丢 项目 修改...
  • 前提 pip install --upgrade --pre uiautomator2 安装到了mac默认2.7 自己mac装了Python3.7.1 执行python -m uiautomator2 init报错 python -m uiautomator2 init 指定python2.7 可以解决 python2.7 -m ...
  • 用idea第一次写MyBatis配置文件,发现报错URI is not registered (Settings | Languages &... Frameworks | Schemas and DTDs),如下: 即统一资源标识符没有注册 解决办法如下: 完成。 ...
  • 早podfile中写入use_frameworks! 再导入一个Swift第三方框架,运行项目发现AFN找不到了:把Swift的第三方和use_frameworks!去掉项目又可以运行了,首先思考:只添加两样东西 use_frameworks! 和 Swift 三方库。从...
  • cocoapods 在 Mac10.11 遇到如果下.../System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/universal-darwin15/rbconfig.rb:213: warning: Insecure world writable dir /usr/local/bin in P
  • Mac: 卸载Safari 5.0.2

    千次阅读 2010-10-31 10:00:00
      前些日子有网友问,如何卸载Safari5,准备安装4。 虽然不太理解,无论处于什么原因,我重新下载了Safari 5.0.2的安装包,看了看,还是给出Safari到底安装了什么文件的一个清单图,同时Safari还...
  • 在IDEA的项目右键选择Add Frameworks Support中发现没有如下图的Spring 这个的原因是,在Project Structure中已经有了Spring的Modules,所以无法再创建新的 这时候只需要在Project Structure中删除掉这个Spring的...
  • android编译错误解决办法

    万次阅读 2015-02-15 15:14:10
    一、 htmlDir not a directory: out/target/common/docs/gen /bin/bash: line 26: 21282 Killed LD_LIBRARY_PATH=out/host/linux-x86/lib javadoc \@out/target/product/sdkDemo/obj/JAVA_LIBRARIE
  • 自己做Multi_window项目,需要 Depending on what version of JB you are using you should either use the public.xml or symbols.xml to add your new id's. Adding new id's to public.xml was abandoned ...
  • 本人亲测,找到Build Phases, 点开Embed Pods Frameworks 是不是看到了 "${SRCROOT}/Pods/Target Support Files/Pods/Pods-frameworks.sh" 这句话? 删除后commond+R,OK。。。。
  • swift和object-c混编,同时通过cocoapods进行管理项目的一些问题和解决办法
  • ![图片说明]...新建了个maven项目,想加入spring的依赖库,add frameworks support发现选项中任何依赖库几乎都没有,问下这个是什么情况?需要怎么解决?
  • frameworks里面的JavaScript 选项 但是竟然没有JavaScript选项。 还有plugins error 的问题 打开设置 搜索plugins 在里面搜索 java 选择 JavaScript support 重启即可 转载于:...
  • 原帖地址:http://blog.csdn.net/zhaoxy_thu/article/details/16871483
1 2 3 4 5 ... 20
收藏数 105,515
精华内容 42,206
关键字:

frameworks