- ### **Android核心系统服务深度解析(AMS/ATMS/WMS/DMS)**
凤翎鹤冢
python开发语言
------####**一、AMS(ActivityManagerService)****职责**:管理应用生命周期、进程调度、四大组件(Activity/Service/Broadcast/ContentProvider)协调、权限控制、内存管理等。---#####**1.源码路径**-**核心类**:-`frameworks/base/services/core/java/com/androi
- Android中的Content Provider是什么以及它有哪些用途
python资深爱好者
androidoracle数据库
Android中的ContentProvider是一种用于管理应用数据共享的组件。它允许不同应用之间访问和操作数据,通过定义统一的接口,确保数据的安全性和一致性。以下是ContentProvider的详细介绍及其用途:一、ContentProvider概述ContentProvider封装了数据源,并提供了一套标准的接口,允许其他应用以一种统一的方式访问和操作这些数据。它通常用于访问SQLite数
- android的广播详解,Android的Service和广播的讲解
任我说车
android的广播详解
前言:我们都知道Android的四大基本组件:Activity、ContentProvider、Service以及BroadcastReceiver,前面的两个我们在前几篇已经具体讲解了,今天这一天我们就把后两者的使用具体说一下,由于Service和BroadcastReceiver常常一起使用,所以我们一起来学习。一.Service的使用Service是Android系统的后台服务组件,没有用户
- Android中的四大组件及其生命周期
Java资深爱好者
android
Android中的四大组件分别是Activity、Service、ContentProvider和BroadcastReceiver,每个组件都有其特定的生命周期。以下是这些组件及其生命周期的详细介绍:1.Activity简介:Activity是用户操作的可视化界面,为用户提供了一个完成操作指令的窗口。一个Activity通常就是一个单独的屏幕(窗口),Activity之间通过Intent进行通信
- android studio 读取内存txt文件_SharedPreference与文件存储
weixin_39726408
androidstudio读取内存txt文件
Android常用数据存储方式有SharedPreferences存储数据(虽然还是属于内部存储)、文件存储(内部,外部)、SQLite数据库存储、ContentProvider存储数据、网络存储数据等几种。本篇博客主要是介绍SharedPreference的原理与使用,区分内部与外部文件存储,以及它们的使用方式。那就从清除缓存与清除数据到底清除了什么这个问题开始吧!内部存储InternalSto
- 《Android 基础(四十七)》FileProvider
AndroidKt
Android基础知识呱呱Android基础Android基础
简介FileProvider,是ContentProvider的子类,通过构建以”content://”开头的Uri取代之前以”file://”开头的Uri,以此实现应用间的文件共享。由来官文Android7.0行为变更说明:对于面向Android7.0的应用,Android框架执行的StrictModeAPI政策禁止在应用外部公开file://URI。如果一项包含文件URI的intent离开您的
- Android的Manifest配置文件介绍,30分钟轻松入门flutter
笃孟夏雨
程序员androidfluttergitee
一、关于AndroidManifest.xmlAndroidManifest.xml是每个android程序中必须的文件。它位于整个项目的根目录,描述了package中暴露的组件(activities,services,等等),他们各自的实现类,各种能被处理的数据和启动位置。除了能声明程序中的Activities,ContentProviders,Services,和IntentReceivers
- Android-性能优化-ANR-的原因和解决方案
2401_84538474
程序员android性能优化vscode
BroadcastReceiver的事件(onRecieve()方法)在规定时间内没处理完(前台广播为10s,后台广播为60s);Service前台20s后台200s未完成启动;ContentProvider的publish()在10s内没进行完。通常情况下就是主线程被阻塞造成的。2、ANR的实现原理以输入无响应的过程为例(基于9.0代码):最终弹出ANR对话框的位置是与AMS同目录的类AppEr
- Android创建自己的内容提供器(ContentProvider)
程序猿陌名!
Providerandroid
文章目录Android创建自己的内容提供器(ContentProvider)创建内容提供器的步骤新建MyProvider继承自ContentProvider内容URI的格式修改MyProvider中的代码MIME类型Android创建自己的内容提供器(ContentProvider)在上一节当中,我们学习了如何在自己的程序中访问其他应用程序的数据。总体来说思路还是非常简单的,只需要获取到该应用程序
- 《第十二章 ContentProvider 数据共享》
黑色叉腰丶大魔王
python开发语言
《第十二章ContentProvider数据共享》在Android开发中,数据共享是一个重要的环节,而ContentProvider为我们提供了一种强大且安全的数据共享机制。在这一章,我们将深入探讨ContentProvider数据共享,包括自定义ContentProvider和访问系统ContentProvider两个主要方面。一、ContentProvider概述ContentProvider
- Android高级面试题汇总——Android篇(1)
oO樱花祭LI
Android面试
(一)Android基础知识点1、四大组件是什么Activity,Service,ContentProvider,BroadcastReceiver2、四大组件的生命周期和简单用法Activity的生命周期:onCreate()->onStart()->onResume()->onPause()->onStop()->onRestart()->onDestroy()用法:创建一个Intent对象,
- Android FileProvider的基本使用
Just_Paranoid
AndroidandroidfileprovidercontentproviderUri
关于FileProviderFileProvider是一个ContentProvider的子类,它取代了“file://”形式的Uri通过“content://”形式的Uri实现了App间的安全通信。contentUri可以赋予你临时的读写权限。当你创建一个包含ContentUri的Intent,并且打算将Intent发送给一个ClientApp,你可以通过该Intent.setFlags来设置权
- 内容提供者(ContentProvider)
无语_ae67
Android的四大组件之一,也是最后一个学习的四大组件,ContentProvider的作用是将Android程序的私有数据暴露给其他应用使用,可以自己选择暴露那些使用ContentProvider,一般来说暴露的都是数据库数据首先要有一个类继承ContentProvider类,重写其中的方法,通关观察重写的方法可以发现,就是制定可以暴露的数据,通过增删改查方法的重写被别的程序调用publicc
- Android四大组件
昨天剩下的一杯冷茶
Android系统四大组件分别是活动(Activity)、服务(Service)、广播接收器(BroadcaseReceiver)和内容提供器(ContentProvider)。其中活动是所有Android应用程序的门面,凡是在应用中你看得到的东西,都是放在活动中的。而服务就比较低调了,你无法看到它,但它会移植在后台默默地运行,即使用户退出了应用,服务仍然是可以继续运行的。广播接收器允许你的应用接
- 工具类!用来解决MIUI下无法获取系统相册的办法
高级复制工程师
MIUI果然名不虚传,各种迷之报错。上传图片的时候发现图片的路径返回值与其他的手机不一样,所以封装了下面的工具来解决MIUI下无法获取到系统相册中的图片的问题。工具类:/***小米、红米手机系列获取相册图片*Cursor.moveToFirst()'onanullobjectreference*工具处理类,处理小米手机各种ContentProvider空指针*/publicclassMIUIPic
- Android 性能优化-ANR 的原因和解决方案
chuhe1989
Android开发android
1、出现ANR的情况满足下面的一种情况系统就会弹出ANR提示输入事件(按键和触摸事件)5s内没被处理;BroadcastReceiver的事件(onRecieve()方法)在规定时间内没处理完(前台广播为10s,后台广播为60s);Service前台20s后台200s未完成启动;ContentProvider的publish()在10s内没进行完。通常情况下就是主线程被阻塞造成的。2、ANR的实现
- Android性能调优 - 应用安全问题
emmmmsuperdan
Android应用安全android安全
Android应用安全1.组件暴露:像比如ContentProvider,BroadcastReceiver,Activity等组件有android:exported属性;如果是私有组件android:exported=“false”;如果是公有组件android:exported=“true”且进行权限控制;2.Log敏感信息泄漏:3.权限申请敏感权限调用在Manifest文件中调用一些敏感的用
- 【安卓跨程序共享数据,探究ContentProvider】
东方同学
安卓应用学习Javaandroidjava开发语言git
ContentProvider主要用于在不同的应用程序之间实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访问数据的安全性。目前,使用ContentProvider是Android实现跨程序共享数据的标准方式。Android系统的权限机制设计得非常简单,就是用户如果认可你所申请的权限,就会安装你的程序,如果不认可你所申请的权限,那么拒绝安装就可以了。而
- 谈谈内容提供者——ContentProvider
Eternal_life
概述ContentProvider内容提供者是andorid四大组件之一ContentProvider为不同的软件之间数据共享,提供统一的接口。作用:contentprovider在andorid中的作用就是对外共享数据,使用ContentProvider对外共享的好处就是统一了数据的访问方式也就是说,可以通过ContentProvider把应用中的数据共享给其他应用访问,其他应用可以Conten
- 安卓开发面试题
qq_42431718
android
什么是Android的四大组件?请简要介绍每个组件的作用。答案:活动(Activity):用于实现应用程序的用户界面,处理用户交互以及展示数据。服务(Service):在后台执行长时间运行的操作,不与用户进行直接交互。广播接收器(BroadcastReceiver):监听系统广播事件或应用内自定义广播事件,并做出相应的操作。内容提供者(ContentProvider):用于应用程序之间共享数据,提
- Android四大基本组件内容详解
蜗牛是不是牛
Android四大基本组件分别是Activity,Service服务,ContentProvider内容提供者,BroadcastReceiver广播接收器。一:了解四大基本组件Activity:应用程序中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。Activity之间通过Intent进行通信。在Intent的描述结构中,有两个最重要的部
- android app bundle Split APKs
还不会飞的鸟
androidappbundle
androidappbundleSplitAPKsBaseApk:该APK包含所有其他拆分APK都可以访问的代码和资源,并为您应用程序提供基本功能。当用户请求下载您的应用程序时,首先下载并安装该APK。这是因为只有BaseAPK的manifest包含应用程序的services、contentproviders、premissions、platformversion和对系统特性的依赖的完整声明。谷歌
- Android ContentProvider内容提供者
鴻9527
ContentProvider内容提供者(四大组件之一)主要用于在不同的应用程序之间实现数据共享的功能。三个重要的点:ContentProvider:内容提供者ContentResolver:内容解析这Uri:地址自己写的提供者建议一个对外部开发的数据库自定义ContentProvider清单文件注册进行操作布局文件MySQLiteOpenHelperimportandroid.content.C
- android四大组件
流水潺湲
android四大组件分别为activity、service、contentprovider、broadcastreceiver。一、android四大组件详解1、activity(1)一个Activity通常就是一个单独的屏幕(窗口)。(2)Activity之间通过Intent进行通信。(3)android应用中每一个Activity都必须要在AndroidManifest.xml配置文件中声明
- mysql ef跨库查询_ef跨数据库查询语句
风吹丁丁响当当
mysqlef跨库查询
Xamarin.Android开发实践(十三)原文:Xamarin.Android开发实践(十三)Xamarin.Android之SQLite.NETORM一、前言通过《Xamarin.Android之SQLiteOpenHelper》和《Xamarin.Android之ContentProvider》的学习,我们已经掌握了如何使用...文章杰克.陈2015-07-25685浏览量SQLServe
- 【Android开发艺术探索】四大组件的工作过程
milovetingting
个人博客http://www.milovetingting.cn四大组件的工作过程four_components.png四大组件:Activity、Service、BroadcastReceiver、ContentProvider四大组件的运行状态Android的四大组件中除了BroadcastReceiver,其它三种组件必须在AndroidManifest中注册。对于BroadcastRece
- getContentProviderImpl占满binder导致应用anr的案例分析
lynn_doo
背景:bug#813706日志路径:Z:\stability_doc\case\binderfull_getcontentprovidersystemui,settings等一直anr导致系统无法正常运行。通过查看trace确定systemuianr的直接原因是由于SS的binder线程被占满且都在getContentProviderImpl时wait,无法及时响应-----pid1863at20
- 四大组件 - ContentProvider
zengkaiqiang562
Android应用开发Uri的结构操作Uri的方法内容提供者的数据处理ContentProvider内容提供者的工作线程内容提供者的生命周期
参考:Android这13道ContentProvider面试题,你都会了吗?参考:《Android开发艺术探索》第9.5节(ContentProvider的工作过程)参考:内容提供者程序参考:>1.ContentProvider概述ContentProvider是一种内容共享型组件,实现了不同App进程之间的数据共享。和Messenger一样,基于ContentProvider的进程间通信的底层
- 第一章(build.gradle详解)
Yolyn
第一章,你的第一行Android代码Android的开发特色四大组件活动(Activity)服务(Service)广播接收器(BroadcastReceiver)内容提供器(ContentProvider)详解build.gradle文件最外层的build.gradlebuildscript{repositories{jcenter()}dependencies{classpath'com.and
- Android-33源码分析: ContentProvider插入查询注册流程
CHNE_TAO_EMSM
android
注意点:1:Activity中使用getContentResolver()获取ContentResolver,其实就是Context实现类ContextImpl中getContentResolver()所返回该类中的静态内不类ApplicationContentResolverApplicationContentResolver继承ContentResolver拥有它的能力2:IContentPr
- jvm调优总结(从基本概念 到 深度优化)
oloz
javajvmjdk虚拟机应用服务器
JVM参数详解:http://www.cnblogs.com/redcreen/archive/2011/05/04/2037057.html
Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。
- 【Scala十六】Scala核心十:柯里化函数
bit1129
scala
本篇文章重点说明什么是函数柯里化,这个语法现象的背后动机是什么,有什么样的应用场景,以及与部分应用函数(Partial Applied Function)之间的联系 1. 什么是柯里化函数
A way to write functions with multiple parameter lists. For instance
def f(x: Int)(y: Int) is a
- HashMap
dalan_123
java
HashMap在java中对很多人来说都是熟的;基于hash表的map接口的非同步实现。允许使用null和null键;同时不能保证元素的顺序;也就是从来都不保证其中的元素的顺序恒久不变。
1、数据结构
在java中,最基本的数据结构无外乎:数组 和 引用(指针),所有的数据结构都可以用这两个来构造,HashMap也不例外,归根到底HashMap就是一个链表散列的数据
- Java Swing如何实时刷新JTextArea,以显示刚才加append的内容
周凡杨
java更新swingJTextArea
在代码中执行完textArea.append("message")后,如果你想让这个更新立刻显示在界面上而不是等swing的主线程返回后刷新,我们一般会在该语句后调用textArea.invalidate()和textArea.repaint()。
问题是这个方法并不能有任何效果,textArea的内容没有任何变化,这或许是swing的一个bug,有一个笨拙的办法可以实现
- servlet或struts的Action处理ajax请求
g21121
servlet
其实处理ajax的请求非常简单,直接看代码就行了:
//如果用的是struts
//HttpServletResponse response = ServletActionContext.getResponse();
// 设置输出为文字流
response.setContentType("text/plain");
// 设置字符集
res
- FineReport的公式编辑框的语法简介
老A不折腾
finereport公式总结
FINEREPORT用到公式的地方非常多,单元格(以=开头的便被解析为公式),条件显示,数据字典,报表填报属性值定义,图表标题,轴定义,页眉页脚,甚至单元格的其他属性中的鼠标悬浮提示内容都可以写公式。
简单的说下自己感觉的公式要注意的几个地方:
1.if语句语法刚接触感觉比较奇怪,if(条件式子,值1,值2),if可以嵌套,if(条件式子1,值1,if(条件式子2,值2,值3)
- linux mysql 数据库乱码的解决办法
墙头上一根草
linuxmysql数据库乱码
linux 上mysql数据库区分大小写的配置
lower_case_table_names=1 1-不区分大小写 0-区分大小写
修改/etc/my.cnf 具体的修改内容如下:
[client]
default-character-set=utf8
[mysqld]
datadir=/var/lib/mysql
socket=/va
- 我的spring学习笔记6-ApplicationContext实例化的参数兼容思想
aijuans
Spring 3
ApplicationContext能读取多个Bean定义文件,方法是:
ApplicationContext appContext = new ClassPathXmlApplicationContext(
new String[]{“bean-config1.xml”,“bean-config2.xml”,“bean-config3.xml”,“bean-config4.xml
- mysql 基准测试之sysbench
annan211
基准测试mysql基准测试MySQL测试sysbench
1 执行如下命令,安装sysbench-0.5:
tar xzvf sysbench-0.5.tar.gz
cd sysbench-0.5
chmod +x autogen.sh
./autogen.sh
./configure --with-mysql --with-mysql-includes=/usr/local/mysql
- sql的复杂查询使用案列与技巧
百合不是茶
oraclesql函数数据分页合并查询
本片博客使用的数据库表是oracle中的scott用户表;
------------------- 自然连接查询
查询 smith 的上司(两种方法)
&
- 深入学习Thread类
bijian1013
javathread多线程java多线程
一. 线程的名字
下面来看一下Thread类的name属性,它的类型是String。它其实就是线程的名字。在Thread类中,有String getName()和void setName(String)两个方法用来设置和获取这个属性的值。
同时,Thr
- JSON串转换成Map以及如何转换到对应的数据类型
bijian1013
javafastjsonnet.sf.json
在实际开发中,难免会碰到JSON串转换成Map的情况,下面来看看这方面的实例。另外,由于fastjson只支持JDK1.5及以上版本,因此在JDK1.4的项目中可以采用net.sf.json来处理。
一.fastjson实例
JsonUtil.java
package com.study;
impor
- 【RPC框架HttpInvoker一】HttpInvoker:Spring自带RPC框架
bit1129
spring
HttpInvoker是Spring原生的RPC调用框架,HttpInvoker同Burlap和Hessian一样,提供了一致的服务Exporter以及客户端的服务代理工厂Bean,这篇文章主要是复制粘贴了Hessian与Spring集成一文,【RPC框架Hessian四】Hessian与Spring集成
在
【RPC框架Hessian二】Hessian 对象序列化和反序列化一文中
- 【Mahout二】基于Mahout CBayes算法的20newsgroup的脚本分析
bit1129
Mahout
#!/bin/bash
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information re
- nginx三种获取用户真实ip的方法
ronin47
随着nginx的迅速崛起,越来越多公司将apache更换成nginx. 同时也越来越多人使用nginx作为负载均衡, 并且代理前面可能还加上了CDN加速,但是随之也遇到一个问题:nginx如何获取用户的真实IP地址,如果后端是apache,请跳转到<apache获取用户真实IP地址>,如果是后端真实服务器是nginx,那么继续往下看。
实例环境: 用户IP 120.22.11.11
- java-判断二叉树是不是平衡
bylijinnan
java
参考了
http://zhedahht.blog.163.com/blog/static/25411174201142733927831/
但是用java来实现有一个问题。
由于Java无法像C那样“传递参数的地址,函数返回时能得到参数的值”,唯有新建一个辅助类:AuxClass
import ljn.help.*;
public class BalancedBTree {
- BeanUtils.copyProperties VS PropertyUtils.copyProperties
诸葛不亮
PropertyUtilsBeanUtils
BeanUtils.copyProperties VS PropertyUtils.copyProperties
作为两个bean属性copy的工具类,他们被广泛使用,同时也很容易误用,给人造成困然;比如:昨天发现同事在使用BeanUtils.copyProperties copy有integer类型属性的bean时,没有考虑到会将null转换为0,而后面的业
- [金融与信息安全]最简单的数据结构最安全
comsci
数据结构
现在最流行的数据库的数据存储文件都具有复杂的文件头格式,用操作系统的记事本软件是无法正常浏览的,这样的情况会有什么问题呢?
从信息安全的角度来看,如果我们数据库系统仅仅把这种格式的数据文件做异地备份,如果相同版本的所有数据库管理系统都同时被攻击,那么
- vi区段删除
Cwind
linuxvi区段删除
区段删除是编辑和分析一些冗长的配置文件或日志文件时比较常用的操作。简记下vi区段删除要点备忘。
vi概述
引文中并未将末行模式单独列为一种模式。单不单列并不重要,能区分命令模式与末行模式即可。
vi区段删除步骤:
1. 在末行模式下使用:set nu显示行号
非必须,随光标移动vi右下角也会显示行号,能够正确找到并记录删除开始行
- 清除tomcat缓存的方法总结
dashuaifu
tomcat缓存
用tomcat容器,大家可能会发现这样的问题,修改jsp文件后,但用IE打开 依然是以前的Jsp的页面。
出现这种现象的原因主要是tomcat缓存的原因。
解决办法如下:
在jsp文件头加上
<meta http-equiv="Expires" content="0"> <meta http-equiv="kiben&qu
- 不要盲目的在项目中使用LESS CSS
dcj3sjt126com
Webless
如果你还不知道LESS CSS是什么东西,可以看一下这篇文章,是我一朋友写给新人看的《CSS——LESS》
不可否认,LESS CSS是个强大的工具,它弥补了css没有变量、无法运算等一些“先天缺陷”,但它似乎给我一种错觉,就是为了功能而实现功能。
比如它的引用功能
?
.rounded_corners{
- [入门]更上一层楼
dcj3sjt126com
PHPyii2
更上一层楼
通篇阅读完整个“入门”部分,你就完成了一个完整 Yii 应用的创建。在此过程中你学到了如何实现一些常用功能,例如通过 HTML 表单从用户那获取数据,从数据库中获取数据并以分页形式显示。你还学到了如何通过 Gii 去自动生成代码。使用 Gii 生成代码把 Web 开发中多数繁杂的过程转化为仅仅填写几个表单就行。
本章将介绍一些有助于更好使用 Yii 的资源:
- Apache HttpClient使用详解
eksliang
httpclienthttp协议
Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客户端发送Http请求变得容易,而且也方便了开发人员测试接口(基于Http协议的),即提高了开发的效率,也方便提高代码的健壮性。因此熟练掌握HttpClient是很重要的必修内容,掌握HttpClient后,相信对于Http协议的了解会
- zxing二维码扫描功能
gundumw100
androidzxing
经常要用到二维码扫描功能
现给出示例代码
import com.google.zxing.WriterException;
import com.zxing.activity.CaptureActivity;
import com.zxing.encoding.EncodingHandler;
import android.app.Activity;
import an
- 纯HTML+CSS带说明的黄色导航菜单
ini
htmlWebhtml5csshovertree
HoverTree带说明的CSS菜单:纯HTML+CSS结构链接带说明的黄色导航
在线体验效果:http://hovertree.com/texiao/css/1.htm代码如下,保存到HTML文件可以看到效果:
<!DOCTYPE html >
<html >
<head>
<title>HoverTree
- fastjson初始化对性能的影响
kane_xie
fastjson序列化
之前在项目中序列化是用thrift,性能一般,而且需要用编译器生成新的类,在序列化和反序列化的时候感觉很繁琐,因此想转到json阵营。对比了jackson,gson等框架之后,决定用fastjson,为什么呢,因为看名字感觉很快。。。
网上的说法:
fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发。
- 基于Mybatis封装的增删改查实现通用自动化sql
mengqingyu
DAO
1.基于map或javaBean的增删改查可实现不写dao接口和实现类以及xml,有效的提高开发速度。
2.支持自定义注解包括主键生成、列重复验证、列名、表名等
3.支持批量插入、批量更新、批量删除
<bean id="dynamicSqlSessionTemplate" class="com.mqy.mybatis.support.Dynamic
- js控制input输入框的方法封装(数字,中文,字母,浮点数等)
qifeifei
javascript js
在项目开发的时候,经常有一些输入框,控制输入的格式,而不是等输入好了再去检查格式,格式错了就报错,体验不好。 /** 数字,中文,字母,浮点数(+/-/.) 类型输入限制,只要在input标签上加上 jInput="number,chinese,alphabet,floating" 备注:floating属性只能单独用*/
funct
- java 计时器应用
tangqi609567707
javatimer
mport java.util.TimerTask; import java.util.Calendar; public class MyTask extends TimerTask { private static final int
- erlang输出调用栈信息
wudixiaotie
erlang
在erlang otp的开发中,如果调用第三方的应用,会有有些错误会不打印栈信息,因为有可能第三方应用会catch然后输出自己的错误信息,所以对排查bug有很大的阻碍,这样就要求我们自己打印调用的栈信息。用这个函数:erlang:process_display (self (), backtrace).需要注意这个函数只会输出到标准错误输出。
也可以用这个函数:erlang:get_s