资源描述
简答:
1. android中的布局管理器有哪些?
线性布局管理器、绝对布局管理器、相对布局管理器、表格布局管理器、框架布局管理器。/
3. Activity的生命周期,其中主要涉及到了onCreate()、onRestart()、onStart()、onResume()、onPause()、onStop()、onDestory()等七个方法。/
4. android中不同应用程序间通过Content Provider共享数据,Content Provider提供的URL由一些四部分组成:
标准的前缀
URL的authority部分
Content Provider的路径部分
被请求的特定记录的ID值
5. 在android中,提供了两种创建线程的方法,一种通过Thread类的构造方法创建线程对象,并重写run()方法实现。
另一种是通过Runnable接口实现
6. 简述Android应用工程文件的结构?
源文件(包含Activity)
R.java文件
Android Library.这个是应用运行的的Android库。
Assets目录。主要放置多媒体等一些文件
Res目录。放置应用到的源文件。
drawable目录。放置应用到的图片文件
Layout目录。放置应用到的布局文件
Values目录。放置字符串(strings.xml)、颜色、数组。
7. 谈谈android数据存储方式
android 有5种存储方式存储数据
(1)使用SharedPreferences存储数据;
(2)文件存储数据;
(3)SQLite数据库存储数据;
(4)使用Content Provider存储数据;
(5)网络存储数据
8. Adapter有什么用?常见的Adapter有哪些?
Adapter是连接后端数据和前端显示的适配器接口。
常见的Adapter有ArrayAdapter,BaseAdapter,SimpleAdapter等。/
9. handler机制的原理。/
android提供了Handler和Looper来满足线程之间的通信,Handler采用先进先出的原则向Message Queue发送和处理消息。/
Looper类用来管理特定线程对象之间的消息交换(Message Queue)./
10. 请介绍下ContentProvider是如何实现数据共享的?
Android提供了ContentProvider,一个程序可以实现一个ContentProvider的抽象接口将自己的数据完全暴露出去。/
而且ContentProvider是以类似数据库中表的方式将数据暴露出来。ContentProvider存储和检索数据,通过它可以让所有的应用程序访问到
这也是应用程序间唯一共享数据的方法,要想使应用程序的数据公开化。/
可通过两种方法:1.创建一个属于自己的ContentProvider。/2.将你的数据添加到一个已经存在ContentProvider中去。/
11. 如何启用Service,如何停用Service
(1)调用startService()方法启用服务,调用stopService()方法结束服务
(2)调用bindService()方法启动服务,调用unbindService()方法结束服务
12. 阐述android:padding 和 android:layout_margin的差别?
不同点:android:padding 是站在父View的角度描述问题,它规定它里面的内容必须与这个父View边界的距离,
android:layout_margin则是站在自己角度描述问题,规定自己和其他(上下左右)的View之间的距离
13. 列举TextView空间中的常用属性(至少五个)?
android:text
android:hint
android:textColor
android:textSize
android:maxLines
android:layout_width
android:layout_height
android:layout_gravity
填空
1. httpConnection中把请求方法设置为post的方法是__setRequestMethod("POST")_______
2. Android 虚拟设备的缩写是____AVD__
3. android 中使用Http进行通信的方法有两种,分别是使用HttpURLConnection和HttpClient实现
4. 启动一个Activity并且新的Activity执行后需要返回到启动它的Activity的函数是_________startActivityForResult()____
5. 在AndroidMainfest.xml中的
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.CAMERA"/>
是指应用程序中__访问网络___权限和___使用相机___权限
6. 为了适应不同分辨率机型,布局时字体单位应该用_sp_,像素单位应该用__dip_
7. 定义LinearLayout水平方向布局时至少设置的三个属性:
android:orientation
android:layout_width
android:layout_height
8. Activity主要有4种状态,分别是:
Running状态
Paused状态
Stopped状态
Killed状态
9. android 的四大组件是Activity、Service、Broadcasd Recevier和Content Provider
编程:
1. 编写一个CurrentTimeService类继承Service在LogCat中输出当前时间
public class CurrentTimeService extends Service{
@Override
public IBinder onBind(Intent intent){
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId){
Time time = new Time();//创建time对象
time.setToNow();//设置时间为当前时间
String currentTime = time.format(%Y-%m-%d %H:%M:%S);//设置时间格式
Log.i("CurrentTimeService",currentTime)//记录当前时间
return START_STLCKY;
}
}
2. 点击按钮button1后,弹出一个带单选列表的对话框可以选择以下列表:"标准"、"会议"、"户外"、"无声",并且该对话框带有一个确定按钮
button1.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
final String[] items = new String[]{"标准","会议","户外","无声","离线"}
Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setIcon(R.drawable.advise2);//设置对话框图标
builder.setTitle("请选择要使用的情景模式:");//设置对话框的标题
builder.setSingleChoiceItems(items, 0, new OnClickListener() {
@override
public void onClick(DialogInterface dialog, int which){
Toast.makeText(MainActivity.this, "您选择了" +items[which], Toast.LENGTH_SHORT).show();//显示选择结果
}
})
builder.setPositiveButton("确定",null);//添加确定按钮
builder.create().show();//创建对话并显示
}
})
3. 点击按钮button1后,发现一个通知,状态栏中通知的提示信息为"显示第一个通知",单击通知图标后通知的详细内容标题为"无题",详细内容的正文为"每天进步一点点"./
button1.setOnClickListener(new View.OnclickListener()
@override
public void onClick(View v){
Notification notify = new Notification();创建一个Notification对象
notify.icon = R.drawable.advise;
notify.tickerText = "显示第一个通知";
notify.when = System.currentTimeMillis();//设置发送时间
notify.defaults = Notification.DEFAULT_ALL;//设置默认声音、默认震动和默认闪光灯
notify.setLatesEventInfo(MainActivity.this,"无题","每天进步一点点",null);
notificationManager.notify(NOTIFYID_1, notify);//通过通知管理器发送通知
}
});
4. 点击按钮button1后,给号码123456789发送一条短信,内容为"你好"
button1.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
Intent intent = new Intent();//创建Intent对象
intent.setData(Uri.parse("smsto:123456789"));//设置要发送的号码
intent.putExtra("sms_body","你好");//设置要发送的信息内容
startActivity(intent);//将Intent传递给Activity
}
})
5. 点击MainActivity中的按钮button1后,启动名为AcceptdataActivity的Activity,并向该Activity传递一个字符串"hello world",请求码为111,在MainActivity中获取AcceptdataActivity的返回值并以Toast显示该返回值,结果码为222
button1.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
Intent intent = new Intent();//创建intent对象
//访问要设置的Activity
intent.setClass(MainActivity.this,AcceptdataActivity.class);
intent.putExtra("str","第一个Activity传过来的值");//设置要传递的值
startActivityForResult(intent,111);//启动Activity
}
});
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
if(requestCode==222){//判断返回标志是否等于请求标识
if(requestCode==AcceptdataActivity.RESULT_CODE){//判断结果标识
Bundle bundle=data.getExtras();//获取返回值并用Bundle接受
String str = bundle.getString("back");//获取Bundle中的返回值
//弹出对话框
Toast.makeText(MainActivity.this, str, Toast.LENGTH_LONG).show();
}
}
}
6. 启动MainActivity时WebView控件中显示兰州理工大学主页,启用javascript
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = (webView)findViewById(R.id.web_view);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url){
//根据传入的参数再去加载新的网页
view.loadUrl(url);
//表示当前WebView可以处理打开新网页的请求,不用借助系统浏览器
reutrn true;
}
});
webView.loadUrl("");
}
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view,String url){
//根据传入的参数再去加载新的网页
view.loadUrl(url);
//表示当前WebView可以处理打开新网页的请求,不用借助系统浏览器
return true;
}
});
webView.loadUrl("");
}
7. 在sendRequestWithHttpURLConnection()方法中创建一个线程,使用HttpURLConnection类访问"",
把网站返回结果在LogCat中输出
private void sendRequestWithHttpURLConnection() {
//开启线程来发起网络请求
new Thread(new Runnable(){
@Override
public void run(){
HttpURLConnection connection = null;
try {
URL url = new URL("");
connection = (HttpURLConnection)url.openConnection();
connection.setRequestMethod("GET");
connection.setConnectTimeout(8000);
connection.setReadTimeout(8000);
connection.setDoInput(true);
connection.setDoOutput(true);
InputStream in = connection.getInputSrteam();
//下面获取到的输入流进行读取
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
StringBuilder response = new StringBuilder();
String line;
while((line = reader.readLine()) != null){
response.append(line);
}
Log.i("TestHttp",message);
} catch(Exception e){
e.printStackTrace();
}finally{
if(connection != null){
connection.disconnect();
}
}
}
}).start();
}
展开阅读全文