当前位置: 编程技术>移动开发
本页文章导读:
▪【转】运行时,获取其它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
String[] skinPkgs = getPackageManager().getPackagesForUid(Process.myUid());
获取所有同一个 android:sharedUserId="com.hujl.mainskin" 的资源包 ,可以实现多套 skin 的切换 。
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();
}
这是最近做的一个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(); } }
最新技术文章: