Reading a text file API 15+
Don't do unnecessary work. You have the count variable, but you also have the dictionary which has a size() method. There's no need for the count.
Android supports Java-7 language features, use them. In this case, the try-with-resources would be your friend.
guess the size of the ArrayList that yoy may need. In this case, you should be a little generous, and say, pre-size it at 300,000 entries.
Android now supports (since KitKat) the diamond operator, there should be no need to declare the generic type of the ArrayList as &lt;String&gt;.
I actually like the while loop you have. It is my preferred way of doing line-by-line IO too.


Here's a 'cleaned up' version of your code:

private static final int INITIALSIZE = 300000;

....

long start = System.currentTimeMillis();
dictionary = new ArrayList&lt;&gt;(INITIALSIZE);
try (BufferedReader bufferedReader = new BufferedReader(
          new InputStreamReader(context.getAssets().open("words.txt")));) {

    String word;
    while((word = bufferedReader.readLine()) != null){
        dictionary.add(word);
    }
}catch(IOException e){
    e.printStackTrace();
}
long end = System.currentTimeMillis();
double t = ((end - start) / 1000.0);
System.out.println("Time to read database from file " + dictionary.size() 
      + " items " + t + " seconds");


So, that's a "simplified" version, how to make it faster?

Well, there's a few things. First up, nothing can be for sure unless you test it, so, run some experiments. Things I would try:


Specify a buffer-size on the BufferedReader, something large like 1024 * 1024 (a megabyte). This should increase the size of IO's
The pre-sized ArrayList will help
Consider reading the whole data file in to a ByteArrayOutputStream, and then converting that in one go in to a large String, then splitting the string on line-breaks.


In essence, the larger the IO sizes the better, and the larger the cache sizes are, the better.