Android使用点滴

Android 使用点滴积累

• android studio 使用技巧:
1,初次打开别人的项目,请del 以下文件和目录
.gradle .idea build gradle gradlew gradlew.bat
再次打开工程, AS就会自动使用本机默认的Gradle配置信息, 打开工程.
2, 或则 把能正常打开的工程里的与gradle有关的文件复制过来,再打开/导入(注意是点击目录)。gradle有关的文件(.gradle, gradle, build.gradle,gradle.properties)
3,注意追加目录的可写属性
• 导入第3方so文件
1,创建目录,在src/main目录下jniLibs( AS默认目录) ,或在app目录下创建libs ,加入对应CPU的so 文件,, 如jniLibs/armeabi-v7a/libx.so
2,修改build.gradle
sourceSets{
main {
jniLibs.srcDirs = [‘libs’] //记住:如为src/main/jniLibs,则不需要添加此参数
}
}
3,将so文件打包生成jar文件,
task nativeLibsToJar(type: Zip, description: “create a jar archive of the native libs”) {
destinationDir file("$projectDir/libs")
baseName “Native_Libs2”
extension “jar”
from fileTree(dir: “libs”, include: "**/.so")
into “lib”
}
tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn(nativeLibsToJar)
}
之后make project
4, 手动生成的jar包自动解包到APK
denpendencies {
compile fileTree(dir:’libs’,include:’
.jar’)
compile files(‘libs/Native_Libs2.jar’)
}

1, 消息交互
方法1:handler.senMessage() + handler.dispatchMessage()
主线程:
private static final int UPDATE_TITLE = 0; //更新标题的标志
private Handler mainHandler= new Handler()
{
public void dispatchMessage(android.os.Message msg) {
if(msg.what == UPDATE_TITLE){
String title = msg.getData().getString(“Result”);
titleView.setText(title);
}else{
//其他消息
}
};
};
子线程:
new Thread(){
@Override
public void run() {
//你的处理逻辑,这里简单睡眠一秒
this.sleep(1000);

            //通知更新UI
            //Message msg = new Message();
            //我们可以使用构造方法来创建Message,但出于节省内存资源的考量,我们应该使用Message.obtain()从消息池中获得空消息对象
            Message msg = mainHandler.obtainMessage();
            msg.what = UPDATE_TITLE;
                Bundle bundle = new Bundle();//消息数据实体
                bundle.putString("Result", "sendMsg——Result");
                msg.setData(bundle);
                //mainHandler.sendMessage(msg);
                //如果使用的是Message.obtain()我们可以直接
                msg.sendToTarget();
        }
    }.start();

方法2:在子线程中使用回调接口 Runnable
new Thread(){
@Override
public void run() {
try {
//你的处理逻辑,这里简单睡眠一秒
this.sleep(1000);

                //利用obtain
                msg = Message.obtain(mainHandler, new Runnable() {

                    @Override
                    public void run() {
                        titleView.setText("sendMsg——Result");
                    }
                });
                msg.sendToTarget();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }.start();

方法3:handler.post()
new Thread(){
@Override
public void run() {
try {
//你的处理逻辑,这里简单睡眠一秒
this.sleep(1000);

                mainHandler.post(new Runnable() {

                    @Override
                    public void run() {
                        //你的处理逻辑
                        titleView.setText("postRunnable——Result");
                    }
                });
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }.start();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值