⑴ react native android 怎么封装工具类
一、生成签名文件(类似于Android的签名文件)
1、命令行到你的工程目录下
2、在命令行中输入如下代码
[javascript] view plain
keytool -genkey -v -keystore SuperBigLw-key.keystore -alias SuperBigLw-key-alias -keyalg RSA -keysize 2048 -validity 10000
这里的第一个SuperBigLw就是文件的名字,第二个是别名。
10000是有效时间,2048是RSA加密的大小
⑵ android怎么将封装工具类
如果你是想打包成jar后引用,可以右键export-->java-->jar file选择你要打包的工程完成即可,当然个人觉得这个比较复杂,有一个eclipse插件flatJar(具体怎么操作自己网络一下)比较好用,其次,如果你想把工程作为library来依赖,那么在工程上右键-->properties-->android-->勾选"Is Library"即可。
⑶ android 开发中什么叫工具类
工具类:一般存放的是公共的静态方法,可供所有需要的类直接调用。
如获取SD卡路径,通过文件路径获取文件之类的重复通用性较高的方法就可以放在工具类中。
由于是静态方法,就不用实例化,也方便了调用的操作。
总结的Android开发中常用的工具类,大部分同样适用于Java。
目前包括 HttpUtils、DownloadManagerPro、Safe.ijiami、ShellUtils、PackageUtils、PreferencesUtils、JSONUtils、FileUtils、ResourceUtils、StringUtils、ParcelUtils、RandomUtils、ArrayUtils、ImageUtils、ListUtils、MapUtils、ObjectUtils、SerializeUtils、SystemUtils、TimeUtils。
⑷ android app开发中工具类怎么国际化
工具类国际化的话,就要将里面的文字在values加上不同的国家代号.string.xml这样的形式,当别的国家使用就会去加载对应的文字
⑸ android alertdialog 怎样写成工具类
在工具类的构造函数中添加一个Context的参数,并设置一个全局变量Context,这样在某个Activity类中实例化这个工具类的时候就可以将Context对象传过去了,希望对你有帮助!
⑹ android中怎么创建工具类
这个就是平时创建utils包,再新建Class , 具体功能 自己具体代码去写
⑺ Android网络请求常用的工具类的源码
root啊 你不知道自己的手机型号么 Android系统中的root 什么是root root就是手机的神经中枢,它可以访问和修改你手机几乎所有的文件,这些东西可能是制作手机的公司不愿意你修改和触碰的东西,因为他们有可能影响到手机的稳定,还容易被一些黑客入侵(Root是Linux等类UNIX系统中的超级管理员用户帐户。更多介绍详见第一段) 为什么要获取root 其实用root的权限主要是因为我们很多东西是受限制的,我们只能利用这些权限来做我们被限制的去做的事情,比如Google禁止我们看到市场里很多免费或付费软件,我们可以用Market进去看;很多朋友只能看不能下,不能绑定gmail,我们可以修改host来搞定他们,但这些都需要root权限(由于Root权限对于系统具有最高的统治权,便可方便的对于系统的部件进行删除或更改。对于玩家而言,只有获得Root权限,我们便可随心所欲地对自己的爱机进行“重新包装”,感受新版本软件的优点) 例如:当HTC Hero手机通过USB线连上电脑时,sync工具就会自动启动,总是在notification那里看到。对于Windows用户,还有工具可以同步,对于Mac/Linux用户来说,没用。有没有办法解决呢?当然有了! 这里的关键就是ad remount,这是一个重新mount你的分区的命令,让你的system分区从只读变成可读可写,只有获得了root权限才可能运行。 取得root的好处 1 可以备份系统 2 使用高级的程序 3 修改系统的程序 4 把程序安装在SD卡上 其它好处 一 最重要的是 我们可以汉化 拥有ROOT权限[1],我们可以加载汉化包,实现系统汉化!由于目前的系统固件版本firware都是1.0,所以都不支持简体中文输入,但是支持简体中文显示开发团队对此了工作,现在的Zhao 1.5/1.6 都是以获得ROOT权限为基础才可进行的汉化包。 二 我们可以通过ABUS查看已安装的软件 虽然没有ROOT权限,我们依然可以通过ABUS来安装软件和游戏,但是如果拥有ROOT权限的G1,我们可以通过ABUS查看其安装过的软件列表 方便我们管理。 三 我们可以更改主题 目前阶段,我们可以通过升级update.zip来实现更换主题的功能,当然update.zip包并不是一个单独的主题文件,其实就是升级一下, 不过如果没有ROOT权限,我们就不能实现更换主题的功能,至少目前这样 四 我们可以正常使用一些软件 比如Screenshot 很多软件是需要访问并读写内部ROOT的,比如Screenshot,就必须有ROOT权限才可正常使用,如果相应的,我们获得了ROOT权限,那么有些软件就可以正常使用,并能发挥其特性了。 编辑本段一键root的方法 root并没有想象中的那么难,目前有不少软件可以做到。像Z4root、UniversalAndRoot、GingerBreak和等root 软件都比较方便。 下面就简单介绍其中的两款。 ①superoneclick[2] 该软件root成功率较高,并且支持当前所有安卓系统的版本(包括android 4.0),几乎没有机型限制!目前最新版本为v2.3.3.0。并且该软件还能帮你卸载安卓市场,对于root过程有辅助作用(如果需要可到安卓软件资源网站下载安装);而且,该软件支持反root,当你发现系统root后不稳定或不安全,可以解除root,从而保护手机
⑻ android里面怎么写property
1.首先在源代码根目录(src下)下创建一个名为netconfig.properties的文件(也可以在其他目录下)。
2.打开netconfig.properties文件,在该文件中添加下列代码.
Java代码:
#该处为注释
IP=192.168.1.111
PORT=3535
MSG=这是一个很长的字符串,<br>我们可以使其换行 \
一行显示不下时,<br>可以分行显示。
#该处为注释
IP=192.168.1.111
PORT=3535
MSG=这是一个很长的字符串,<br>我们可以使其换行 \
一行显示不下时,<br>可以分行显示。
说明:上面代码中,#为配置文件中的注释,而在配置文件中,可以使用<br>等进行格式处理,在配置文件中,如果某个属性过长,一行不能输入完全是,可以通过 \ 通知系统,下一行同样为该属性的值。
3.之后创建一个工具类Utils类,其代码如下所列。
**
* @description: 工具类
* @version 1.0
* @created on 2010-12-3 下午02:39:52
*/
public class Utils {
/**
* 得到netconfig.properties配置文件中的所有配置属性
*
* @return Properties对象
*/
public static Properties getNetConfigProperties() {
Properties props = new Properties();
InputStream in = Utils.class.getResourceAsStream("/netconfig.properties");
try {
props.load(in);
} catch (IOException e) {
e.printStackTrace();
}
return props;
}
}
4.在需要使用配置文件中配置的属性值时,直接调用上述方法即可,如下所示。
String IP = Utils.getNetConfigProperties().getProperty("IP");
⑼ android创建子线程
创建后台线程的方法有多种,这里说三种,可以回去试试
1、使用Android系统工具类 AsyncTask(Params,Progress,Result)
AsyncTask是一个轻量级线程,三个泛型参数分别是 Params传入参数,int型Progress为进度条进度,Result为返回值
要使用AsyncTask,必须继承之并复写其中的几个重要的函数。
onPreExecute(), 该方法将在执行实际的后台操作前被UI thread调用。可以在该方法中做一些准备工作,如在界面上显示一个进度条。
doInBackground(Params...), 将在onPreExecute 方法执行后马上执行,该方法运行在后台线程中。这里将主要负责执行那些很耗时的后台计算工作。可以调用 publishProgress方法来更新实时的任务进度。该方法是抽象方法,子类必须实现。
onProgressUpdate(Progress...),在publishProgress方法被调用后,UI thread将调用这个方法从而在界面上展示任务的进展情况,例如通过一个进度条进行展示。
onPostExecute(Result), 在doInBackground 执行完成后,onPostExecute 方法将被UI thread调用,后台的计算结果将通过该方法传递到UI thread.
注:Task必须在UI线程中创建,并调用并且只能调用一次execute方法,该方法的参数为传入的泛型Params。
其余函数最好不要手动调用,容易造成线程崩溃。多次调用Task,容易造成线程池溢出。
2、使用Handler和HandlerThread
误区: Handler handler = new Handler ();
handler.post(r);
这种做法看似创建了一个线程,但实际上handler只是直接调用Runnable中的run() 方法,而不执行线程的start()函数,所以这两句代码执行后,程序仍然在UI线程中执行。所以我们引入HandlerThread,因为HandlerThread中有一个Looper对象,用以循环消息队列。
为了使用Looper,必须子类化Handler,并复写它的构造函数。
class MyHandler extends Handler{
public MyHandler() {}
public MyHandler(Looper looper){
super (looper);
}
public void handleMessage(Message msg){
//....这里运行耗时的过程
}
}
}
handleMessage(Message msg)函数用以接收消息,msg则是从UI线程中发出的消息,可以传递各种对象,根据这些对象和数值进行操作。
有了Handler子类,则可以在UI线程中进行创建和初始化
HandlerThread handlerThread = new HandlerThread( "backgroundThread" );
handlerThread.start();
MyHandler myHandler = new MyHandler(handlerThread.getLooper());
Message msg = myHandler.obtainMessage();
//....此处对msg进行赋值,可以创建一个Bundle进行承载
msg.sendToTarget();
之后如果需要调用线程,只要对handler传入msg,就可以执行相应的过程了
最后,很重要的一点,HandlerThread 不随Activity的生命周期结束而消亡,所以必须复写Ondestory(),调用HandlerThread .stop()
3、使用线程同步 synchronized、 wait()、 notify()
使用线程同步机制synchronized实现多线程操作,相对来说比较复杂,但也是灵活性最佳、效率最高的一种做法,在产品开发当中也使用得最广。本人水平相当有限,也只学得一点皮毛。
synchronized相当于一把锁,当线程运行的时候,会同时有几个线程访问一个对象,对其进行操作或者修改。这可能引起很不良的后果(例如改变判定条件,或者在别的线程还没使用完的时候对象已经被析构等等),所以必须对一些对象进行加锁,保证它在同一时间只允许被一个线程访问。
synchronized使用方法有两种:
<1> 同步方法在方法名前加入synchronized关键字,则该方法在同一时间内只允许一个线程访问它,其代码逻辑较为简单,但使用起来不太灵活,并且大大降低效率,耗时太长的同步方法甚至会使得多线程失去原本的意义成为单线程
<2>同步参数 对某一个代码块加锁,并且以synchronized(obj)的方式,表明该代码块内的obj对象是线程同步的。这个做法使得代码灵活性大大加强,缩小同步代码块的范围,并且可以在不同的函数体和类内进行同步,唯一遗憾的是实现起来比较复杂,容易产生一些问题
而wait()和notify(),必须在synchronized锁的代码块内执行,否则系统将会报错。
有了以上基础,就可以很容易的创建后台线程了
Private Runnable backgroundRunnable = new Runnable () {
@Override
public void run() {
if(isFinish){
//.....
break;
}
for(;;){
synchronized(this){
//....写耗时过程
wait();
}
}
}
}
UI线程中,就是一般的创建线程过程了
Thread backgroundThread = new Thread (backgroundRunnable);
backgroundThread.start();
这样,在后台线程中会不断的循环,当执行完一次过程以后就会wait()休眠。然后在OnTouchListener或者OnClickListener内相应的位置执行
synchronized(backgroundRunnable){
backgroundRunnable.notify();
}
当用户触摸屏幕产生一个event的时候,线程就会被唤醒,执行下一次循环。
最后,还是内存安全问题,必须复写Activity中的OnDestory()方法,将标志量isFinish设为false,并且backgroundThread .stop()