当前位置:  编程技术>移动开发
本页文章导读:
    ▪【转】运行时,获取其它apk的资源步骤        【转】运行时,获取其它apk的资源方法 http://blog.csdn.net/wen0006/article/details/5797400 package com.cchen.riduritest; import android.app.Activity; import android.content.pm.PackageManager; import android.content.pm.PackageManager.........
    ▪ Java 中FTP下载跟上传        Java 中FTP下载和上传 这是最近做的一个FTP的文件下载和上传的功能,但是不知道为什么下载的时候,在同一个网关中可以下载,如果到其它的网关就不能下载。 private String ip = ""; private Stri.........
    ▪ 初始化步骤       初始化方法 <!-- 应用名称 --> <string name="app_name">sqlitedemo</string> <!-- 数据库名称 --> <string name="db_name">sqlite_db</string> <!-- 备份数据库名称 --> <st.........

[1]【转】运行时,获取其它apk的资源步骤
    来源: 互联网  发布时间: 2014-02-18
【转】运行时,获取其它apk的资源方法
http://blog.csdn.net/wen0006/article/details/5797400

package com.cchen.riduritest;

import android.app.Activity;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.TextView;

public class WTFActivity extends Activity {
	private TextView txt;
	private Resources resources;
	private String packName = "目的包名";
	private ImageView imageView1;
	public static final String AUTHORITY = "com.xxx.packageresources";

	public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY);

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		txt = (TextView) this.findViewById(R.id.txt);
		imageView1 = (ImageView) this.findViewById(R.id.imageView1);


		PackageManager manager = getPackageManager();
	    try {
			resources = manager.getResourcesForApplication(packName);
		} catch (NameNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	    int rid = resources.getIdentifier("wallpaper", "drawable", packName);

		Uri build = CONTENT_URI.buildUpon().appendPath(packName)
				.appendEncodedPath("res").appendPath(String.valueOf(rid)).build();
		txt.setText(build.toString());

		Bitmap b = BitmapFactory.decodeResource(resources, rid, null);
		imageView1.setImageBitmap(b);
	}
}



String[] skinPkgs = getPackageManager().getPackagesForUid(Process.myUid()); 
获取所有同一个  android:sharedUserId="com.hujl.mainskin"  的资源包  ,可以实现多套 skin 的切换 。

    
[2] Java 中FTP下载跟上传
    来源: 互联网  发布时间: 2014-02-18
Java 中FTP下载和上传
这是最近做的一个FTP的文件下载和上传的功能,但是不知道为什么下载的时候,在同一个网关中可以下载,如果到其它的网关就不能下载。
private String ip = "";

private String username = "";

private String password = "";

private int port = -1;

private String path = "";

FtpClient ftpClient = null;

OutputStream os = null;

FileInputStream is = null;

public FtpUtil(String serverIP, String username, String password) {
this.ip = serverIP;
this.username = username;
this.password = password;
}

public FtpUtil(String serverIP, int port, String username, String password) {
this.ip = serverIP;
this.username = username;
this.password = password;
this.port = port;
}

/**
* 连接ftp服务器
*
* @throws IOException
*/
public boolean connectServer() {
ftpClient = new FtpClient();
try {
if (this.port != -1) {
ftpClient.openServer(this.ip, this.port);
} else {
ftpClient.openServer(this.ip);
}
ftpClient.login(this.username, this.password);
if (this.path.length() != 0) {
ftpClient.cd(this.path);// path是ftp服务下主目录的子目录
}
ftpClient.binary();// 用2进制上传、下载
System.out.println("已登录到\"" + ftpClient.pwd() + "\"目录");
return true;
} catch (IOException e) {
e.printStackTrace();
return false;
}
}

/**
* 断开与ftp服务器连接
*
* @throws IOException
*/
public boolean closeServer() {
try {
if (is != null) {
is.close();
}
if (os != null) {
os.close();
}
if (ftpClient != null) {
ftpClient.closeServer();
}
System.out.println("已从服务器断开");
return true;
} catch (IOException e) {
e.printStackTrace();
return false;
}
}

/**
* 检查文件夹在当前目录下是否存在
*
* @param dir
* @return
*/
private boolean isDirExist(String dir) {
String pwd = "";
try {
pwd = ftpClient.pwd();
ftpClient.cd(dir);
ftpClient.cd(pwd);
} catch (Exception e) {
return false;
}
return true;
}

/**
* 在当前目录下创建文件夹
*
* @param dir
* @return
* @throws Exception
*/
private boolean createDir(String dir) {
try {
ftpClient.ascii();
StringTokenizer s = new StringTokenizer(dir, "/"); // sign
s.countTokens();
String pathName = ftpClient.pwd();
while (s.hasMoreElements()) {
pathName = pathName + "/" + (String) s.nextElement();
try {
ftpClient.sendServer("MKD " + pathName + "\r\n");
} catch (Exception e) {
e = null;
return false;
}
ftpClient.readServerResponse();
}
ftpClient.binary();
return true;
} catch (IOException e1) {
e1.printStackTrace();
return false;
}
}

/**
* ftp上传 如果服务器段已存在名为filename的文件夹,该文件夹中与要上传的文件夹中同名的文件将被替换
*
* @param filename
*            要上传的文件(或文件夹)名
* @return
* @throws Exception
*/
public boolean upload(String filename) {
String newname = "";
if (filename.indexOf("/") > -1) {
newname = filename.substring(filename.lastIndexOf("/") + 1);
} else {
newname = filename;
}
return upload(filename, newname);
}

/**
* ftp上传 如果服务器段已存在名为newName的文件夹,该文件夹中与要上传的文件夹中同名的文件将被替换
*
* @param fileName
*            要上传的文件(或文件夹)名
* @param newName
*            服务器段要生成的文件(或文件夹)名
* @return
*/
public boolean upload(String fileName, String newName) {
try {
String savefilename = new String(fileName.getBytes("ISO-8859-1"),
"GBK");
File file_in = new File(savefilename);// 打开本地待长传的文件
if (!file_in.exists()) {
throw new Exception("此文件或文件夹[" + file_in.getName() + "]有误或不存在!");
}
if (file_in.isDirectory()) {
upload(file_in.getPath(), newName, ftpClient.pwd());
} else {
uploadFile(file_in.getPath(), newName);
}

if (is != null) {
is.close();
}
if (os != null) {
os.close();
}
return true;
} catch (Exception e) {
e.printStackTrace();
System.err.println("Exception e in Ftp upload(): " + e.toString());
return false;
} finally {
try {
if (is != null) {
is.close();
}
if (os != null) {
os.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}

/**
* 真正用于上传的方法
*
* @param fileName
* @param newName
* @param path
* @throws Exception
*/
private void upload(String fileName, String newName, String path)
throws Exception {
String savefilename = new String(fileName.getBytes("ISO-8859-1"), "GBK");
File file_in = new File(savefilename);// 打开本地待长传的文件
if (!file_in.exists()) {
throw new Exception("此文件或文件夹[" + file_in.getName() + "]有误或不存在!");
}
if (file_in.isDirectory()) {
if (!isDirExist(newName)) {
createDir(newName);
}
ftpClient.cd(newName);
File sourceFile[] = file_in.listFiles();
for (int i = 0; i < sourceFile.length; i++) {
if (!sourceFile[i].exists()) {
continue;
}
if (sourceFile[i].isDirectory()) {
this.upload(sourceFile[i].getPath(), sourceFile[i]
.getName(), path + "/" + newName);
} else {
this.uploadFile(sourceFile[i].getPath(), sourceFile[i]
.getName());
}
}
} else {
uploadFile(file_in.getPath(), newName);
}
ftpClient.cd(path);
}

/**
* upload 上传文件
*
* @param filename
*            要上传的文件名
* @param newname
*            上传后的新文件名
* @return -1 文件不存在 >=0 成功上传,返回文件的大小
* @throws Exception
*/
public long uploadFile(String filename, String newname) throws Exception {
long result = 0;
TelnetOutputStream os = null;
FileInputStream is = null;
try {
java.io.File file_in = new java.io.File(filename);
if (!file_in.exists())
return -1;
os = ftpClient.put(newname);
result = file_in.length();
is = new FileInputStream(file_in);
byte[] bytes = new byte[1024];
int c;
while ((c = is.read(bytes)) != -1) {
os.write(bytes, 0, c);
}
} finally {
if (is != null) {
is.close();
}
if (os != null) {
os.close();
}
}
return result;
}

/**
* 从ftp下载文件到本地
*
* @param filename
*            服务器上的文件名
* @param newfilename
*            本地生成的文件名
* @return
* @throws Exception
*/
public long downloadFile(String filename, String newfilename) {
long result = 0;
TelnetInputStream is = null;
FileOutputStream os = null;
try {
is = ftpClient.get(filename);
java.io.File outfile = new java.io.File(newfilename);
os = new FileOutputStream(outfile);
byte[] bytes = new byte[1024];
int c;
while ((c = is.read(bytes)) != -1) {
os.write(bytes, 0, c);
result = result + c;
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (is != null) {
is.close();
}
if (os != null) {
os.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return result;
}

/**
* 取得相对于当前连接目录的某个目录下所有文件列表
*
* @param path
* @return
*/
public List getFileList(String path) {
List list = new ArrayList();
DataInputStream dis;
try {
dis = new DataInputStream(ftpClient.nameList(this.path + path));
String filename = "";
while ((filename = dis.readLine()) != null) {
list.add(filename);
}
} catch (IOException e) {
e.printStackTrace();
}
return list;
}

/**
* 跳转到指定目录
*
* @param dir
*/
public void cd(String dir) {
try {
if (dir.length() != 0) {
ftpClient.cd(dir);
} else {
ftpClient.cd(".");
}
} catch (IOException e) {
e.printStackTrace();
}
}

/**
* 删除文件
*
* @param filename
* @return
*/
public boolean deleteFile(String filename) {
String result = "";
if (filename.length() != 0) {
try {
ftpClient.sendServer("DELE " + filename + "\r\n");
ftpClient.readServerResponse();
result = ftpClient.getResponseString();
System.out.println(result);
} catch (IOException e) {
e.printStackTrace();
return false;
}
return true;
}
return false;
}

/**
* 得到目录下的文件名列表
*
* @param remoteDir
*            服务器目录名
* @return 服务器目录下的文件名列表(不包含目录名)
* @throws IOException
*/
public String[] getNameList(String remoteDir) throws IOException {
BufferedReader dr;
try {
dr = new BufferedReader(new InputStreamReader(ftpClient
.nameList(remoteDir + "\r")));
} catch (IOException e) {
return new String[0];
}
ArrayList allFiles = new ArrayList();
String s = "";
while ((s = dr.readLine()) != null) {
allFiles.add(s);
}
String[] names = new String[allFiles.size()];
allFiles.toArray(names);
return names;
}




/**
* 返回当前目录
*
* @return 当前目录
* @throws IOException
*/
public String pwd() throws IOException {
return ftpClient.pwd();
}

/**
* 服务器是否打开
*
* @return
*/
public boolean serverIsOpen() {
return ftpClient.serverIsOpen();
}

    
[3] 初始化步骤
    来源: 互联网  发布时间: 2014-02-18
初始化方法

 <!-- 应用名称 -->
    <string name="app_name">sqlitedemo</string>
    <!-- 数据库名称 -->
    <string name="db_name">sqlite_db</string>
    <!-- 备份数据库名称 -->
    <string name="db_backup_name">backup_db</string>
    <!-- 数据库的绝对路径 -->
    <string name="dbpath">/data/data/com.lilin.sqlite/databases/sqlite_db</string>
    <!-- 数据库所在文件夹 -->
    <string name="dbfold">/data/data/com.lilin.sqlite/databases</string>

    <!-- 日志保存路径 -->
    <string name="logpath">/sdcard/sqlitedemo/log</string>
 

 

 

	private void DBInit() {
		// 判断数据库是否存在
		boolean isDbExist = DBHelp.isExistDB(getString(R.string.dbpath));
		if (isDbExist) {
			init_txt.setText("数据库已存在,正常启动!");// 系统正在启动
		} else {// 系统正在初始化

			new Thread() {
				public void run() {
					new Handler().post(new Runnable() {
						public void run() {
							// 删除原来数据库
							File dbfile = new File(getString(R.string.dbpath));
							if (dbfile.exists()) {
								dbfile.delete();
							}
							// 创建数据库文件夹
							File folder = new File(getString(R.string.dbfold));
							if (!folder.exists()) {
								folder.mkdirs();
							}
							// 创建一个新的数据库
							DBOpenHelp openHelper = new DBOpenHelp(
									MainView.this, getString(R.string.db_name),
									11);
							openHelper.getWritableDatabase();
							// 拷贝备份数据库
							try {
								FileHelp.copyFileFromAssetsToFolder(
										MainView.this,
										getString(R.string.db_backup_name),
										getString(R.string.dbfold));
							} catch (IOException e) {
								e.printStackTrace();
								LogHelp.Log2SDErr(e,
										getString(R.string.logpath),
										getString(R.string.app_name));
							}
							ToastHelp.showToast(MainView.this, "初始化成功");
							LogHelp.LogI("数据库初始化成功!");
						}
					});
				}
			}.start();
		}

	}
 

 

 


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3