android面试题笔试题总结
2、书写出android工程的目录结构
3、什么是ANR 如何避免它?
4、谈谈Android的优点和不足之处
5、一条最长的短信息约占多少byte?
6、sim卡的EF文件有何作用?
文件 |
文件标识符
|
文件缩写
|
中文名称
|
文件作用
|
MF |
3F00
|
根目录
|
备注:所有非ETSI GSM协议中规定的应用文件由各厂家自行定义在根目录下(如:PIN1,PIN2…)
|
|
EFICCID |
2FE2
|
ICCID
|
SIM卡唯一的识别号
|
包含运营商、卡商、发卡时间、省市代码等信息
|
DFGSM |
7F20
|
GSM目录
|
备注:根据ETSIGSM09.91的规定Phase2(或以上)的SIM卡中应该有7F21并指向7F20,用以兼容Phase1的手机
|
|
EFLP语言选择 |
6F05
|
LP
|
语言选择文件
|
包含一种或多种语言编码
|
EFIMSI |
6F07
|
IMSI
|
国际移动用户识别符
|
包含SIM卡所对应的号段,比如46000代表135-139号段、46002代表1340-1348
|
EFKC语音加密密钥 |
6F20
|
Kc
|
计算密钥
|
用于SIM卡的加密、解密
|
EFPLMNsel网络选择表 |
6F30
|
PLMNsel
|
公共陆地网选择
|
决定SIM卡选择哪种网络,在这里应该选择中国移动的网络
|
EFHPLMN归属地网络选择表 |
6F31
|
HPLMN
|
两次搜索PLMN的时间间隔
|
两次搜索中国移动的网络的时间间隔
|
EFACMmax最大计费额 |
6F37
|
ACMmax
|
包含累积呼叫表的最大值
|
全部的ACM数据存在SIM卡中,此处取最大值
|
EFSST SIM卡服务表 |
6F38
|
SST
|
SIM卡服务列表
|
指出SIM卡可以提供服务的种类,哪些业务被激活哪些业务没有开通
|
EFACM累加计费计数器 |
6F39
|
ACM
|
累计呼叫列表
|
当前的呼叫和以前的呼叫的单位总和
|
EFGID1分组识别1 |
6F3E
|
GID1
|
1级分组识别文件
|
包含特定的SIM-ME组合的标识符,可以识别一组特定的SIM卡
|
EFGID2分组识别2 |
6F3F
|
GID2
|
2级分组识别文件
|
包含特定的SIM-ME组合的标识符,可以识别一组特定的SIM卡
|
EFPUCT单位价格/货币表 |
6F41
|
PUCT
|
呼叫单位的价格和货币表
|
PUCT是与计费通知有关的信息,ME用这个信息结合EFACM,以用户选择的货币来计算呼叫费用
|
EFCBMI小区广播识别号 |
6F45
|
CBMI
|
小区广播信息标识符
|
规定了用户希望MS采纳的小区广播消息内容的类型
|
EFSPN服务提供商 |
6F46
|
SPN
|
服务提供商名称
|
包含服务提供商的名称和ME显示的相应要求
|
EFCBMID |
6F48
|
CBMID
|
数据下载的小区广播消息识别符
|
移动台将收到的CBMID传送给SIM卡
|
EFSUME |
6F54
|
SUME
|
建立菜单单元
|
建立SIM卡中的菜单
|
EFBCCH广播信道 |
6F74
|
BCCH
|
广播控制信道
|
由于BCCH的存储,在选择小区时,MS可以缩小对BCCH载波的搜索范围
|
EFACC访问控制级别 |
6F78
|
ACC
|
访问控制级别
|
SIM卡有15个级别,10个普通级别,5个高级级别
|
EFFPLMN禁止网络号 |
6F7B
|
FPLMN
|
禁用的PLMN
|
禁止选择除中国移动以外的其他运营商,比如中国联通、中国卫通等
|
EFLOCI位置信息 |
6F7E
|
LOCI
|
位置信息
|
存储临时移动用户识别符、位置区信息等内容
|
EFAD管理数据 |
6FAD
|
AD
|
管理数据
|
包括关于不同类型SIM卡操作模式的信息。例如:常规模式(PLMN用户用于GSM网络操作),型号认证模式(允许ME在无线设备的认证期间的特殊应用);小区测试模式(在小区商用之前,进行小区测试),制造商特定模式(允许ME制造商在维护阶段进行特定的性能自动测试)
|
EFPHASE阶段 |
6FAE
|
PHASE
|
阶段标识
|
标识SIM卡所处的阶段信息,比如是普通SIM卡还是STK卡等
|
DFTELECOM |
7F10
|
电信目录
|
||
EFADN缩位拨号 |
6F3A
|
AND
|
电话簿
|
用于将电话记录存放在SIM卡中
|
EFFDN固定拨号 |
6F3B
|
FDN
|
固定拨号
|
包括固定拨号(FDN)和/或补充业务控制字串(SSC),还包括相关网络/承载能力的识别符和扩展记录的识别符,以及有关的α识别符
|
EFSMS短消息 |
6F3C
|
SMS
|
短消息
|
用于将短消息记录存放在SIM卡中
|
EFCCP能力配置参数 |
6F3D
|
CCP
|
能力配置参数
|
包括所需要的网络和承载能力的参数,以及当采用一个缩位拨号号码,固定拨号号码,MSISDN、最后拨号号码、服务拨号号码或禁止拨号方式等,建立呼叫时相关的ME配置
|
EFMSISDN电话号码 |
6F40
|
MSISDN
|
移动基站国际综合业务网号
|
存放用户的手机号
|
EFSMSP短信息参数 |
6F42
|
SMSP
|
短消息业务参数
|
包括短信中心号码等信息
|
EFSMSS短信息状态 |
6F43
|
SMSS
|
短消息状态
|
这个标识是用来控制流量的
|
EFLND最后拨号 |
6F44
|
LND
|
最后拨叫号码
|
存储最后拨叫号码
|
EFExt1扩展文件1 |
6F4A
|
EXT1
|
扩展文件1
|
包括AND,MSISDN或LND的扩展数据
|
EFExt2扩展文件2 |
6F4B
|
EXT2
|
扩展文件2
|
包含FDN的扩展数据
|
7、如何判断是否有SD卡?
8、dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念?
9、Android程序与Java程序的区别?
10、启动应用后,改变系统语言,应用的语言会改变么?
11、请介绍下adb、ddms、aapt的作用
12、ddms 和traceview的区别
13、补充知识:TraceView的使用
![](http://bbs.itheima.com/data/attachment/forum/201508/09/204016lpeujohi86i238dx.png.thumb.jpg)
![](http://bbs.itheima.com/data/attachment/forum/201508/09/204116wfaeyfwa99yx2wbp.png.thumb.jpg)
- public class MainActivity extends ActionBarActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- }
- public void method1(View view) {
- int result = jisuan();
- System.out.println(result);
- }
- private int jisuan() {
- for (int i = 0; i < 10000; i++) {
- System.out.println(i);
- }
- return 1;
- }
- public void method2(View view) {
- SystemClock.sleep(2000);
- }
- public void method3(View view) {
- int sum = 0;
- for (int i = 0; i < 1000; i++) {
- sum += i;
- }
- System.out.println("sum=" + sum);
- }
- public void method4(View view) {
- Toast.makeText(this, "" + new Date(), 0).show();
- }
- }
复制代码
![](http://bbs.itheima.com/data/attachment/forum/201508/09/204308gttti12apmt9thi3.png.thumb.jpg)
![](http://bbs.itheima.com/data/attachment/forum/201508/09/204355dzirs7fk3ssacgtm.png.thumb.jpg)
列名 |
描述
|
Name |
该线程运行过程中所调用的函数名
|
Incl Cpu Time |
某函数占用的CPU时间,包含内部调用其它函数的CPU时间
|
Excl Cpu Time |
某函数占用的CPU时间,但不含内部调用其它函数所占用的CPU时间
|
Incl Real Time |
某函数运行的真实时间(以毫秒为单位),内含调用其它函数所占用的真实时间
|
Excl Real Time |
某函数运行的真实时间(以毫秒为单位),不含调用其它函数所占用的真实时间
|
Call+Recur Calls/Total |
某函数被调用次数以及递归调用占总调用次数的百分比
|
Cpu Time/Call |
某函数调用CPU时间与调用次数的比。相当于该函数平均执行时间
|
Real Time/Call |
同CPU Time/Call类似,只不过统计单位换成了真实时间
|
![](http://bbs.itheima.com/data/attachment/forum/201508/09/204642ieokexkpse7sxess.png.thumb.jpg)
![](http://bbs.itheima.com/data/attachment/forum/201508/09/204643ojljvruy9j8dy4jr.png.thumb.jpg)
二、Activity
1、什么是Activity?
2、请描述一下Activity 生命周期
3、如何保存Activity的状态?
- @Override
- protected void onSaveInstanceState(Bundle outState) {
- super.onSaveInstanceState(outState);
- }
复制代码
4、两个Activity之间跳转时必然会执行的是哪几个方法?
5、横竖屏切换时Activity的生命周期
6、如何将一个Activity设置成窗口的样式
7、如何退出Activity?如何安全退出已调用多个Activity的Application?
- //伪代码
- List<Activity> lists ;// 在application 全局的变量里面
- lists = new ArrayList<Activity>();
- lists.add(this);
- for(Activity activity: lists)
- {
- activity.finish();
- }
- lists.remove(this);
复制代码
8、请描述一下Activity的启动模式都有哪些以及各自的特点
8.1 standard
- public class FirstActivity extends Activity {
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.first);
- TextView textView = (TextView) findViewById(R.id.tv);
- textView.setText(this.toString());
- Button button = (Button) findViewById(R.id.bt);
- button.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Intent intent = new Intent(FirstActivity.this, FirstActivity.class);
- startActivity(intent);
- }
- });
- }
- }
复制代码
![](http://bbs.itheima.com/data/attachment/forum/201508/09/205556t5fqfqf9p75um5m5.png.thumb.jpg)
![](http://bbs.itheima.com/data/attachment/forum/201508/09/205557cgllglpuuluzgcll.png.thumb.jpg)
8.2 singleTop
![](http://bbs.itheima.com/data/attachment/forum/201508/09/205728ut1x8w488q84869m.png.thumb.jpg)
![](http://bbs.itheima.com/data/attachment/forum/201508/09/205728nrtxhzrqdz9xc4bo.png.thumb.jpg)
![](http://bbs.itheima.com/data/attachment/forum/201508/09/205728uxaz9gcfzwx9n9t5.png.thumb.jpg)
- public class SecondActivity extends Activity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.second);
- TextView textView = (TextView) findViewById(R.id.tv);
- textView.setText(this.toString());
- Button button = (Button) findViewById(R.id.button);
- button.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Intent intent = new Intent(SecondActivity.this, FirstActivity.class);
- startActivity(intent);
- }
- });
- }
- }
复制代码
- Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
- startActivity(intent);
复制代码
![](http://bbs.itheima.com/data/attachment/forum/201508/09/210036ua7abect52cq2jp4.png.thumb.jpg)
![](http://bbs.itheima.com/data/attachment/forum/201508/09/210037gu8wouo3sp8twp2n.png.thumb.jpg)
![](http://bbs.itheima.com/data/attachment/forum/201508/09/210241qtiotcrjsb7k88rr.png.thumb.jpg)
![](http://bbs.itheima.com/data/attachment/forum/201508/09/210317f2od966cete6woi4.png.thumb.jpg)
8.4 singleInstance
我们修改FirstActivity的launchMode="standard",SecondActivity的launchMode="singleInstance",由于涉及到了多个栈结构,我们需要在每个Activity中显示当前栈结构的id,所以, 我们为每个Activity添加如下代码:
- TextView taskIdView = (TextView) findViewById(R.id.taskIdView);
- taskIdView.setText("current task id: " + this.getTaskId());
复制代码
![](http://bbs.itheima.com/data/attachment/forum/201508/09/210717mdrl2lljpgdlgpg0.png.thumb.jpg)
我们发现这两个Activity实例分别被放置在不同的栈结构中,关于singleInstance的原理图如下:
![](http://bbs.itheima.com/data/attachment/forum/201508/09/210718id29znpnjdi6uznc.png.thumb.jpg)
![](http://bbs.itheima.com/data/attachment/forum/201508/09/210814m8bbhviw22bvvip2.png.thumb.jpg)
- <activity
- android:name=".ShareActivity"
- android:launchMode="singleInstance" >
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- <intent-filter>
- <action android:name="android.intent.action.SINGLE_INSTANCE_SHARE" />
- <category android:name="android.intent.category.DEFAULT" />
- </intent-filter>
- </activity>
复制代码
- Intent intent = new Intent("android.intent.action.SINGLE_INSTANCE_SHARE");
- startActivity(intent);
复制代码
![](http://bbs.itheima.com/data/attachment/forum/201508/09/211004zlzlj3cf39c53llr.png.thumb.jpg)
- <service
- android:name="com.baidu.location.f"
- android:enabled="true"
- android:process=":remote" >
- </service>
复制代码
2、Activity怎么和Service绑定,怎么在Activity中启动自己对应的Service?
3、请描述一下Service的生命周期
![](http://bbs.itheima.com/data/attachment/forum/201508/09/211309fvvjo1kwkpwq7wa1.png.thumb.jpg)
- public void click(View view){
- Intent intent = new Intent(this, MyIntentService.class);
- intent.putExtra("start", "MyIntentService");
- startService(intent);
- }
复制代码
- public class MyIntentService extends IntentService {
- private String ex = "";
- private Handler mHandler = new Handler() {
- public void handleMessage(android.os.Message msg) {
- Toast.makeText(MyIntentService.this, "-e " + ex, Toast.LENGTH_LONG).show();
- }
- };
- public MyIntentService(){
- super("MyIntentService");
- }
- @Override
- public int onStartCommand(Intent intent, int flags, int startId) {
- ex = intent.getStringExtra("start");
- return super.onStartCommand(intent, flags, startId);
- }
- @Override
- protected void onHandleIntent(Intent intent) {
- /**
- * 模拟执行耗时任务
- * 该方法是在子线程中执行的,因此需要用到handler跟主线程进行通信
- */
- try {
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- mHandler.sendEmptyMessage(0);
- try {
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- }
复制代码
![](http://bbs.itheima.com/data/attachment/forum/201508/09/211637jzeept0p0mdst2t0.png.thumb.jpg)
6、Service和Activity在同一个线程吗
7、Service里面可以弹吐司么
四、BroadCastReceiver
2、在manifest和代码中如何注册和使用BroadcastReceiver
- <receiver android:name=".BroadcastReceiver1" >
- <intent-filter>
- <action android:name="android.intent.action.CALL" >
- </action>
- </intent-filter>
- </receiver>
复制代码
- receiver = new BroadcastReceiver();
- IntentFilter intentFilter = new IntentFilter();
- intentFilter.addAction(CALL_ACTION);
- context.registerReceiver(receiver, intentFilter);
复制代码
五、ContentProvider
- <provider
- android:exported="true" android:name="com.itheima.contenProvider.provider.PersonContentProvider"android:authorities="com.itheima.person" />
复制代码
2、请介绍下Android的数据存储方式
3、为什么要用ContentProvider?它和sql的实现上有什么差别?
4、说说ContentProvider、ContentResolver、ContentObserver之间的关系
六、Android中的布局
2、谈谈UI中, Padding和Margin有什么区别?
2、当ListView数据集改变后,如何更新ListView
3、ListView如何实现分页加载
4、ListView可以显示多种类型的条目吗
5、ListView如何定位到指定位置
6、当在ScrollView中如何嵌入ListView
- lv = (ListView) findViewById(R.id.lv);
- adapter = new MyAdapter();
- lv.setAdapter(adapter);
- setListViewHeightBasedOnChildren(lv);
- public void setListViewHeightBasedOnChildren(ListView listView) {
- ListAdapter listAdapter = listView.getAdapter();
- if (listAdapter == null) {
- return;
- }
- int totalHeight = 0;
- for (int i = 0; i < listAdapter.getCount(); i++) {
- View listItem = listAdapter.getView(i, null, listView);
- listItem.measure(0, 0);
- totalHeight += listItem.getMeasuredHeight();
- }
- ViewGroup.LayoutParams params = listView.getLayoutParams();
- params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
- params.height += 5;// if without this statement,the listview will be a little short
- listView.setLayoutParams(params);
- }
复制代码
7、ListView中如何优化图片
8、ListView中图片错位的问题是如何产生的
9、Java中引用类型都有哪些
- String abc=new String("abc"); //1
- SoftReference<String> softRef=new SoftReference<String>(abc); //2
- WeakReference<String> weakRef = new WeakReference<String>(abc); //3
- abc=null; //4
- softRef.clear();//5
复制代码
八、JNI&NDK
2、请介绍一下NDK
3、JNI调用常用的两个参数
1、Android中如何访问网络
2、如何解析服务器传来的JSON文件
3、如何解析服务器传来的XML格式数据
- public List<Person>getPersons(InuptStream in){
- XmlPullParserparser=Xml.newPullParser();//获取解析器
- parser.setInput(in,"utf-8");
- for(inttype=){ //循环解析
- }
- }
复制代码
- XmlSerializer serial=Xml.newSerializer();//获取xml序列化工具
- serial.setOuput(put,"utf-8");
- serial.startDocument("utf-8",true);
- serial.startTag(null,"persons");
- for(Person p:persons){
- serial.startTag(null,"persons");
- serial.attribute(null,"id",p.getId().toString());
- serial.startTag(null,"name");
- serial.attribute(null,"name",p.getName().toString());
- serial.endTag(null,"name");
- serial.startTag(null,"age");
- serial.attribute(null,"age",p.getAge().toString());
- serial.endTag(null,"age");
- serial.endTag(null,"persons");
- }
复制代码
4、如何从网络上加载一个图片显示到界面
5、如何播放网络视频
十、Intent
2、Serializable和Parcelable的区别
- public class MyParcelable implements Parcelable {
- private int mData;
- public int describeContents() {
- return 0;
- }
- public void writeToParcel(Parcel out, int flags) {
- out.writeInt(mData);
- }
- public static final Parcelable.Creator<MyParcelable> CREATOR
- = new Parcelable.Creator<MyParcelable>() {
- public MyParcelable createFromParcel(Parcel in) {
- return new MyParcelable(in);
- }
- public MyParcelable[] newArray(int size) {
- return new MyParcelable[size];
- }
- };
- private MyParcelable(Parcel in) {
- mData = in.readInt();
- }
- }
复制代码
3、请描述一下Intent 和 IntentFilter
十一、Fragment
- FragmentManager fragmentManager = getFragmentManager();
- Fragment fragment = fragmentManager.findFragmentByTag(tag);
- Fragment fragment = fragmentManager.findFragmentById(id);
复制代码
2、描述一下Fragment的生命周期
![](http://bbs.itheima.com/data/attachment/forum/201508/09/221025fgoosncfa1cv215l.png.thumb.jpg)
![](http://bbs.itheima.com/static/image/hrline/4.gif)
android面试题笔试题总结相关推荐
- 下列不属于android布局的是( ),Android软件工程师笔试题(全选择题)【0-1年经验】...
Android软件工程师笔试题,全选择题,适合0-1年经验的面试者. Android软件工程师笔试题 单选题(共35题) 1.退出 activity 对一些资源以及状态的操作保存,可以在生命周期的哪个 ...
- android软件开发考试,Android软件工程师笔试题(全选择题)【0-1年经验】
Android软件工程师笔试题 单选题(共35题) 1.退出activity 对一些资源以及状态的操作保存,可以在生命周期的哪个函数中进行 A.onPause() B.onCreate() C.onR ...
- oracle面试题答案,Oracle面试题笔试题及参考答案
一套Oracle面试题笔试题及参考答案 Oracle, 笔试, 面试 完成下列操作,写出相应的SQL语句 1.创建表空间neuspace,数据文件命名为neudata.dbf,存放在d:\data 目 ...
- 北大青鸟java8.0 s1_北大青鸟s1笔试试题(笔试题汇总及所有.docx
北大青鸟s1笔试试题(笔试题汇总及所有 北大青鸟s1笔试试题(笔试题汇总及所有 篇一:XX_9北大青鸟S1考试笔试 选择题(针对以下题目,请选择最符合题目要求的答案.针对每一道题目,所有答案都选对,则 ...
- 2022年100家公司真实的面试题笔试题汇总
[1.中科软] 笔试题 1.谈谈你对测试的理解 2.你三年的职业规划 3.你对加班的看法?是否可以加班? 4.你心目中理想的公司怎么样?理想的工作环境?理想的同事关系? 5.你觉得这笔试答的如何?优势 ...
- 全网独家·首发2022年100家公司真实的面试题笔试题汇总
[文章末尾给大家留下了大量的福利] [1.中科软] 笔试题 1.谈谈你对测试的理解 2.你三年的职业规划 3.你对加班的看法?是否可以加班? 4.你心目中理想的公司怎么样?理想的工作环境?理想的同事关 ...
- 最新软件测试面试题+笔试题(十个面试官里有九个会问)
文章目录 前言 领取作者整理的学习资料 软件测试常见的面试题: 1.测试分为哪几个阶段? 2.软件测试方法有哪些? 3.数据库中sum和count的区别以及使用 4.设计一个模块测试用例 5.pyte ...
- android最全面 笔试题71道题 详解
1. 下列哪些语句关于内存回收的说明是正确的? (b ) A. 程序员必须创建一个线程来释放内存 B. 内存回收程序负责释放无用内存 C. 内存回收程序允许程序员直接释放内存 D. 内存回收程序可以在 ...
- Android开发工程师笔试题
1.请谈一下Android系统的架构 Android系统从下往上分为Linux内核层(linux kerner),运行库(runtime library),应用程序框架层,应用程序层 linuxker ...
- Android智能手机编程笔试题,android智能手机编程
spContent=为什么学习Android手机编程?自己适合学Android开发吗?零基础能学习吗?学Android应该学哪些技术呢?本课程以"任务驱动"为中心,"用中 ...
最新文章
- 正则表达式零宽断言详解
- java 常规类的可见性_Java 12常规可用性
- HDOJ1166 敌兵布阵【线段树】
- note_maven的基本使用
- 【英语学习】【WOTD】purview 释义/词源/示例
- MySQL高级-MySQL并发参数调整
- 智能语音市场有多大? 阿里巴巴将如何破局后来者居上?
- ORA-27125: unable to create shared memory segment
- H3C交换机修改时间
- 传输层协议(6):TCP 连接(下-3)
- container-coding-codec
- 走出校门,重新起航,从纯粹到再次纯粹
- 【清华大学陈渝】第二章 启动、中断、异常和系统调用
- CF1567E Non-Decreasing Dilemma
- 历时54年,完成了1574架飞机生产,“天空女王”波音747正式停产 | 美通社头条...
- 大学生笔记本选Mac还是Windows?
- Google Open Images Dataset V4
- 湖仓一体电商项目(一):项目背景和架构介绍
- 58沈剑解读:数据库典型架构实践
- 计算机考试水平划分,计算机水平等级划分
热门文章
- matlab编程题,Matlab编程习题
- telnet安装和使用教程
- C#用正则表达式 获取标签的属性或值
- 直方图规定化原理及matlab实现代码
- Cocos Creator 3D 案例《弹弹乐》技术实现分享
- SEVERE: Could not contact localhost:8005. Tomcat may not be running. Connection refused (Connection
- 持续集成平台Jenkins配置方法介绍
- 广发量化接口的编程语言
- Linux使用rmp安装tree
- 漫画 | 只敢私下吐槽,不敢拿上台面,这才是微服务的灾难!