我正在查看WebAssembly tests,并在package co.quindio.sena.navigationdrawerejemplo.adapters;
import android.content.Context;
import android.content.Intent;
import android.os.Parcelable;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.HashMap;
import co.quindio.sena.navigationdrawerejemplo.Gallery;
import co.quindio.sena.navigationdrawerejemplo.R;
import co.quindio.sena.navigationdrawerejemplo.clases.PersonajeVo;
import de.hdodenhof.circleimageview.CircleImageView;
/**
* Created by CHENAO on 13/07/2017.
*/
public class PersonajesAdapter extends RecyclerView.Adapter<PersonajesAdapter.PersonajeViewHolder>{
ArrayList<PersonajeVo> listaPersonaje;
private Context mContext;
public PersonajesAdapter(Context context,ArrayList<PersonajeVo> listaPersonaje) {
this.listaPersonaje=listaPersonaje;
this.mContext=context;
ArrayList<String> mImages = new ArrayList<>();
ArrayList<String>mImageNames = new ArrayList<>();
}
@Override
public PersonajeViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.item_list,null,false);
return new PersonajeViewHolder(view);
}
@Override
public void onBindViewHolder(PersonajeViewHolder holder, final int position) {
holder.txtNombre.setText(listaPersonaje.get(position).getNombre());
holder.txtInformacion.setText(listaPersonaje.get(position).getInfo());
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(mContext, Gallery.class);
intent.putExtra("image_url", (Parcelable) listaPersonaje.get(position));
intent.putExtra("image_name", (Parcelable) listaPersonaje.get(position));
mContext.startActivity(intent);
}
});
}
@Override
public int getItemCount() {
return listaPersonaje.size();
}
public class PersonajeViewHolder extends RecyclerView.ViewHolder {
TextView txtNombre,txtInformacion;
ImageView foto;
public PersonajeViewHolder(View itemView) {
super(itemView);
txtNombre= (TextView) itemView.findViewById(R.id.idNombre);
txtInformacion= (TextView) itemView.findViewById(R.id.idInfo);
foto= (ImageView) itemView.findViewById(R.id.idImagen);
}
}
}
看到了这一点:
data
想知道将“ Hello World”放入(module
(memory $m 1)
(data (i32.const 0))
(data (i32.const 1) "a" "" "bcd")
(data (offset (i32.const 0)))
(data (offset (i32.const 0)) "" "a" "bc" "")
(data 0 (i32.const 0))
(data 0x0 (i32.const 1) "a" "" "bcd")
(data 0x000 (offset (i32.const 0)))
(data 0 (offset (i32.const 0)) "" "a" "bc" "")
(data $m (i32.const 0))
(data $m (i32.const 1) "a" "" "bcd")
(data $m (offset (i32.const 0)))
(data $m (offset (i32.const 0)) "" "a" "bc" "")
)
部分的样子。我是这个低级功能的新手。像这样:
data
在x86汇编中,您可以执行以下操作:
(data "Hello World")
答案 0 :(得分:1)
您可以在data segment syntax中找到WebAssembly Text Format specification的定义。确实很简单,这里是一个简单的形式:
data $memidx $offset $data
$memidx
是一个可选索引,用于指示数据段填充的模块内存。在当前版本的WebAssembly中,仅支持single module memory,因此该值始终为零。
$offset
是一个常量表达式,指示应在其中写入数据的起始位置。
最后$data
是数据本身。它可以表示文本或二进制数据,并带有简单的编码为detailed in the specification。
对于您的示例,将Hello World
添加到模块内存中,偏移量为零,这将完成以下工作:
(data (i32.const 0) "Hello World")